From 4b3024e8fa2ce27a2e0b408778d4e62cc570b8b4 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期四, 10 七月 2025 17:00:37 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/procurementManagement/paymentHistory/index.vue | 1 src/views/procurementManagement/procurementInvoiceLedger/index.vue | 12 ++ src/views/basicData/supplierManage/index.vue | 5 src/views/procurementManagement/invoiceEntry/index.vue | 18 ++ src/views/collaborativeApproval/approvalProcess/index.vue | 11 + src/views/procurementManagement/paymentEntry/index.vue | 8 src/views/salesManagement/salesLedger/index.vue | 11 + src/views/personnelManagement/contractManagement/index.vue | 7 + src/views/equipmentManagement/ledger/Form.vue | 6 src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue | 55 +++----- src/views/salesManagement/invoiceLedger/index.vue | 2 src/api/collaborativeApproval/approvalProcess.js | 13 + src/views/basicData/customerFile/index.vue | 7 + src/views/inventoryManagement/receiptManagement/index.vue | 8 src/views/inventoryManagement/stockManagement/index.vue | 4 src/views/procurementManagement/invoiceEntry/components/Modal.vue | 5 src/views/personnelManagement/onboarding/index.vue | 5 src/views/qualityManagement/processInspection/components/formDia.vue | 2 src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue | 5 src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue | 6 src/views/salesManagement/receiptPayment/index.vue | 14 + src/store/modules/user.js | 1 src/views/personnelManagement/employeeRecord/index.vue | 7 + src/views/qualityManagement/finalInspection/components/formDia.vue | 2 src/views/inventoryManagement/issueManagement/index.vue | 6 src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue | 34 ++-- src/views/salesManagement/invoiceRegistration/index.vue | 24 ++- src/views/procurementManagement/paymentLedger/index.vue | 1 src/views/procurementManagement/procurementLedger/index.vue | 14 ++ src/views/qualityManagement/nonconformingManagement/components/formDia.vue | 2 src/views/qualityManagement/rawMaterialInspection/components/formDia.vue | 2 src/views/personnelManagement/dimission/index.vue | 7 + src/views/salesManagement/receiptPaymentHistory/index.vue | 11 + 33 files changed, 194 insertions(+), 122 deletions(-) diff --git a/src/api/collaborativeApproval/approvalProcess.js b/src/api/collaborativeApproval/approvalProcess.js index 2e8f7ca..415bed8 100644 --- a/src/api/collaborativeApproval/approvalProcess.js +++ b/src/api/collaborativeApproval/approvalProcess.js @@ -38,6 +38,14 @@ data: query, }) } +// 鎻愪氦瀹℃壒 +export function updateApproveNode(query) { + return request({ + url: '/approveNode/updateApproveNode', + method: 'post', + data: query, + }) +} // 鍒犻櫎瀹℃壒娴佺▼ export function approveProcessDelete(query) { return request({ @@ -46,11 +54,10 @@ data: query, }) } -// 鍒犻櫎瀹℃壒娴佺▼ +// 鏌ヨ瀹℃壒娴佺▼ export function approveProcessDetails(query) { return request({ - url: '/approveNode/details', + url: '/approveNode/details/' + query, method: 'get', - params: query, }) } \ No newline at end of file diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 5623661..2dd2797 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -52,6 +52,7 @@ this.avatar = avatar this.currentFactoryName = user.currentFactoryName this.nickName = user.nickName + this.currentDeptId = user.currentDeptId resolve(res) }).catch(error => { reject(error) diff --git a/src/views/basicData/customerFile/index.vue b/src/views/basicData/customerFile/index.vue index 2294dd7..088912b 100644 --- a/src/views/basicData/customerFile/index.vue +++ b/src/views/basicData/customerFile/index.vue @@ -258,7 +258,7 @@ { label: "鍦板潃鍙婅仈绯绘柟寮�", prop: "addressPhone", - width: 220, + width: 250, }, { label: "鑱旂郴浜�", @@ -267,18 +267,22 @@ { label: "鑱旂郴鐢佃瘽", prop: "contactPhone", + width:150 }, { label: "閾惰鍩烘湰鎴�", prop: "basicBankAccount", + width: 220, }, { label: "閾惰璐﹀彿", prop: "bankAccount", + width: 220, }, { label: "寮�鎴疯鍙�", prop: "bankCode", + width:220 }, { label: "缁存姢浜�", @@ -287,6 +291,7 @@ { label: "缁存姢鏃堕棿", prop: "maintenanceTime", + width: 100, }, { dataType: "action", diff --git a/src/views/basicData/supplierManage/index.vue b/src/views/basicData/supplierManage/index.vue index f5eb792..e2a71ee 100644 --- a/src/views/basicData/supplierManage/index.vue +++ b/src/views/basicData/supplierManage/index.vue @@ -251,14 +251,17 @@ { label: "鑱旂郴鏂瑰紡", prop: "companyPhone", + width:150 }, { label: "寮�鎴疯", prop: "bankAccountName", + width: 220, }, { label: "璐﹀彿", prop: "bankAccountNum", + width: 220, }, { label: "鑱旂郴浜�", @@ -267,6 +270,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "contactUserPhone", + width: 150, }, { label: "缁存姢浜�", @@ -276,6 +280,7 @@ { label: "缁存姢鏃堕棿", prop: "maintainTime", + width:100 }, { dataType: "action", diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue index 5c1a34f..7e9488a 100644 --- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue +++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue @@ -13,24 +13,24 @@ :key="index" :type="activity.current ? 'primary' : ''" :hollow="activity.current" - :timestamp="activity.timestamp" + :timestamp="activity.approveNodeTime" > <el-card> - <span style="font-size: 18px;font-weight: 700">{{activity.content}}</span> + <span style="font-size: 18px;font-weight: 700">鑺傜偣{{activity.approveNodeOrder}}</span> <div style="margin: 10px 0"> - <span style="font-size: 16px;font-weight: 600">瀹℃壒浜猴細{{activity.people}}</span> + <span style="font-size: 16px;font-weight: 600">瀹℃壒浜猴細{{activity.approveNodeUser}}</span> </div> <div> <span style="margin-bottom: 8px;display: inline-block;font-size: 16px;font-weight: 600">瀹℃壒鎰忚锛�</span> <el-form-item - v-if="activity.current" - :prop="'activities.' + index + '.value'" + v-if="activity.approveNodeRemark == 1" + :prop="'activities.' + index + '.approveNodeReason'" :rules="[{ required: true, message: '瀹℃壒鎰忚涓嶈兘涓虹┖', trigger: 'blur' }]" > - <el-input v-model="activity.value" clearable type="textarea" :disabled="operationType === 'view'"></el-input> + <el-input v-model="activity.approveNodeReason" clearable type="textarea" :disabled="operationType === 'view'"></el-input> </el-form-item> <el-form-item v-else> - <el-input v-model="activity.value" clearable type="textarea" disabled></el-input> + <el-input v-model="activity.approveNodeReason" clearable type="textarea" disabled></el-input> </el-form-item> </div> </el-card> @@ -39,7 +39,8 @@ </el-form> <template #footer v-if="operationType === 'approval'"> <div class="dialog-footer"> - <el-button type="primary" @click="submitForm">纭</el-button> + <el-button type="primary" @click="submitForm(2)">涓嶉�氳繃</el-button> + <el-button type="primary" @click="submitForm(1)">閫氳繃</el-button> <el-button @click="closeDia">鍙栨秷</el-button> </div> </template> @@ -49,48 +50,32 @@ <script setup> import {getCurrentInstance, ref} from "vue"; -import {approveProcessDetails} from "../../../../api/collaborativeApproval/approvalProcess.js"; +import {approveProcessDetails, updateApproveNode} from "../../../../api/collaborativeApproval/approvalProcess.js"; const emit = defineEmits(['close']) const { proxy } = getCurrentInstance() const dialogFormVisible = ref(false); const operationType = ref('') -const activities = ref([ - { - content: '鑺傜偣1', - timestamp: '', - type: 'primary', - hollow: true, - people: 'admin', - value: '' - }, - { - content: '鑺傜偣2', - timestamp: '', - type: '', - hollow: false, - current: true, - people: 'admin', - value: '' - }, -]) +const activities = ref([]) const formRef = ref(null); // 鎵撳紑寮规 const openDialog = (type, row) => { operationType.value = type; dialogFormVisible.value = true; - approveProcessDetails({id: row.approveId}).then((res) => { + approveProcessDetails(row.approveId).then((res) => { console.log(res) + activities.value = res.data }) } // 鎻愪氦瀹℃壒 -const submitForm = () => { - formRef.value.validate(valid => { - if (valid) { - // 鏍¢獙閫氳繃鍚庣殑閫昏緫 - } - }) +const submitForm = (status) => { + const filteredActivities = activities.value.filter(activity => activity.approveNodeRemark == 1); + filteredActivities[0].approveNodeStatus = status + updateApproveNode(filteredActivities[0]).then(() => { + proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); + closeDia(); + }) } // 鍏抽棴寮规 const closeDia = () => { diff --git a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue index 291966f..a71d689 100644 --- a/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue +++ b/src/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue @@ -18,6 +18,7 @@ <el-col :span="24"> <el-form-item label="鐢宠閮ㄩ棬锛�" prop="approveDeptId"> <el-select + disabled v-model="form.approveDeptId" placeholder="閫夋嫨閮ㄩ棬" > @@ -126,7 +127,7 @@ approveProcessUpdate, getDept } from "../../../../api/collaborativeApproval/approvalProcess.js"; -import {userListNoPage} from "../../../../api/system/user.js"; +import {userListNoPage, getUserProfile} from "../../../../api/system/user.js"; const { proxy } = getCurrentInstance() const emit = defineEmits(['close']) import useUserStore from "@/store/modules/user"; @@ -181,27 +182,26 @@ approverNodes.value = [ { id: 1, userId: null } ] - console.log(userStore) form.value.approveUser = userStore.id; form.value.approveTime = getCurrentDate(); + + // 鑾峰彇褰撳墠鐢ㄦ埛淇℃伅骞惰缃儴闂↖D + form.value.approveDeptId = userStore.currentDeptId if (operationType.value === 'edit') { approveProcessGetInfo({id: row.approveId,approveReason: '1'}).then(res => { form.value = {...res.data} // 鍙嶆樉瀹℃壒浜� - // if (res.data && res.data.approverIds) { - // const nameArr = res.data.approverIds.split('锛�') - // approverNodes.value = nameArr.map((name, idx) => { - // const user = userList.value.find(u => u.name === name) - // return { id: idx + 1, userId: user ? user.id : null } - // }) - // nextApproverId = nameArr.length + 1 - // } else if (row.approverList && Array.isArray(row.approverList) && row.approverList.length > 0) { - // approverNodes.value = row.approverList.map((userId, idx) => ({ id: idx + 1, userId })) - // nextApproverId = row.approverList.length + 1 - // } else { - // approverNodes.value = [{ id: 1, userId: null }] - // nextApproverId = 2 - // } + if (res.data && res.data.approveUserIds) { + const userIds = res.data.approveUserIds.split(',') + approverNodes.value = userIds.map((userId, idx) => ({ + id: idx + 1, + userId: parseInt(userId.trim()) + })) + nextApproverId = userIds.length + 1 + } else { + approverNodes.value = [{ id: 1, userId: null }] + nextApproverId = 2 + } }) } } @@ -227,7 +227,7 @@ // 鎻愪氦浜у搧琛ㄥ崟 const submitForm = () => { // 鏀堕泦鎵�鏈夎妭鐐圭殑瀹℃壒浜篿d - form.value.approverIds = approverNodes.value.map(node => node.userId).join(',') + form.value.approveUserIds = approverNodes.value.map(node => node.userId).join(',') // 瀹℃壒浜哄繀濉牎楠� const hasEmptyApprover = approverNodes.value.some(node => !node.userId) if (hasEmptyApprover) { diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue index 7e51ea4..60f0c1a 100644 --- a/src/views/collaborativeApproval/approvalProcess/index.vue +++ b/src/views/collaborativeApproval/approvalProcess/index.vue @@ -46,6 +46,8 @@ import InfoFormDia from "@/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue"; import ApprovalDia from "@/views/collaborativeApproval/approvalProcess/components/approvalDia.vue"; import {approveProcessDelete, approveProcessListPage} from "../../../api/collaborativeApproval/approvalProcess.js"; +import useUserStore from "@/store/modules/user"; +const userStore = useUserStore(); const data = reactive({ searchForm: { @@ -58,6 +60,7 @@ label: "瀹℃壒鐘舵��", prop: "approveStatus", dataType: "tag", + width: 100, formatData: (params) => { if (params == 0) { return "寰呭鏍�"; @@ -89,6 +92,7 @@ { label: "鐢宠閮ㄩ棬", prop: "approveDeptName", + width: 220 }, { label: "瀹℃壒浜嬬敱", @@ -97,11 +101,12 @@ }, { label: "鐢宠浜�", - prop: "approveUser", + prop: "approveUserName", }, { label: "鐢宠鏃ユ湡", prop: "approveTime", + width: 120 }, { label: "缁撴潫鏃ユ湡", @@ -110,7 +115,7 @@ }, { label: "褰撳墠瀹℃壒浜�", - prop: "checkCompany", + prop: "approveUserCurrentName", width: 120 }, { @@ -126,6 +131,7 @@ clickFun: (row) => { openForm("edit", row); }, + disabled: (row) => row.approveStatus == 2 || row.approveStatus == 1 }, { name: "瀹℃牳", @@ -133,6 +139,7 @@ clickFun: (row) => { openApprovalDia("approval", row); }, + disabled: (row) => row.approveUserCurrentId == null || row.approveStatus == 2 }, { name: "璇︽儏", diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue index b6d9229..68934ff 100644 --- a/src/views/equipmentManagement/ledger/Form.vue +++ b/src/views/equipmentManagement/ledger/Form.vue @@ -23,20 +23,18 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺" prop="number"> - <el-input + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.number" placeholder="璇疯緭鍏ユ暟閲�" - type="number" @change="mathNum" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="鍚◣鍗曚环" prop="taxIncludingPriceUnit"> - <el-input + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.taxIncludingPriceUnit" placeholder="璇疯緭鍏ュ惈绋庡崟浠�" - type="number" maxlength="10" @change="mathNum" @input="handleNumberInput" diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue index 859dc94..2ad9b5a 100644 --- a/src/views/inventoryManagement/issueManagement/index.vue +++ b/src/views/inventoryManagement/issueManagement/index.vue @@ -21,9 +21,9 @@ <el-table-column align="center" label="搴忓彿" type="index" width="60" /> <el-table-column label="鍏ュ簱鏃堕棿" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip /> - <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="160" show-overflow-tooltip /> + <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip /> - <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="160" show-overflow-tooltip /> + <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="90" show-overflow-tooltip /> <el-table-column label="搴撳瓨鏁伴噺" prop="inboundNum0" width="90" show-overflow-tooltip /> @@ -44,7 +44,7 @@ <el-dialog v-model="dialogFormVisible" :title="'鏂板鍑哄簱'" width="40%" @close="closeDia"> <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> <el-form-item label="鍑哄簱鏁伴噺锛�" prop="salesContractNo"> - <el-input v-model="form.inboundQuantity" placeholder="璇疯緭鍏�" clearable /> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.inboundQuantity" placeholder="璇疯緭鍏�" clearable /> </el-form-item> <el-form-item label="鍑哄簱鏃ユ湡锛�" prop="projectName"> <el-date-picker style="width: 100%" v-model="form.inboundTime" value-format="YYYY-MM-DD" format="YYYY-MM-DD" diff --git a/src/views/inventoryManagement/receiptManagement/index.vue b/src/views/inventoryManagement/receiptManagement/index.vue index 6b098b0..61ddd55 100644 --- a/src/views/inventoryManagement/receiptManagement/index.vue +++ b/src/views/inventoryManagement/receiptManagement/index.vue @@ -21,9 +21,9 @@ <el-table-column align="center" label="搴忓彿" type="index" width="60" /> <el-table-column label="鍏ュ簱鏃堕棿" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鎵规" prop="inboundBatches" width="160" show-overflow-tooltip /> - <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="160" show-overflow-tooltip /> + <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip /> - <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="160" show-overflow-tooltip /> + <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="unit" width="70" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鏁伴噺" prop="inboundNum" width="90" show-overflow-tooltip /> <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip /> @@ -80,9 +80,9 @@ <el-table-column label="渚涘簲鍟�" prop="supplierName" width="100" /> <el-table-column label="閲囪喘鏁伴噺" prop="quantity" width="100" /> <el-table-column label="寰呭叆搴撴暟閲�" prop="quantity0" width="100" /> - <el-table-column label="鏈鍏ュ簱鏁伴噺" prop="quantityStock" width="120"> + <el-table-column label="鏈鍏ュ簱鏁伴噺" prop="quantityStock" width="150"> <template #default="scope"> - <el-input v-model="scope.row.quantityStock" type="number" :min="0" :max="scope.row.quantity0" /> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.quantityStock" :max="scope.row.quantity0" /> </template> </el-table-column> <el-table-column label="绋庣巼(%)" prop="taxRate" width="120" /> diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue index 86f1a76..612dbc4 100644 --- a/src/views/inventoryManagement/stockManagement/index.vue +++ b/src/views/inventoryManagement/stockManagement/index.vue @@ -21,9 +21,9 @@ <el-table-column align="center" label="搴忓彿" type="index" width="60" /> <el-table-column label="搴撳瓨鏃ユ湡" prop="createTime" width="100" show-overflow-tooltip /> <el-table-column label="鍏ュ簱鏃ユ湡" prop="createTime" width="100" show-overflow-tooltip /> - <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="160" show-overflow-tooltip /> + <el-table-column label="渚涘簲鍟嗗悕绉�" prop="supplierName" width="240" show-overflow-tooltip /> <el-table-column label="浜у搧澶х被" prop="productCategory" width="100" show-overflow-tooltip /> - <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="100" show-overflow-tooltip /> + <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" width="200" show-overflow-tooltip /> <el-table-column label="鍗曚綅" prop="unit" width="80" show-overflow-tooltip /> <el-table-column label="搴撳瓨鏁伴噺" prop="inboundNum0" width="100" show-overflow-tooltip /> <el-table-column label="鍚◣鍗曚环" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip /> diff --git a/src/views/personnelManagement/contractManagement/index.vue b/src/views/personnelManagement/contractManagement/index.vue index 623d675..46a73e1 100644 --- a/src/views/personnelManagement/contractManagement/index.vue +++ b/src/views/personnelManagement/contractManagement/index.vue @@ -98,6 +98,7 @@ { label: "瀹跺涵浣忓潃", prop: "adress", + width:200 }, { label: "绗竴瀛﹀巻", @@ -106,10 +107,12 @@ { label: "涓撲笟", prop: "profession", + width:100 }, { label: "韬唤璇佸彿", prop: "identityCard", + width:200 }, { label: "骞撮緞", @@ -118,6 +121,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "phone", + width:150 }, { label: "绱ф�ヨ仈绯讳汉", @@ -125,8 +129,9 @@ width: 120 }, { - label: "鑱旂郴鐢佃瘽", + label: "绱ф�ヨ仈绯讳汉鐢佃瘽", prop: "emergencyContactPhone", + width:150 }, { label: "鍚堝悓骞撮檺", diff --git a/src/views/personnelManagement/dimission/index.vue b/src/views/personnelManagement/dimission/index.vue index ccf43da..3b5ca2b 100644 --- a/src/views/personnelManagement/dimission/index.vue +++ b/src/views/personnelManagement/dimission/index.vue @@ -98,6 +98,7 @@ { label: "瀹跺涵浣忓潃", prop: "adress", + width:200 }, { label: "绗竴瀛﹀巻", @@ -106,10 +107,12 @@ { label: "涓撲笟", prop: "profession", + width:100 }, { label: "韬唤璇佸彿", prop: "identityCard", + width:200 }, { label: "骞撮緞", @@ -118,6 +121,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "phone", + width:150 }, { label: "绱ф�ヨ仈绯讳汉", @@ -125,8 +129,9 @@ width: 120 }, { - label: "鑱旂郴鐢佃瘽", + label: "绱ф�ヨ仈绯讳汉鐢佃瘽", prop: "emergencyContactPhone", + width:150 }, { label: "鍚堝悓骞撮檺", diff --git a/src/views/personnelManagement/employeeRecord/index.vue b/src/views/personnelManagement/employeeRecord/index.vue index f1e04db..a7389a5 100644 --- a/src/views/personnelManagement/employeeRecord/index.vue +++ b/src/views/personnelManagement/employeeRecord/index.vue @@ -98,6 +98,7 @@ { label: "瀹跺涵浣忓潃", prop: "adress", + width:200 }, { label: "绗竴瀛﹀巻", @@ -106,10 +107,12 @@ { label: "涓撲笟", prop: "profession", + width:100 }, { label: "韬唤璇佸彿", prop: "identityCard", + width:200 }, { label: "骞撮緞", @@ -118,6 +121,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "phone", + width:150 }, { label: "绱ф�ヨ仈绯讳汉", @@ -125,8 +129,9 @@ width: 120 }, { - label: "鑱旂郴鐢佃瘽", + label: "绱ф�ヨ仈绯讳汉鐢佃瘽", prop: "emergencyContactPhone", + width:150 }, { label: "鍚堝悓骞撮檺", diff --git a/src/views/personnelManagement/onboarding/index.vue b/src/views/personnelManagement/onboarding/index.vue index f7ddc71..2254175 100644 --- a/src/views/personnelManagement/onboarding/index.vue +++ b/src/views/personnelManagement/onboarding/index.vue @@ -98,6 +98,7 @@ { label: "瀹跺涵浣忓潃", prop: "adress", + width:200 }, { label: "绗竴瀛﹀巻", @@ -106,10 +107,12 @@ { label: "涓撲笟", prop: "profession", + width:100 }, { label: "韬唤璇佸彿", prop: "identityCard", + width:200 }, { label: "骞撮緞", @@ -118,6 +121,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "phone", + width:150 }, { label: "绱ф�ヨ仈绯讳汉", @@ -127,6 +131,7 @@ { label: "鑱旂郴鐢佃瘽", prop: "emergencyContactPhone", + width:150 }, { label: "鍚堝悓骞撮檺", diff --git a/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue b/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue index 7596e6d..aa663eb 100644 --- a/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue +++ b/src/views/procurementManagement/invoiceEntry/components/ExpandTable.vue @@ -4,6 +4,7 @@ :column="columns" :tableData="dataList" :tableLoading="loading" + height="auto" > </PIMTable> </template> @@ -11,6 +12,7 @@ <script setup> import { usePaginationApi } from "@/hooks/usePaginationApi"; import { productList } from "@/api/procurementManagement/procurementLedger.js"; +import { nextTick } from "vue"; defineOptions({ name: "鏉ョエ鐧昏鎶樺彔琛�", @@ -98,7 +100,8 @@ } ); -const getList = (id) => { +const getList = async (id) => { + await nextTick(); filters.salesLedgerId = id; getTableData(); }; diff --git a/src/views/procurementManagement/invoiceEntry/components/Modal.vue b/src/views/procurementManagement/invoiceEntry/components/Modal.vue index 4c19cfd..e3d96af 100644 --- a/src/views/procurementManagement/invoiceEntry/components/Modal.vue +++ b/src/views/procurementManagement/invoiceEntry/components/Modal.vue @@ -54,10 +54,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceAmount"> - <el-input - type="number" - :step="0.01" - :min="0" + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.invoiceAmount" placeholder="鑷姩濉厖" clearable diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue index c7376ee..6df2bb0 100644 --- a/src/views/procurementManagement/invoiceEntry/index.vue +++ b/src/views/procurementManagement/invoiceEntry/index.vue @@ -24,8 +24,8 @@ <el-button type="primary" @click="handleAdd('add')"> 鏂板鐧昏 </el-button> - <el-button @click="handleOut">瀵煎嚭</el-button> - <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button> +<!-- <el-button @click="handleOut">瀵煎嚭</el-button>--> +<!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>--> </div> </div> <PIMTable @@ -103,18 +103,22 @@ { label: "閲囪喘璁㈠崟鍙�", prop: "purchaseContractNumber", + width:150 }, { label: "閿�鍞悎鍚屽彿", prop: "salesContractNo", + width:150 }, { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:240 }, { label: "椤圭洰鍚嶇О", prop: "projectName", + width:150 }, { label: "褰曞叆浜�", @@ -123,10 +127,12 @@ { label: "褰曞叆鏃ユ湡", prop: "entryDate", + width:100 }, { label: "鍚堝悓閲戦(鍏�)", prop: "contractAmount", + width:150, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -134,6 +140,7 @@ { label: "宸插紑绁ㄩ噾棰�(鍏�)", prop: "receiptPaymentAmount", + width:150, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -141,6 +148,7 @@ { label: "寰呭紑绁ㄩ噾棰�(鍏�)", prop: "unReceiptPaymentAmount", + width:150, formatData: (val) => { return val ? parseFloat(val).toFixed(2) : 0; }, @@ -178,8 +186,10 @@ const handleDelete = () => {}; const expandChange = async (row, expandedRows) => { - await nextTick(); - expandTableRef.value.getList(row.id); + if (expandedRows.length > 0) { + await nextTick(); + expandTableRef.value.getList(row.id); + } }; const changePage = ({ page }) => { diff --git a/src/views/procurementManagement/paymentEntry/index.vue b/src/views/procurementManagement/paymentEntry/index.vue index 109200d..5113234 100644 --- a/src/views/procurementManagement/paymentEntry/index.vue +++ b/src/views/procurementManagement/paymentEntry/index.vue @@ -136,8 +136,6 @@ <el-col :span="12"> <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceAmount"> <el-input - type="number" - :step="0.01" v-model="form.invoiceAmount" placeholder="鑷姩濉厖" clearable @@ -147,9 +145,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鏈浠樻閲戦锛�" prop="currentPaymentAmount"> - <el-input - type="number" - :step="0.01" + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.currentPaymentAmount" placeholder="璇疯緭鍏�" clearable @@ -245,10 +241,12 @@ { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:240 }, { label: "鍙戠エ鍙�", prop: "invoiceNumber", + width:200 }, { label: "鍙戠エ閲戦(鍏�)", diff --git a/src/views/procurementManagement/paymentHistory/index.vue b/src/views/procurementManagement/paymentHistory/index.vue index 8811129..0ef6110 100644 --- a/src/views/procurementManagement/paymentHistory/index.vue +++ b/src/views/procurementManagement/paymentHistory/index.vue @@ -69,6 +69,7 @@ { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:240 }, { label: "浠樻閲戦", diff --git a/src/views/procurementManagement/paymentLedger/index.vue b/src/views/procurementManagement/paymentLedger/index.vue index 8d7de25..8226031 100644 --- a/src/views/procurementManagement/paymentLedger/index.vue +++ b/src/views/procurementManagement/paymentLedger/index.vue @@ -120,6 +120,7 @@ { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", + width:240 }, { label: "鍙戠エ閲戦(鍏�)", diff --git a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue index c00251a..2ce140d 100644 --- a/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue +++ b/src/views/procurementManagement/procurementInvoiceLedger/Form/EditForm.vue @@ -12,7 +12,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鏉ョエ閲戦锛�"> + <el-form-item label="鍚◣鎬讳环(鍏�)锛�"> <el-text type="primary">{{ form.taxInclusiveTotalPrice }}</el-text> </el-form-item> </el-col> @@ -28,11 +28,11 @@ </el-col> <el-col :span="12"> <el-form-item label="鏉ョエ鏁帮細"> - <el-input v-model="form.ticketsNum" @input="inputTicketsNum" /> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.ticketsNum" @input="inputTicketsNum" /> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鏉ョエ閲戦锛�"> + <el-form-item label="鏈鏉ョエ閲戦(鍏�)锛�"> <el-text type="success">{{ form.ticketsAmount }}</el-text> </el-form-item> </el-col> diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue index 15d362b..7afd3d1 100644 --- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue +++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue @@ -143,36 +143,44 @@ label: "閲囪喘鍚堝悓鍙�", prop: "purchaseContractNumber", align: "center", + width: 150, }, { label: "閿�鍞悎鍚屽彿", prop: "salesContractNo", align: "center", + width: 150, }, { label: "瀹㈡埛鍚嶇О", prop: "customerName", align: "center", + width: 150, }, { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", align: "center", + width: 240, }, { label: "瑙勬牸鍨嬪彿", prop: "specificationModel", align: "center", + width: 150, }, { label: "鍙戠エ鍙�", prop: "invoiceNumber", align: "center", + + width: 200, }, { label: "鍚堝悓閲戦(鍏�)", prop: "taxInclusiveTotalPrice", align: "center", + width: 120, formatData: (cell) => { return cell ? parseFloat(cell).toFixed(2) : 0; }, @@ -181,11 +189,13 @@ label: "寮�绁ㄦ棩鏈�", prop: "createdAt", align: "center", + width: 100, }, { label: "寮�绁ㄩ噾棰�", prop: "ticketsAmount", align: "center", + width: 100, formatData: (cell) => { return cell ? parseFloat(cell).toFixed(2) : 0; }, @@ -194,6 +204,7 @@ label: "涓嶅惈绋庨噾棰�", prop: "unTicketsPrice", align: "center", + width: 100, formatData: (cell) => { return cell ? parseFloat(cell).toFixed(2) : 0; }, @@ -202,6 +213,7 @@ label: "澧炲�肩◣", prop: "invoiceAmount", align: "center", + width: 100, }, { label: "闄勪欢", diff --git a/src/views/procurementManagement/procurementLedger/index.vue b/src/views/procurementManagement/procurementLedger/index.vue index be2cac7..1465d16 100644 --- a/src/views/procurementManagement/procurementLedger/index.vue +++ b/src/views/procurementManagement/procurementLedger/index.vue @@ -76,42 +76,50 @@ <el-table-column label="閲囪喘鍚堝悓鍙�" prop="purchaseContractNumber" + width="200" show-overflow-tooltip /> <el-table-column label="閿�鍞悎鍚屽彿" prop="salesContractNo" + width="200" show-overflow-tooltip /> <el-table-column label="渚涘簲鍟嗗悕绉�" + width="240" prop="supplierName" show-overflow-tooltip /> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" + width="100" show-overflow-tooltip /> <el-table-column label="浠樻鏂瑰紡" + width="100" prop="paymentMethod" show-overflow-tooltip /> <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" + width="100" show-overflow-tooltip :formatter="formattedNumber" /> <el-table-column label="褰曞叆浜�" prop="recorderName" + width="100" show-overflow-tooltip /> <el-table-column label="褰曞叆鏃ユ湡" prop="entryDate" + width="100" show-overflow-tooltip /> <el-table-column @@ -423,10 +431,12 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input + <el-input-number + :step="0.1" + clearable + style="width: 100%" v-model="productForm.quantity" placeholder="璇疯緭鍏�" - clearable @change="mathNum" /> </el-form-item> diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue index adeb393..73646d1 100644 --- a/src/views/qualityManagement/finalInspection/components/formDia.vue +++ b/src/views/qualityManagement/finalInspection/components/formDia.vue @@ -36,7 +36,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> </el-form-item> </el-col> </el-row> diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue index a6bfbd6..56107bf 100644 --- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue +++ b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue @@ -55,7 +55,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> </el-form-item> </el-col> </el-row> diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue index 8e6466a..2b6a26b 100644 --- a/src/views/qualityManagement/processInspection/components/formDia.vue +++ b/src/views/qualityManagement/processInspection/components/formDia.vue @@ -43,7 +43,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> </el-form-item> </el-col> </el-row> diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue index 32192c0..c7898b6 100644 --- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue +++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue @@ -54,7 +54,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable/> </el-form-item> </el-col> </el-row> diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue index 7a19559..0f5eb24 100644 --- a/src/views/salesManagement/invoiceLedger/index.vue +++ b/src/views/salesManagement/invoiceLedger/index.vue @@ -86,7 +86,7 @@ </el-col> <el-col :span="12"> <el-form-item label="鍙戠エ閲戦(鍏�)锛�" prop="invoiceTotal"> - <el-input type="number" :step="0.01" v-model="form.invoiceTotal" placeholder="璇疯緭鍏�" clearable /> + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.invoiceTotal" placeholder="璇疯緭鍏�" clearable /> </el-form-item> </el-col> </el-row> diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue index f229f81..0104fd1 100644 --- a/src/views/salesManagement/invoiceRegistration/index.vue +++ b/src/views/salesManagement/invoiceRegistration/index.vue @@ -125,39 +125,47 @@ label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip + width="200" /> <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" + width="200" show-overflow-tooltip /> <el-table-column label="瀹㈡埛鍚嶇О" prop="customerName" show-overflow-tooltip + width="240" /> <el-table-column label="涓氬姟鍛�" prop="salesman" show-overflow-tooltip /> <el-table-column label="椤圭洰鍚嶇О" prop="projectName" show-overflow-tooltip + width="200" /> <el-table-column label="鍚堝悓閲戦(鍏�)" prop="contractAmount" show-overflow-tooltip :formatter="formattedNumber" + width="120" + /> <el-table-column label="宸插紑绁ㄩ噾棰�(鍏�)" prop="invoiceTotal" show-overflow-tooltip :formatter="formattedNumber" + width="120" /> <el-table-column label="鏈紑绁ㄩ噾棰�(鍏�)" prop="noInvoiceAmountTotal" show-overflow-tooltip + width="120" > <template #default="{ row, column }"> <el-text type="danger"> @@ -306,15 +314,12 @@ :formatter="formattedNumber" width="150" /> - <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum"> + <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum" width="150"> <template #default="scope"> - <el-input - type="number" - :step="0.1" - min="0" + <el-input-number :step="0.1" :min="0" style="width: 100%" v-model="scope.row.currentInvoiceNum" @blur="invoiceNumBlur(scope.row)" - ></el-input> + ></el-input-number> </template> </el-table-column> <el-table-column @@ -323,13 +328,10 @@ width="150" > <template #default="scope"> - <el-input - type="number" - :step="0.01" - min="0" + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="scope.row.currentInvoiceAmount" @blur="invoiceAmountBlur(scope.row)" - ></el-input> + ></el-input-number> </template> </el-table-column> <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" width="100"> diff --git a/src/views/salesManagement/receiptPayment/index.vue b/src/views/salesManagement/receiptPayment/index.vue index 9c88689..430823e 100644 --- a/src/views/salesManagement/receiptPayment/index.vue +++ b/src/views/salesManagement/receiptPayment/index.vue @@ -146,11 +146,14 @@ label="閿�鍞悎鍚屽彿" prop="salesContractNo" show-overflow-tooltip + width="240" /> <el-table-column label="瀹㈡埛鍚堝悓鍙�" prop="customerContractNo" show-overflow-tooltip + width="240" + /> <el-table-column label="瀹㈡埛鍚嶇О" @@ -162,22 +165,26 @@ label="椤圭洰鍚嶇О" prop="projectName" show-overflow-tooltip + width="200" /> <el-table-column label="浜у搧澶х被" prop="productCategory" show-overflow-tooltip + width="100" /> <el-table-column label="鍙戠エ鍙�" prop="invoiceNo" show-overflow-tooltip + width="200" /> <el-table-column label="鍙戠エ閲戦(鍏�)" prop="invoiceTotal" show-overflow-tooltip :formatter="formattedNumber" + width="150" /> <el-table-column label="绋庣巼(%)" prop="taxRate" show-overflow-tooltip /> <el-table-column @@ -185,11 +192,13 @@ prop="receiptPaymentAmountTotal" show-overflow-tooltip :formatter="formattedNumber" + width="150" /> <el-table-column label="寰呭洖娆鹃噾棰�(鍏�)" prop="noReceiptAmount" show-overflow-tooltip + width="150" > <template #default="{ row, column }"> <el-text type="danger"> @@ -276,12 +285,9 @@ </el-col> <el-col :span="12"> <el-form-item label="鏈鍥炴閲戦锛�" prop="receiptPaymentAmount"> - <el-input - type="number" - min="0" + <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.receiptPaymentAmount" placeholder="璇疯緭鍏�" - :step="0.01" clearable /> </el-form-item> diff --git a/src/views/salesManagement/receiptPaymentHistory/index.vue b/src/views/salesManagement/receiptPaymentHistory/index.vue index 0219fe9..f127645 100644 --- a/src/views/salesManagement/receiptPaymentHistory/index.vue +++ b/src/views/salesManagement/receiptPaymentHistory/index.vue @@ -76,30 +76,32 @@ { label: "閿�鍞悎鍚屽彿", prop: "salesContractNo", + width:240 }, { label: "瀹㈡埛鍚堝悓鍙�", prop: "customerContractNo", + width:240 }, { label: "鍥炴鏃ユ湡", prop: "receiptPaymentDate", + width:100 }, { label: "瀹㈡埛鍚嶇О", prop: "customerName", + width:240 }, { label: "椤圭洰鍚嶇О", prop: "projectName", - }, - { - label: "椤圭洰鍚嶇О", - prop: "projectName", + width:200 }, { label: "鍥炴閲戦锛堝厓锛�", prop: "receiptPaymentAmount", + width:150, formatData: (params) => { return params ? parseFloat(params).toFixed(2) : 0; }, @@ -128,6 +130,7 @@ { label: "鐧昏鏃ユ湡", prop: "createTime", + width:100 }, ]); const tableData = ref([]); diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue index e74ad19..7ec277f 100644 --- a/src/views/salesManagement/salesLedger/index.vue +++ b/src/views/salesManagement/salesLedger/index.vue @@ -237,15 +237,15 @@ </el-col> <el-col :span="12"> <el-form-item label="鏁伴噺锛�" prop="quantity"> - <el-input type="number" :step="0.1" :min="0" v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable - @change="mathNum" /> + <el-input-number :step="0.1" :min="0" v-model="productForm.quantity" placeholder="璇疯緭鍏�" clearable + @change="mathNum" style="width: 100%" /> </el-form-item> </el-col> </el-row> <el-row :gutter="30"> <el-col :span="12"> <el-form-item label="鍚◣鍗曚环(鍏�)锛�" prop="taxInclusiveUnitPrice"> - <el-input v-model="productForm.taxInclusiveUnitPrice" placeholder="璇疯緭鍏�" clearable @change="mathNum" /> + <el-input-number :step="0.01" :min="0" v-model="productForm.taxInclusiveUnitPrice" style="width: 100%" placeholder="璇疯緭鍏�" clearable @change="mathNum" /> </el-form-item> </el-col> <el-col :span="12"> @@ -493,7 +493,7 @@ if (nodes[i].children && nodes[i].children.length > 0) { const foundNode = findNodeById(nodes[i].children, productId); if (foundNode) { - return foundNode.label; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐� + return foundNode; // 鍦ㄥ瓙鑺傜偣涓壘鍒帮紝杩斿洖璇ヨ妭鐐� } } } @@ -639,7 +639,7 @@ return; } let tempFileIds = []; - if (fileList.value.length > 0) { + if (fileList.value !== null && fileList.value.length > 0) { tempFileIds = fileList.value.map((item) => item.tempId); } form.value.tempFileIds = tempFileIds; @@ -683,6 +683,7 @@ }; const submitProductEdit = () => { productForm.value.salesLedgerId = currentId.value; + productForm.value.type = 1 addOrUpdateSalesLedgerProduct(productForm.value).then((res) => { proxy.$modal.msgSuccess("鎻愪氦鎴愬姛"); closeProductDia(); -- Gitblit v1.9.3