From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-admin/src/components/orderDetlLog/edit.vue | 626 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 313 insertions(+), 313 deletions(-) diff --git a/zy-asrs-admin/src/components/orderDetlLog/edit.vue b/zy-asrs-admin/src/components/orderDetlLog/edit.vue index f2584d3..a3fd522 100644 --- a/zy-asrs-admin/src/components/orderDetlLog/edit.vue +++ b/zy-asrs-admin/src/components/orderDetlLog/edit.vue @@ -1,313 +1,313 @@ -<script setup> -import { getCurrentInstance, ref, watch, reactive } from 'vue'; -import { useRouter } from "vue-router"; -import { get, post, postForm } from '@/utils/request.js' -import { message, Modal } from 'ant-design-vue'; -import { logout } from '@/config.js'; -import { formatMessage } from '@/utils/localeUtils.js'; -import useTableSearch from '@/utils/tableUtils.jsx'; -const context = getCurrentInstance()?.appContext.config.globalProperties; - -const router = useRouter(); - -const TABLE_KEY = 'table-locDetl'; - -let tableData = ref([]); -let deleteDetlId = ref([]); -let orderId = ref(null); -getColumns(); - -const { - getColumnSearchProps, -} = useTableSearch(); - -const state = reactive({ - selectedRowKeys: [], - loading: false, - columns: [], -}); - -state.columns = [ - { - title: '#', - dataIndex: '_id', - width: 60, - ellipsis: true, - }, - { - title: formatMessage('db.man_loc_detl.matnr', '鍟嗗搧缂栧彿'), - dataIndex: 'matnr', - width: 140, - ellipsis: true, - }, - { - title: formatMessage('db.man_loc_detl.maktx', '鍟嗗搧鍚嶇О'), - dataIndex: 'maktx', - width: 140, - ellipsis: true, - }, - { - title: formatMessage('db.man_loc_detl.batch', '鎵瑰彿'), - dataIndex: 'batch', - width: 140, - ellipsis: true, - editable: true, - }, - { - title: formatMessage('db.man_loc_detl.anfme', '鏁伴噺'), - dataIndex: 'anfme', - width: 140, - ellipsis: true, - editable: true, - }, - { - title: formatMessage('db.man_loc_detl.qty', '宸插畬鎴愭暟閲�'), - dataIndex: 'qty', - width: 140, - ellipsis: true, - editable: true, - }, - { - title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'), - dataIndex: 'workQty', - width: 140, - ellipsis: true, - editable: true, - }, - { - title: formatMessage('db.man_loc_detl.memo', '澶囨敞'), - dataIndex: 'memo', - width: 140, - ellipsis: true, - editable: true, - }, -]; - -const fieldList = []; -//鍔犺浇鎵╁睍瀛楁 -async function getColumns() { - let fieldResp = await post('/api/matField/list', { - fieldType: 1 - }) - let fieldResult = fieldResp.data; - let tmp = state.columns; - if (fieldResult.code == 200) { - let data = fieldResult.data; - - data.forEach((item) => { - tmp.push({ - title: formatMessage(item.language, item.describe), - name: item.name, - dataIndex: item.name, - key: item.name, - width: 140, - editable: true, - }) - - fieldList.push(item.name); - }) - - tmp.push({ - title: formatMessage('common.operation', '鎿嶄綔'), - name: 'oper', - dataIndex: 'oper', - key: 'oper', - width: 140, - }) - - state.columns = tmp; - } else if (result.code === 401) { - message.error(result.msg); - logout() - } else { - message.error(result.msg); - } -} - -const openAddDetl = ref(false); -const matChecked = ref([]); -const matQueryList = ref(null); -const matSelectList = ref([]); -const addDetl = () => { - openAddDetl.value = true; -} - -const handleAddDetlOk = () => { - let origin = tableData.value; - let index = origin.length + 1; - matSelectList.value.forEach((item) => { - let data = { - _id: index++, - matnr: item.data.matnr, - maktx: item.data.maktx, - batch: '', - anfme: 0, - qty: 0, - workQty: 0, - memo: '' - }; - fieldList.forEach((field) => { - data[field] = ''; - }) - origin.push(data) - }) - tableData.value = origin; - - openAddDetl.value = false; - matSelectList.value = []; - matChecked.value = []; -} - -const handleAddDetlCancel = () => { - matSelectList.value = []; - matChecked.value = []; -} - -const handleSearch = val => { - matQuery(val); -} - -const handleSelect = (value, option) => { - let flag = true; - matSelectList.value.forEach((item) => { - if (item.value == value) { - flag = false; - } - }) - - if (flag) { - matSelectList.value.push(option) - } -} - -const handleDeselect = (value, option) => { - let tmp = []; - matSelectList.value.forEach((item) => { - if (item.value != value) { - tmp.push(item); - } - }) - - matSelectList.value = tmp; -} - -matQuery(null); -function matQuery(condition) { - post('/api/mat/page', { - current: 1, - pageSize: 100, - condition: condition - }).then((resp) => { - let result = resp.data; - let tmp = [] - result.data.records.forEach((item) => { - tmp.push({ - value: item.matnr, - label: item.matnr, - data: item - }) - }) - matQueryList.value = tmp; - }) -} - -const handleDel = (record) => { - let tmp = []; - tableData.value.forEach((item) => { - if (item._id != record._id) { - tmp.push(item); - } - }) - - //閲嶅缓绱㈠紩 - let index = 1; - tmp.forEach((item) => { - item._id = index++; - }) - - if (record.detlId != undefined) { - deleteDetlId.value.push(record.detlId); - } - - tableData.value = tmp; -} - -watch(orderId, (newVal, oldVal) => { - if(newVal == undefined || newVal == null) { - tableData.value = []; - return; - } - - get("/api/orderDetl/orderId/" + newVal, {}).then((resp) => { - let result = resp.data; - let index = 1; - let tmp = []; - result.data.forEach((item) => { - let data = { - _id: index++, - detlId: item.id, - matnr: item.mat$.matnr, - maktx: item.mat$.maktx, - batch: item.batch, - anfme: item.anfme, - qty: item.qty, - workQty: item.workQty, - memo: item.memo - }; - fieldList.forEach((field) => { - data[field] = item[field]; - }) - tmp.push(data) - }) - tableData.value = tmp; - }) - -}) - -defineExpose({ - tableData, - orderId, - deleteDetlId, -}) - -</script> - -<script> -export default { - name: 'orderDetlComponent' -} -</script> - -<template> - <div> - <div class="table-header"> - <a-button @click="addDetl()" type="primary">{{ formatMessage('page.add', '娣诲姞鏄庣粏') }}</a-button> - </div> - <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" - :scroll="{ y: 768 }" :columns="state.columns"> - <template #bodyCell="{ column, record, index }"> - <template v-if="column.dataIndex === 'oper'"> - <div style="display: flex;justify-content: space-evenly;"> - <a-button type="link" danger @click="handleDel(record)">{{ formatMessage('page.delete', '鍒犻櫎') - }}</a-button> - </div> - </template> - - <template v-if="column.editable"> - <div> - <a-input v-model:value="record[column.dataIndex]" /> - </div> - </template> - </template> - </a-table> - - <a-modal v-model:open="openAddDetl" :title="formatMessage('component.orderDetl.edit.addDetl', '娣诲姞鏄庣粏')" - @ok="handleAddDetlOk" @cancel="handleAddDetlCancel"> - <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple" - :placeholder="formatMessage('component.orderDetl.edit.selectMat', '璇烽�夋嫨鐗╂枡')" @search="handleSearch" - @select="handleSelect" @deselect="handleDeselect"></a-select> - </a-modal> - </div> -</template> - -<style></style> +<script setup> +import { getCurrentInstance, ref, watch, reactive } from 'vue'; +import { useRouter } from "vue-router"; +import { get, post, postForm } from '@/utils/request.js' +import { message, Modal } from 'ant-design-vue'; +import { logout } from '@/config.js'; +import { formatMessage } from '@/utils/localeUtils.js'; +import useTableSearch from '@/utils/tableUtils.jsx'; +const context = getCurrentInstance()?.appContext.config.globalProperties; + +const router = useRouter(); + +const TABLE_KEY = 'table-locDetl'; + +let tableData = ref([]); +let deleteDetlId = ref([]); +let orderId = ref(null); +getColumns(); + +const { + getColumnSearchProps, +} = useTableSearch(); + +const state = reactive({ + selectedRowKeys: [], + loading: false, + columns: [], +}); + +state.columns = [ + { + title: '#', + dataIndex: '_id', + width: 60, + ellipsis: true, + }, + { + title: formatMessage('db.man_loc_detl.matnr', '鍟嗗搧缂栧彿'), + dataIndex: 'matnr', + width: 140, + ellipsis: true, + }, + { + title: formatMessage('db.man_loc_detl.maktx', '鍟嗗搧鍚嶇О'), + dataIndex: 'maktx', + width: 140, + ellipsis: true, + }, + { + title: formatMessage('db.man_loc_detl.batch', '鎵瑰彿'), + dataIndex: 'batch', + width: 140, + ellipsis: true, + editable: true, + }, + { + title: formatMessage('db.man_loc_detl.anfme', '鏁伴噺'), + dataIndex: 'anfme', + width: 140, + ellipsis: true, + editable: true, + }, + { + title: formatMessage('db.man_loc_detl.qty', '宸插畬鎴愭暟閲�'), + dataIndex: 'qty', + width: 140, + ellipsis: true, + editable: true, + }, + { + title: formatMessage('db.man_loc_detl.workQty', '浣滀笟涓暟閲�'), + dataIndex: 'workQty', + width: 140, + ellipsis: true, + editable: true, + }, + { + title: formatMessage('db.man_loc_detl.memo', '澶囨敞'), + dataIndex: 'memo', + width: 140, + ellipsis: true, + editable: true, + }, +]; + +const fieldList = []; +//鍔犺浇鎵╁睍瀛楁 +async function getColumns() { + let fieldResp = await post('/api/matField/list', { + fieldType: 1 + }) + let fieldResult = fieldResp.data; + let tmp = state.columns; + if (fieldResult.code == 200) { + let data = fieldResult.data; + + data.forEach((item) => { + tmp.push({ + title: formatMessage(item.language, item.describe), + name: item.name, + dataIndex: item.name, + key: item.name, + width: 140, + editable: true, + }) + + fieldList.push(item.name); + }) + + tmp.push({ + title: formatMessage('common.operation', '鎿嶄綔'), + name: 'oper', + dataIndex: 'oper', + key: 'oper', + width: 140, + }) + + state.columns = tmp; + } else if (result.code === 401) { + message.error(result.msg); + logout() + } else { + message.error(result.msg); + } +} + +const openAddDetl = ref(false); +const matChecked = ref([]); +const matQueryList = ref(null); +const matSelectList = ref([]); +const addDetl = () => { + openAddDetl.value = true; +} + +const handleAddDetlOk = () => { + let origin = tableData.value; + let index = origin.length + 1; + matSelectList.value.forEach((item) => { + let data = { + _id: index++, + matnr: item.data.matnr, + maktx: item.data.maktx, + batch: '', + anfme: 0, + qty: 0, + workQty: 0, + memo: '' + }; + fieldList.forEach((field) => { + data[field] = ''; + }) + origin.push(data) + }) + tableData.value = origin; + + openAddDetl.value = false; + matSelectList.value = []; + matChecked.value = []; +} + +const handleAddDetlCancel = () => { + matSelectList.value = []; + matChecked.value = []; +} + +const handleSearch = val => { + matQuery(val); +} + +const handleSelect = (value, option) => { + let flag = true; + matSelectList.value.forEach((item) => { + if (item.value == value) { + flag = false; + } + }) + + if (flag) { + matSelectList.value.push(option) + } +} + +const handleDeselect = (value, option) => { + let tmp = []; + matSelectList.value.forEach((item) => { + if (item.value != value) { + tmp.push(item); + } + }) + + matSelectList.value = tmp; +} + +matQuery(null); +function matQuery(condition) { + post('/api/mat/page', { + current: 1, + pageSize: 100, + condition: condition + }).then((resp) => { + let result = resp.data; + let tmp = [] + result.data.records.forEach((item) => { + tmp.push({ + value: item.matnr, + label: item.matnr, + data: item + }) + }) + matQueryList.value = tmp; + }) +} + +const handleDel = (record) => { + let tmp = []; + tableData.value.forEach((item) => { + if (item._id != record._id) { + tmp.push(item); + } + }) + + //閲嶅缓绱㈠紩 + let index = 1; + tmp.forEach((item) => { + item._id = index++; + }) + + if (record.detlId != undefined) { + deleteDetlId.value.push(record.detlId); + } + + tableData.value = tmp; +} + +watch(orderId, (newVal, oldVal) => { + if(newVal == undefined || newVal == null) { + tableData.value = []; + return; + } + + get("/api/orderDetl/orderId/" + newVal, {}).then((resp) => { + let result = resp.data; + let index = 1; + let tmp = []; + result.data.forEach((item) => { + let data = { + _id: index++, + detlId: item.id, + matnr: item.mat$.matnr, + maktx: item.mat$.maktx, + batch: item.batch, + anfme: item.anfme, + qty: item.qty, + workQty: item.workQty, + memo: item.memo + }; + fieldList.forEach((field) => { + data[field] = item[field]; + }) + tmp.push(data) + }) + tableData.value = tmp; + }) + +}) + +defineExpose({ + tableData, + orderId, + deleteDetlId, +}) + +</script> + +<script> +export default { + name: 'orderDetlComponent' +} +</script> + +<template> + <div> + <div class="table-header"> + <a-button @click="addDetl()" type="primary">{{ formatMessage('page.add', '娣诲姞鏄庣粏') }}</a-button> + </div> + <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" + :scroll="{ y: 768 }" :columns="state.columns"> + <template #bodyCell="{ column, record, index }"> + <template v-if="column.dataIndex === 'oper'"> + <div style="display: flex;justify-content: space-evenly;"> + <a-button type="link" danger @click="handleDel(record)">{{ formatMessage('page.delete', '鍒犻櫎') + }}</a-button> + </div> + </template> + + <template v-if="column.editable"> + <div> + <a-input v-model:value="record[column.dataIndex]" /> + </div> + </template> + </template> + </a-table> + + <a-modal v-model:open="openAddDetl" :title="formatMessage('component.orderDetl.edit.addDetl', '娣诲姞鏄庣粏')" + @ok="handleAddDetlOk" @cancel="handleAddDetlCancel"> + <a-select v-model:value="matChecked" :options="matQueryList" mode="multiple" + :placeholder="formatMessage('component.orderDetl.edit.selectMat', '璇烽�夋嫨鐗╂枡')" @search="handleSearch" + @select="handleSelect" @deselect="handleDeselect"></a-select> + </a-modal> + </div> +</template> + +<style></style> -- Gitblit v1.9.1