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/orderDetl/show.vue | 564 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 282 insertions(+), 282 deletions(-) diff --git a/zy-asrs-admin/src/components/orderDetl/show.vue b/zy-asrs-admin/src/components/orderDetl/show.vue index 84acf33..9d7dddd 100644 --- a/zy-asrs-admin/src/components/orderDetl/show.vue +++ b/zy-asrs-admin/src/components/orderDetl/show.vue @@ -1,282 +1,282 @@ -<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'; -import WorkTaskView from '@/components/order/workTask/index.vue' -import CompleteTaskView from '@/components/order/completeTask/index.vue' -import WaitTaskView from '@/components/order/waitTask/index.vue' -const context = getCurrentInstance()?.appContext.config.globalProperties; - -const router = useRouter(); - -const TABLE_KEY = 'table-locDetl'; - -let tableData = ref([]); -let openDetl = ref(false); -const orderId = ref(null); -const orderInfo = ref({ - orderInfo: '', - orderType$: '', - orderSettle$: '', -}); -const workTaskChild = ref(null) -const completeTaskChild = ref(null) -const waitTaskChild = ref(null) - -const showWidth = ref("60%") -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.waitQty', '缁勬墭鏁伴噺'), - dataIndex: 'waitQty', - 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 handleOk = () => { - openDetl.value = false; -} - -const handleCancel = () => { - openDetl.value = false; - orderId.value = null; -} - -watch(orderId, (newVal, oldVal) => { - if (newVal != null) { - 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, - waitQty: item.waitQty, - memo: item.memo - }; - fieldList.forEach((field) => { - data[field] = item[field]; - }) - tmp.push(data) - }) - tableData.value = tmp; - }) - - get("/api/order/" + newVal, {}).then((resp) => { - let result = resp.data; - if(result.data != null) { - orderInfo.value = result.data; - } - }) - } -}) - -const openWorkTask = (record) => { - workTaskChild.value.open = true; - workTaskChild.value.showWidth = '55%'; - workTaskChild.value.orderDetlId = record.detlId; -} - -const openCompleteQty = (record) => { - completeTaskChild.value.open = true; - completeTaskChild.value.showWidth = '55%'; - completeTaskChild.value.orderDetlId = record.detlId; -} - -const openWaitQty = (record) => { - waitTaskChild.value.open = true; - waitTaskChild.value.showWidth = '55%'; - waitTaskChild.value.orderDetlId = record.detlId; -} - -defineExpose({ - tableData, - orderId, - openDetl, - showWidth, -}) - -</script> - -<script> -export default { - name: 'showOrderDetlComponent' -} -</script> - -<template> - <div> - <a-modal v-model:open="openDetl" :width="showWidth" @ok="handleOk" @cancel="handleCancel"> - <div class="component-header"> - <div> - <h3> - 璁㈠崟鍙凤細{{ orderInfo.orderNo }} - </h3> - <h3> - 鍗曟嵁绫诲瀷锛歿{ orderInfo.orderType$ }} - </h3> - <h3> - 鍗曟嵁鐘舵�侊細{{ orderInfo.orderSettle$ }} - </h3> - </div> - <div class="qrcode"> - <a-qrcode :value="orderInfo.orderNo" :size="100" :bordered="false" /> - </div> - </div> - <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" - :scroll="{ y: 768 }" :columns="state.columns"> - <template #bodyCell="{ column, text, record }"> - <template v-if="column.dataIndex === 'workQty'"> - <a-button type="link" @click="openWorkTask(record)">{{ text }}</a-button> - </template> - - <template v-if="column.dataIndex === 'qty'"> - <a-button type="link" @click="openCompleteQty(record)">{{ text }}</a-button> - </template> - - <template v-if="column.dataIndex === 'waitQty'"> - <a-button type="link" @click="openWaitQty(record)">{{ text }}</a-button> - </template> - </template> - </a-table> - - <WorkTaskView ref="workTaskChild" /> - <CompleteTaskView ref="completeTaskChild" /> - <WaitTaskView ref="waitTaskChild" /> - </a-modal> - </div> -</template> - -<style> -.component-header { - display: flex; -} - -.component-header>div { - flex: 1; -} - -.qrcode { - display: flex; - justify-content: flex-end; - margin-right: 30px; -} -</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'; +import WorkTaskView from '@/components/order/workTask/index.vue' +import CompleteTaskView from '@/components/order/completeTask/index.vue' +import WaitTaskView from '@/components/order/waitTask/index.vue' +const context = getCurrentInstance()?.appContext.config.globalProperties; + +const router = useRouter(); + +const TABLE_KEY = 'table-locDetl'; + +let tableData = ref([]); +let openDetl = ref(false); +const orderId = ref(null); +const orderInfo = ref({ + orderInfo: '', + orderType$: '', + orderSettle$: '', +}); +const workTaskChild = ref(null) +const completeTaskChild = ref(null) +const waitTaskChild = ref(null) + +const showWidth = ref("60%") +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.waitQty', '缁勬墭鏁伴噺'), + dataIndex: 'waitQty', + 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 handleOk = () => { + openDetl.value = false; +} + +const handleCancel = () => { + openDetl.value = false; + orderId.value = null; +} + +watch(orderId, (newVal, oldVal) => { + if (newVal != null) { + 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, + waitQty: item.waitQty, + memo: item.memo + }; + fieldList.forEach((field) => { + data[field] = item[field]; + }) + tmp.push(data) + }) + tableData.value = tmp; + }) + + get("/api/order/" + newVal, {}).then((resp) => { + let result = resp.data; + if(result.data != null) { + orderInfo.value = result.data; + } + }) + } +}) + +const openWorkTask = (record) => { + workTaskChild.value.open = true; + workTaskChild.value.showWidth = '55%'; + workTaskChild.value.orderDetlId = record.detlId; +} + +const openCompleteQty = (record) => { + completeTaskChild.value.open = true; + completeTaskChild.value.showWidth = '55%'; + completeTaskChild.value.orderDetlId = record.detlId; +} + +const openWaitQty = (record) => { + waitTaskChild.value.open = true; + waitTaskChild.value.showWidth = '55%'; + waitTaskChild.value.orderDetlId = record.detlId; +} + +defineExpose({ + tableData, + orderId, + openDetl, + showWidth, +}) + +</script> + +<script> +export default { + name: 'showOrderDetlComponent' +} +</script> + +<template> + <div> + <a-modal v-model:open="openDetl" :width="showWidth" @ok="handleOk" @cancel="handleCancel"> + <div class="component-header"> + <div> + <h3> + 璁㈠崟鍙凤細{{ orderInfo.orderNo }} + </h3> + <h3> + 鍗曟嵁绫诲瀷锛歿{ orderInfo.orderType$ }} + </h3> + <h3> + 鍗曟嵁鐘舵�侊細{{ orderInfo.orderSettle$ }} + </h3> + </div> + <div class="qrcode"> + <a-qrcode :value="orderInfo.orderNo" :size="100" :bordered="false" /> + </div> + </div> + <a-table :data-source="tableData" :defaultExpandAllRows="false" :key="TABLE_KEY" rowKey="id" + :scroll="{ y: 768 }" :columns="state.columns"> + <template #bodyCell="{ column, text, record }"> + <template v-if="column.dataIndex === 'workQty'"> + <a-button type="link" @click="openWorkTask(record)">{{ text }}</a-button> + </template> + + <template v-if="column.dataIndex === 'qty'"> + <a-button type="link" @click="openCompleteQty(record)">{{ text }}</a-button> + </template> + + <template v-if="column.dataIndex === 'waitQty'"> + <a-button type="link" @click="openWaitQty(record)">{{ text }}</a-button> + </template> + </template> + </a-table> + + <WorkTaskView ref="workTaskChild" /> + <CompleteTaskView ref="completeTaskChild" /> + <WaitTaskView ref="waitTaskChild" /> + </a-modal> + </div> +</template> + +<style> +.component-header { + display: flex; +} + +.component-header>div { + flex: 1; +} + +.qrcode { + display: flex; + justify-content: flex-end; + margin-right: 30px; +} +</style> -- Gitblit v1.9.1