From 7e2d31c20b816309cb222c2159c3875623f74385 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期三, 28 五月 2025 10:24:22 +0800 Subject: [PATCH] 工具入库功能 --- src/views/tms/modules/inboundOrder/JSelectSharpenListModal.vue | 0 src/views/tms/InboundList.vue | 39 ++ src/views/tms/modules/inbound/InboundListRight.vue | 515 ++++++++++++++++++++++++++++ src/views/tms/modules/inbound/InboundModel.vue | 87 ---- src/views/tms/modules/inboundOrder/JSelectToolingModal.vue | 0 src/views/tms/modules/baseTools/BaseToolsListRight.vue | 30 + src/views/tms/modules/inbound/InboundListLeft.vue | 323 +++++++++++++++++ src/views/tms/modules/inboundOrder/JSelectReturnListModal.vue | 2 src/views/tms/InboundOrderList.vue | 10 src/views/tms/modules/inboundOrder/InboundDetailList.vue | 0 src/views/tms/modules/toolsClassify/ToolsClassifyListRight.vue | 14 src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue | 2 src/views/tms/modules/inboundOrder/InboundOrderModel.vue | 10 13 files changed, 940 insertions(+), 92 deletions(-) diff --git a/src/views/tms/InboundList.vue b/src/views/tms/InboundList.vue new file mode 100644 index 0000000..6147900 --- /dev/null +++ b/src/views/tms/InboundList.vue @@ -0,0 +1,39 @@ +<template> + <a-row + type="flex" + :gutter="16" + > + <a-col + :md="5" + :sm="24" + > + <inbound-list-left /> + </a-col> + <a-col + :md="24-5" + :sm="24" + > + <inbound-list-right /> + </a-col> + </a-row> +</template> + +<script> +import InboundListLeft from './modules/inbound/InboundListLeft' +import InboundListRight from './modules/inbound/InboundListRight' +export default { + name: 'InboundList', + components: { InboundListLeft, InboundListRight }, + data() { + return { + description: '宸ュ叿鍏ュ簱', + currentOrgCode: '' + } + }, + methods: {} +} +</script> + +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/tms/InboundOrderList.vue b/src/views/tms/InboundOrderList.vue index fda2a46..214521c 100644 --- a/src/views/tms/InboundOrderList.vue +++ b/src/views/tms/InboundOrderList.vue @@ -72,8 +72,8 @@ <script> import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import InboundOrderModel from './modules/inbound/InboundOrderModel' -import InboundDetailList from './modules/inbound/InboundDetailList' +import InboundOrderModel from './modules/inboundOrder/InboundOrderModel' +import InboundDetailList from './modules/inboundOrder/InboundDetailList' import { requestPut } from '@/api/manage' import JDictSelectTag from '@/components/dict/JDictSelectTag' import JSearchSelectTag from '@/components/dict/JSearchSelectTag' @@ -93,10 +93,8 @@ description: '鍏ュ簱鐢宠鍗�', url: { list: '/tms/inboundOrder/list', - toolingStorageStatus: '/tooling/storage/toolingStorageStatus', - importExcelUrl: 'tooling/storage/importExcel', - exportXlsUrl: '/tooling/storage/exportXls', - takeBack: '/tooling/storage/takeBack', + importExcelUrl: '/tms/inboundOrder/importExcel', + exportXlsUrl: '/tms/inboundOrder/exportXls', edit:'/tms/inboundOrder/edit', submit:'/tms/inboundOrder/submit' }, diff --git a/src/views/tms/modules/baseTools/BaseToolsListRight.vue b/src/views/tms/modules/baseTools/BaseToolsListRight.vue index 31a17e8..9672d5b 100644 --- a/src/views/tms/modules/baseTools/BaseToolsListRight.vue +++ b/src/views/tms/modules/baseTools/BaseToolsListRight.vue @@ -54,10 +54,10 @@ > <a-button @click="handleAdd(nodeSelected)" type="primary" icon="plus" :disabled="!nodeSelected.key || nodeSelected.entity.leafFlag === '2'">鏂板</a-button> </Tooltip> - <a-button type="primary" icon="download" @click="handleExportXls('tms_tools_classify')">瀵煎嚭</a-button> + <!-- <a-button type="primary" icon="download" @click="handleExportXls('tms_tools_classify')">瀵煎嚭</a-button> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> + </a-upload> --> </div> <!-- table鍖哄煙-begin --> @@ -75,6 +75,7 @@ :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:'radio'}" class="j-table-force-nowrap" + :customRow="customRow" @change="handleTableChange"> <template slot="htmlSlot" slot-scope="text"> @@ -200,6 +201,18 @@ data () { return { description: '宸ュ叿淇℃伅绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '50'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { @@ -520,8 +533,10 @@ .then((res) => { if (res.success) { this.dataSource = res.result.records; // 鏇存柊琛ㄦ牸鏁版嵁 + this.ipagination.total = res.result.total } else { this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ"); + this.ipagination.total = 0 } }) .finally(() => { @@ -552,7 +567,16 @@ this.$refs.paraTurningToolsList.visable = false this.$refs.paraBladeList.visable = false this.$refs.toolsConfigPropertyList.visable = false - } + }, + customRow(record) { + return { + on: { + click: () => { + this.onSelectChange(record.id.split(","), [record]); + } + } + } + }, }, } diff --git a/src/views/tms/modules/inbound/InboundListLeft.vue b/src/views/tms/modules/inbound/InboundListLeft.vue new file mode 100644 index 0000000..7621396 --- /dev/null +++ b/src/views/tms/modules/inbound/InboundListLeft.vue @@ -0,0 +1,323 @@ +<template> + <a-card + :loading="cardLoading" + :bordered="false" + title="宸ュ叿鍒嗙被" + style="height: 100%;" + > + <a-spin :spinning="loading"> + <a-alert + type="info" + :showIcon="true" + style="margin-right: 54px;" + > + <div slot="message"> + 褰撳墠锛�<span v-if="this.currSelected.title">{{ getCurrSelectedTitle() }}</span> + <a + v-if="this.currSelected.title" + style="margin-left: 10px" + @click="onClearSelected" + >鍙栨秷</a> + </div> + </a-alert> + <!-- <div class="drawer-bootom-button"> + <a-dropdown + :trigger="['click']" + placement="bottomCenter" + > + <a-menu slot="overlay"> + <a-menu-item + key="1" + @click="expandAll" + >灞曞紑鎵�鏈�</a-menu-item> + <a-menu-item + key="2" + @click="closeAll" + >鍚堝苟鎵�鏈�</a-menu-item> + <a-menu-item + key="3" + @click="refreshTree" + >鍒锋柊</a-menu-item> + </a-menu> + <a-button> + <a-icon type="bars" /> + </a-button> + </a-dropdown> + </div> --> + + <a-input-search + @search="handleSearch" + style="width:100%;margin-top: 10px" + placeholder="妫�绱㈠伐鍏峰垎绫�" + allowClear + v-model="searchInput" + @change="handleChange" + /> + + <!-- showLine --> + <a-tree + :checkStrictly="checkStrictly" + + :selectedKeys="selectedKeys" + :dropdownStyle="{maxHeight:'200px',overflow:'auto'}" + :treeData="treeDataSource" + + :defaultExpandAll="true" + @select="onSelect" + @expand="onExpand" + > + <template + slot="title" + slot-scope="{title, type, rfield1}" + > + <Tooltip + placement="top" + title="宸ュ叿鍒嗙被" + > + <i + v-if="type == 0" + class="action-jeecg actioncompany2" + style="font-size: 18px;" + /> + </Tooltip> + + <span v-if="title.indexOf(searchValue) > -1"> + {{ title.substr(0, title.indexOf(searchValue)) }} + <span class="replaceSearch">{{ searchValue }}</span> + {{ title.substr(title.indexOf(searchValue) + searchValue.length) }} + </span> + <span v-else>{{ title }}</span> + + </template> + </a-tree> + </a-spin> + </a-card> +</template> + +<script> +import { getAction } from '@/api/manage' +import Tooltip from 'ant-design-vue/es/tooltip' +export default { + name: 'inboundListLeft', + components: { + Tooltip, + }, + props: ['value'], + data() { + return { + searchInput: '', + cardLoading: false, + loading: false, + treeDataSource: [], + selectedKeys: [], + expandedKeys: [], + url: { + factoryTreeList: '/tms/toolsClassify/loadTree', + }, + searchValue: '', + dataList: [], + autoExpandParent: true, + checkStrictly: true, + allTreeKeys: [], + currSelected: {}, + hiding: false, + } + }, + created() { + this.queryTreeData(); + this.closeAll(); + }, + methods: { + getCurrSelectedTitle() { + return !this.currSelected.title ? '' : this.currSelected.title; + }, + onClearSelected() { + this.hiding = true; + this.currSelected = {}; + this.selectedKeys = []; + }, + onSelect(selectedKeys, e) { + this.hiding = false; + let record = e.node.dataRef; + this.currSelected = Object.assign({}, record); + this.selectedKeys = [record.key]; + }, + onExpand(expandedKeys) { + this.expandedKeys = expandedKeys; + this.autoExpandParent = false; + }, + queryTreeData() { + this.loading = true; + this.cardLoading = true; + getAction(this.url.factoryTreeList).then((res) => { + if (res.success) { + this.dataList = []; + this.allTreeKeys = []; + this.treeDataSource = res.result; + this.generateList(res.result); + } else { + this.$message.warn(res.message); + } + }).finally(() => { + this.loading = false; + this.cardLoading = false; + }) + }, + + handleChange() { + let search = this.searchInput; + let expandedKeys = this.dataList + .map(item => { + if (item.title.indexOf(search) > -1) { + return this.getParentKey(item.key, this.treeDataSource); + } + return null; + }) + .filter((item, i, self) => item && self.indexOf(item) === i); + Object.assign(this, { + expandedKeys, + searchValue: search, + autoExpandParent: true, + }); + }, + handleSearch(value) { + let search = value; + let expandedKeys = this.dataList + .map(item => { + if (item.title.indexOf(search) > -1) { + return this.getParentKey(item.key, this.treeDataSource); + } + return null; + }) + .filter((item, i, self) => item && self.indexOf(item) === i); + Object.assign(this, { + expandedKeys, + searchValue: search, + autoExpandParent: true, + }); + }, + getParentKey(key, tree) { + let parentKey; + for (let i = 0; i < tree.length; i++) { + const node = tree[i]; + if (node.children) { + if (node.children.some(item => item.key === key)) { + parentKey = node.key; + } else if ( + this.getParentKey(key, node.children)) { + parentKey = this.getParentKey(key, node.children); + } + } + } + return parentKey; + }, + + generateList(data) { + for (let i = 0; i < data.length; i++) { + const node = data[i]; + const key = node.key; + const title = node.title; + this.dataList.push({ key, title: title }); + this.allTreeKeys.push(key); + if (node.children) { + this.generateList(node.children); + } + } + }, + expandAll() { + this.expandedKeys = this.allTreeKeys; + }, + closeAll() { + this.expandedKeys = this.allSiteIds; + }, + refreshTree() { + this.queryTreeData(); + } + }, + mounted() { + this.$bus.$on('queryTreeData', this.queryTreeData); + }, + //鐩戝惉 + watch: { + currSelected(val) {//鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 + this.$bus.$emit('getCurrSelected', val) + }, + } +} +</script> + +<style scoped> +.replaceSearch { + color: #40a9ff; + font-weight: bold; + background-color: rgb(204, 204, 204); +} +/*闅愯棌鏍戠殑榛樿icon*/ +.ant-tree-switcher-noop { + display: none !important; +} +/*闅愯棌鏍戠殑榛樿绔栫嚎*/ +.ant-tree.ant-tree-show-line li:not(:last-child):before { + border-left: 0px; +} + +.ant-card-body .table-operator { + margin: 15px; +} + +.anty-form-btn { + width: 100%; + text-align: center; +} + +.anty-form-btn button { + margin: 0 5px; +} + +.anty-node-layout .ant-layout-header { + padding-right: 0; +} + +.header { + padding: 0 8px; +} + +.header button { + margin: 0 3px; +} + +.ant-modal-cust-warp { + height: 100%; +} + +.ant-modal-cust-warp .ant-modal-body { + height: calc(100% - 110px) !important; + overflow-y: auto; +} + +.ant-modal-cust-warp .ant-modal-content { + height: 90% !important; + overflow-y: hidden; +} + +#app .desktop { + height: auto !important; +} + +/** Button鎸夐挳闂磋窛 */ +.ant-btn { + margin-left: 3px; +} +.ant-alert { + padding: 5px 15px 5px 37px; +} +.drawer-bootom-button { + position: absolute; + top: 1px; + /* padding: 10px 16px; */ + text-align: left; + right: 0; + background: #fff; + border-radius: 0 0 2px 2px; +} +</style> \ No newline at end of file diff --git a/src/views/tms/modules/inbound/InboundListRight.vue b/src/views/tms/modules/inbound/InboundListRight.vue new file mode 100644 index 0000000..d8c422b --- /dev/null +++ b/src/views/tms/modules/inbound/InboundListRight.vue @@ -0,0 +1,515 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col + :md="6" + :sm="8" + > + <a-form-item + label="宸ュ叿缂栧彿" + :labelCol="{span: 5}" + :wrapperCol="{span: 18, offset: 1}" + > + <a-input + placeholder="璇疯緭鍏ュ伐鍏风紪鍙锋绱�" + v-model="queryParam.toolCode" + ></a-input> + </a-form-item> + </a-col> + <a-col + :md="6" + :sm="8" + > + <a-form-item + label="鍨嬪彿/鍥惧彿" + :labelCol="{span: 5}" + :wrapperCol="{span: 18, offset: 1}" + > + <a-input + placeholder="璇疯緭鍏ュ瀷鍙�/鍥惧彿妫�绱�" + v-model="queryParam.toolModel" + ></a-input> + </a-form-item> + </a-col> + <a-col :md="6" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> + </span> + </a-col> + + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <Tooltip + placement="top" + title="閫夋嫨鍙跺瓙鑺傜偣鍚庡啀鎵ц鏂板" + > + <a-button @click="handleAdd(nodeSelected)" type="primary" icon="plus" :disabled="!nodeSelected.key || nodeSelected.entity.leafFlag === '2'">鏂板</a-button> + </Tooltip> + <!-- <a-button type="primary" icon="download" @click="handleExportXls('tms_tools_classify')">瀵煎嚭</a-button> + <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> + <a-button type="primary" icon="import">瀵煎叆</a-button> + </a-upload> --> + <a-button @click="handleInbound(nodeSelected)" type="primary" icon="plus">鐢宠鍗曞叆搴�</a-button> + </div> + + <!-- table鍖哄煙-begin --> + <div> + + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:'radio'}" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <template slot="htmlSlot" slot-scope="text"> + <div v-html="text"></div> + </template> + <template slot="imgSlot" slot-scope="text,record"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> + <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> + </template> + <template slot="fileSlot" slot-scope="text"> + <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> + <a-button + v-else + :ghost="true" + type="primary" + icon="download" + size="small" + @click="downloadFile(text)"> + 涓嬭浇 + </a-button> + </template> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">缂栬緫</a> + + <a-divider type="vertical" /> + <a-dropdown> + <a class="ant-dropdown-link">鏇村 <a-icon type="down" /></a> + <a-menu slot="overlay"> + <a-menu-item> + <a @click="handleDetail(record)">璇︽儏</a> + </a-menu-item> + <a-menu-item> + <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a>鍒犻櫎</a> + </a-popconfirm> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + + </a-table> + </div> + + <a-tabs defaultActiveKey="1"> + <a-tab-pane key="1"> + <span slot="tab"> + <a-badge>鍙傛暟 </a-badge> + </span> + <para-hole-tools-list ref="paraHoleToolsList"></para-hole-tools-list> + <para-threading-tool-list ref="paraThreadingToolList"></para-threading-tool-list> + <para-mill-tool-list ref="paraMillToolList"></para-mill-tool-list> + <para-turning-tools-list ref="paraTurningToolsList"></para-turning-tools-list> + <para-blade-list ref="paraBladeList"></para-blade-list> + <para-common-tool-list ref="paraCommonToolList"></para-common-tool-list> + </a-tab-pane> + + <a-tab-pane + key="2" + forceRender + > + <span slot="tab"> + <a-badge>绠$悊鍙傛暟 </a-badge> + </span> + <tools-config-property-list ref="toolsConfigPropertyList"></tools-config-property-list> + </a-tab-pane> + </a-tabs> + + <inbound-model ref="modalForm" @ok="modalFormOk" :nodeSelected="nodeSelected"></inbound-model> + </a-card> +</template> + +<script> + + import '@/assets/less/TableExpand.less' + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import Tooltip from 'ant-design-vue/es/tooltip' + import { getAction, postAction, deleteAction, requestPut } from '@api/manage' + import ParaHoleToolsList from '.././baseTools/ParaHoleToolsList' + import ToolsConfigPropertyList from '.././baseTools/ToolsConfigPropertyList' + import ParaMillToolList from '.././baseTools/ParaMillToolList' + import ParaThreadingToolList from '.././baseTools/ParaThreadingToolList' + import ParaTurningToolsList from '.././baseTools/ParaTurningToolsList' + import ParaCommonToolList from '.././baseTools/ParaCommonToolList' + import ParaBladeList from '.././baseTools/ParaBladeList' + import InboundModel from './InboundModel' + + export default { + name: 'InboundListRight', + mixins:[JeecgListMixin, mixinDevice], + components: { + Tooltip, + ParaHoleToolsList, + ToolsConfigPropertyList, + ParaMillToolList, + ParaThreadingToolList, + ParaTurningToolsList, + ParaCommonToolList, + ParaBladeList, + InboundModel + }, + data () { + return { + description: '宸ュ叿鍏ュ簱绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '50'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key:'rowIndex', + width:60, + align:"center", + customRender:function (t,r,index) { + return parseInt(index)+1; + } + }, + { + title:'宸ュ叿缂栫爜', + align:"center", + dataIndex: 'toolCode' + }, + { + title:'鍏ュ簱绫诲瀷', + align:"center", + dataIndex: 'inStorehouseType' + }, + { + title:'鍨嬪彿/鍥惧彿', + align:"center", + dataIndex: 'toolModel' + }, + { + title:'涓枃鍚嶇О', + align:"center", + dataIndex: 'chineseName' + }, + + { + title:'鍏ュ簱鏁伴噺', + align:"center", + dataIndex: 'inStorageQuantity' + }, + // { + // title:'澶囨敞', + // align:"center", + // dataIndex: 'remark' + // }, + { + title:'鍒涘缓浜�', + align:"center", + dataIndex: 'createBy' + }, + { + title:'鍒涘缓鏃堕棿', + align:"center", + dataIndex: 'createTime', + customRender:function (text) { + return !text?"":(text.length>10?text.substr(0,10):text) + } + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align:"center", + fixed:"right", + width:147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: "/tms/inboundDetail/list", + paraHolesToolsList:"/tms/baseTools/paraHolesToolsList", + paraCommonToolList:"/tms/baseTools/paraCommonToolList", + paraThreadingToolList:"/tms/baseTools/paraThreadingToolList", + paraMillToolList:"/tms/baseTools/paraMillToolList", + paraTurningToolsList:"/tms/baseTools/paraTurningToolsList", + paraBladeList:"/tms/baseTools/paraBladeList", + delete: "/tms/baseTools/delete", + deleteBatch: "/tms/baseTools/deleteBatch", + edit: '/tms/baseTools/edit', + exportXlsUrl: "/tms/baseTools/exportXls", + importExcelUrl: "tms/baseTools/importExcel", + queryParaByToolCode:"/tms/baseTools/queryByToolCode", + queryByToolCode:"/tms/toolsConfigProperty/queryByToolCode" + }, + dictOptions:{}, + superFieldList:[], + nodeSelected: {}, // 褰撳墠閫変腑鐨勮妭鐐规暟鎹� + paraTypeFlag:'', + disableMixinCreated:true + } + }, + created() { + this.$bus.$on('getCurrSelected', (data) => { + //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟 + this.nodeType = (data.type == undefined ? 0 : data.type); + this.paraTypeFlag = (data.entity == undefined ? 0 : data.entity.paraTypeFlag) + this.nodeSelected = data; + this.loadData() + this.clearPara() + }) + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + }, + methods: { + + handleAdd(entity) { + if (!this.nodeSelected ) { + this.$message.warning('璇峰厛閫夋嫨涓�涓伐鍏峰垎绫�'); + return; + } + // 鎵撳紑鏂板妯℃�佹锛屽苟浼犻�掑綋鍓嶉�変腑鐨勮妭鐐� + this.$refs.modalForm.add(this.nodeSelected); + this.$refs.modalForm.title = "鏂板閫氱敤鍙傛暟绫诲瀷宸ュ叿"; + this.$refs.modalForm.disableSubmit = false; + }, + handleDelete(id) { + deleteAction(this.url.delete, {id: id}).then((res) => { + if (res.success) { + //閲嶆柊璁$畻鍒嗛〉闂 + this.loadData() + this.$message.success(res.message); + this.$bus.$emit('queryTreeData') + this.clearPara() + } else { + this.$message.warning(res.message); + } + }); + }, + modalFormOk() { + this.loadData(); // 鍒锋柊琛ㄦ牸鏁版嵁 + this.$bus.$emit('queryTreeData') //鍒锋柊宸︿晶鏍� + }, + + onSelectChange(selectedRowKeys) { + this.selectedRowKeys = selectedRowKeys; + //閫氳繃id鏌ヨ绠$悊鍙傛暟鍜屽弬鏁版暟鎹� + getAction(this.url.queryParaByToolCode, { toolCode: this.selectedRowKeys[0],paraTypeFlag:this.paraTypeFlag}).then((res) => { + if (res.success) { + if(this.paraTypeFlag === "1"){ + this.$refs.paraCommonToolList.getPara(res.result); + }else if(this.paraTypeFlag === "2"){ + this.$refs.paraHoleToolsList.getPara(res.result); + }else if(this.paraTypeFlag === "3"){ + this.$refs.paraThreadingToolList.getPara(res.result); + }else if(this.paraTypeFlag === "4"){ + this.$refs.paraMillToolList.getPara(res.result); + }else if(this.paraTypeFlag === "5"){ + this.$refs.paraTurningToolsList.getPara(res.result); + }else if(this.paraTypeFlag === "6"){ + this.$refs.paraBladeList.getPara(res.result); + } + } else { + this.$message.warning(res.message); + } + }) + getAction(this.url.queryByToolCode, { toolCode: this.selectedRowKeys[0]}).then((res) => { + if (res.success) { + this.$refs.toolsConfigPropertyList.getPara(res.result); + } else { + this.$message.warning(res.message); + } + }) + + }, + // 澶勭悊缂栬緫鎸夐挳鐐瑰嚮浜嬩欢 + handleEditSelected() { + if (this.selectedRowKeys.length === 0) { + this.$message.warning('璇烽�夋嫨涓�鏉¤褰曡繘琛岀紪杈�'); + return; + } + const selectedRecord = this.dataSource.find(item => item.id === this.selectedRowKeys[0]); + if (selectedRecord) { + this.handleEdit(selectedRecord); + } + }, + //缂栬緫 + handleEdit(record) { + if(record.paramaTableName === "1"){ + this.$refs.paraCommonToolModal.edit(record); + this.$refs.paraCommonToolModal.title = "缂栬緫"; + this.$refs.paraCommonToolModal.disableSubmit = false; + }else if(record.paramaTableName === "2"){ + this.$refs.paraHoleToolsModal.edit(record); + this.$refs.paraHoleToolsModal.title = "缂栬緫"; + this.$refs.paraHoleToolsModal.disableSubmit = false; + }else if(record.paramaTableName === "3"){ + this.$refs.paraThreadingToolModal.edit(record); + this.$refs.paraThreadingToolModal.title = "缂栬緫"; + this.$refs.paraThreadingToolModal.disableSubmit = false; + }else if(record.paramaTableName === "4"){ + this.$refs.paraMillToolModal.edit(record); + this.$refs.paraMillToolModal.title = "缂栬緫"; + this.$refs.paraMillToolModal.disableSubmit = false; + }else if(record.paramaTableName === "5"){ + this.$refs.paraTurningToolsModal.edit(record); + this.$refs.paraTurningToolsModal.title = "缂栬緫"; + this.$refs.paraTurningToolsModal.disableSubmit = false; + }else if(record.paramaTableName === "6"){ + this.$refs.paraBladeModal.edit(record); + this.$refs.paraBladeModal.title = "缂栬緫"; + this.$refs.paraBladeModal.disableSubmit = false; + } + }, + //璇︽儏 + handleDetail:function(record){ + if(record.paramaTableName === "1"){ + this.$refs.paraCommonToolModal.edit(record); + this.$refs.paraCommonToolModal.title="璇︽儏"; + this.$refs.paraCommonToolModal.disableSubmit = true; + this.$refs.paraCommonToolModal.disSeach = true; + if(this.$refs.paraCommonToolModal.removeValidate) { + this.$refs.paraCommonToolModal.removeValidate() + } + }else if(record.paramaTableName === "2"){ + this.$refs.paraHoleToolsModal.edit(record); + this.$refs.paraHoleToolsModal.title="璇︽儏"; + this.$refs.paraHoleToolsModal.disableSubmit = true; + this.$refs.paraHoleToolsModal.disSeach = true; + if(this.$refs.paraHoleToolsModal.removeValidate) { + this.$refs.paraHoleToolsModal.removeValidate() + } + }else if(record.paramaTableName === "3"){ + this.$refs.paraThreadingToolModal.edit(record); + this.$refs.paraThreadingToolModal.title="璇︽儏"; + this.$refs.paraThreadingToolModal.disableSubmit = true; + this.$refs.paraThreadingToolModal.disSeach = true; + if(this.$refs.paraThreadingToolModal.removeValidate) { + this.$refs.paraThreadingToolModal.removeValidate() + } + }else if(record.paramaTableName === "4"){ + this.$refs.paraMillToolModal.edit(record); + this.$refs.paraMillToolModal.title="璇︽儏"; + this.$refs.paraMillToolModal.disableSubmit = true; + this.$refs.paraMillToolModal.disSeach = true; + if(this.$refs.paraMillToolModal.removeValidate) { + this.$refs.paraMillToolModal.removeValidate() + } + }else if(record.paramaTableName === "5"){ + this.$refs.paraTurningToolsModal.edit(record); + this.$refs.paraTurningToolsModal.title="璇︽儏"; + this.$refs.paraTurningToolsModal.disableSubmit = true; + this.$refs.paraTurningToolsModal.disSeach = true; + if(this.$refs.paraTurningToolsModal.removeValidate) { + this.$refs.paraTurningToolsModal.removeValidate() + } + }else if(record.paramaTableName === "6"){ + this.$refs.paraBladeModal.edit(record); + this.$refs.paraBladeModal.title="璇︽儏"; + this.$refs.paraBladeModal.disableSubmit = true; + this.$refs.paraBladeModal.disSeach = true; + if(this.$refs.paraBladeModal.removeValidate) { + this.$refs.paraBladeModal.removeValidate() + } + } + }, + //绂佺敤鐘舵�佹牱寮� + tableRowClass(record, index) { + if (record.status != "1") { + return "frozenRowClass"; + } + return ""; + }, + loadData() { + let params = this.getQueryParams(); + if (this.nodeSelected && this.nodeSelected.key !== '-1') { + // 鍔犺浇閫変腑鑺傜偣鐨勫瓙绫� + params.classifyId = this.nodeSelected.key; + this.loading = true; + getAction(this.url.list, params) + .then((res) => { + if (res.success) { + this.dataSource = res.result.records; // 鏇存柊琛ㄦ牸鏁版嵁 + this.ipagination.total = res.result.total + } else { + this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ"); + this.ipagination.total = 0 + } + }) + .finally(() => { + this.loading = false; + }); + } else { + this.$message.warning("璇烽�夋嫨鍙跺瓙鑺傜偣杩涜鏌ヨ"); + } + }, + onClearSelected() { + this.selectedKeys = []; + this.nodeSelected = {}; // 娓呯┖閫変腑鐨勮妭鐐� + this.dataSource = []; // 娓呯┖琛ㄦ牸鏁版嵁 + }, + //閲嶇疆 + searchReset() { + this.queryParam = {} + this.loadData(1); + this.clearPara() + }, + //娓呯┖閫変腑鍙婂弬鏁� + clearPara(){ + this.selectedRowKeys = [] + this.$refs.paraCommonToolList.visable = false + this.$refs.paraHoleToolsList.visable = false + this.$refs.paraThreadingToolList.visable = false + this.$refs.paraMillToolList.visable = false + this.$refs.paraTurningToolsList.visable = false + this.$refs.paraBladeList.visable = false + this.$refs.toolsConfigPropertyList.visable = false + } + + }, + } +</script> +<style scoped> + @import '~@assets/less/common.less'; + .enable { + color: green; + } + .disable { + color: red; + } +</style> \ No newline at end of file diff --git a/src/views/tms/modules/inbound/InboundOrderModel.vue b/src/views/tms/modules/inbound/InboundModel.vue similarity index 83% copy from src/views/tms/modules/inbound/InboundOrderModel.vue copy to src/views/tms/modules/inbound/InboundModel.vue index 9bc0325..006a1c1 100644 --- a/src/views/tms/modules/inbound/InboundOrderModel.vue +++ b/src/views/tms/modules/inbound/InboundModel.vue @@ -11,11 +11,6 @@ <a-form :form="form"> <a-row style="width: 100%"> <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鍏ュ簱鐢宠鍗曠紪鍙�"> - <a-input :disabled="true" placeholder="绯荤粺鑷姩鐢熸垚" v-decorator="['inboundNum', validatorRules.inboundNum]" /> - </a-form-item> - </a-col> - <a-col :span="24 / 2"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鍏ュ簱绫诲瀷"> <j-dict-select-tag :disabled="disableSubmit" @@ -28,9 +23,7 @@ /> </a-form-item> </a-col> - </a-row> - <a-row style="width: 100%"> - <a-col :span="24 / 2"> + <a-col :span="24 / 2"> <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鍏ュ簱鏃堕棿"> <a-date-picker @change="onChange" @@ -40,73 +33,15 @@ /> </a-form-item> </a-col> + </a-row> + <a-row style="width: 100%"> <a-col :span="24 / 2"> - <a-form-item label="鐢宠鍘熷洜" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input placeholder="璇疯緭鍏ョ敵璇峰師鍥�" :disabled="disableSubmit" v-decorator="['applicationReason', validatorRules.applicationReason]" /> + <a-form-item label="鍏ュ簱鏁伴噺" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input placeholder="璇疯緭鍏ュ叆搴撴暟閲�" :disabled="disableSubmit" v-decorator="['in_number', validatorRules.applicationReason]" /> </a-form-item> </a-col> </a-row> - <a-row style="width: 100%"> - - <a-col :span="24 / 2"> - <a-form-item label="缁忔墜浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-search-select-tag - :disabled="true" - v-if="!barcodeCurrentType" - placeholder="璇烽�夋嫨缁忔墜浜�" - v-decorator="['handler', { rules: [{ required: false, message: '璇烽�夋嫨缁忔墜浜�' }] }]" - dict="sys_user,realname,id,del_flag=0" - @change="selectCurrentUserChange" - /> - </a-form-item> - </a-col> - - <a-col :span="24 / 2"> - <a-form-item label="瀹℃牳浜�" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <j-search-select-tag - :disabled="true" - placeholder="璇烽�夋嫨瀹℃牳浜�" - v-decorator="['reviewer', validatorRules.reviewer]" - dict="sys_user,realname,id,del_flag=0" - @change="selectCurrentUserChange" - /> - </a-form-item> - </a-col> - - </a-row> - - <a-row style="width: 100%"> - - <a-col :span="24 / 2"> - <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="瀹℃牳鏃堕棿"> - <a-date-picker - @change="onChange" - :disabled="true" - style="width: 100%" - v-decorator="['approvalDate', validatorRules.approvalDate]" - /> - </a-form-item> - </a-col> - - <a-col :span="24 / 2"> - <a-form-item label="瀹℃牳鎰忚" :labelCol="labelCol" :wrapperCol="wrapperCol"> - <a-input placeholder="璇疯緭鍏ュ鏍告剰瑙�" :disabled="true" v-decorator="['approvalOpinion', validatorRules.approvalOpinion]" /> - </a-form-item> - </a-col> - </a-row> - - <a-row style="width: 100%"> - <a-col :span="24"> - <a-form-item :labelCol="{ span: 3 }" :wrapperCol="{ span: 21 }" label="澶囨敞"> - <a-textarea - :disabled="disableSubmit" - :rows="2" - placeholder="..." - v-decorator="['remark', validatorRules.remark]" - /> - </a-form-item> - </a-col> - </a-row> + </a-form> </a-spin> <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectReturnList()" v-show="returnShow && !disableSubmit">閫夋嫨鍊熺敤鍑哄簱鍗�</a-button> @@ -121,7 +56,7 @@ :dataSource="dataSource" :pagination="ipagination" :loading="loading" - @change="handleTableChange" + @change="handleTableChange" > <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index"> <div :key="col.dataIndex"> @@ -142,7 +77,7 @@ </a-table> <template slot="footer" v-if="disableSubmit == false"> <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button> - <a-button @click="handleOk" :disabled="isDisabled" type="primary">纭畾</a-button> + <a-button @click="handleOk" :disabled="isDisabled" type="primary">鍏ュ簱</a-button> </template> <template slot="footer" v-if="disableSubmit == true"> @@ -156,7 +91,7 @@ <script> import pick from 'lodash.pick' -import JSelectToolingModal from './JSelectToolingModal' +import JSelectToolingModal from '.././inboundOrder/JSelectToolingModal' import { ajaxGetDictItems } from '@/api/api' import moment from 'moment' import { getAction, postAction, requestPut } from '@/api/manage' @@ -164,8 +99,8 @@ import JSearchSelectTag from '@/components/dict/JSearchSelectTag' import JMultiSelectTag from '@/components/dict/JMultiSelectTag' import { filterObj } from '@/utils/util' -import JSelectReturnListModal from './JSelectReturnListModal' -import JSelectSharpenListModal from './JSelectSharpenListModal' +import JSelectReturnListModal from '.././inboundOrder/JSelectReturnListModal' +import JSelectSharpenListModal from '.././inboundOrder/JSelectSharpenListModal' export default { name: 'InboundOrderModel', diff --git a/src/views/tms/modules/inbound/InboundDetailList.vue b/src/views/tms/modules/inboundOrder/InboundDetailList.vue similarity index 100% rename from src/views/tms/modules/inbound/InboundDetailList.vue rename to src/views/tms/modules/inboundOrder/InboundDetailList.vue diff --git a/src/views/tms/modules/inbound/InboundOrderModel.vue b/src/views/tms/modules/inboundOrder/InboundOrderModel.vue similarity index 97% rename from src/views/tms/modules/inbound/InboundOrderModel.vue rename to src/views/tms/modules/inboundOrder/InboundOrderModel.vue index 9bc0325..3118a1e 100644 --- a/src/views/tms/modules/inbound/InboundOrderModel.vue +++ b/src/views/tms/modules/inboundOrder/InboundOrderModel.vue @@ -109,9 +109,9 @@ </a-row> </a-form> </a-spin> - <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectReturnList()" v-show="returnShow && !disableSubmit">閫夋嫨鍊熺敤鍑哄簱鍗�</a-button> + <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()" v-show="returnShow && !disableSubmit">閫夋嫨鍊熺敤鍑哄簱鍗�</a-button> <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()" v-show="toolingShow && !disableSubmit">閫夋嫨宸ュ叿</a-button> - <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectSharpenList()" v-show="sharpenShow && !disableSubmit">閫夋嫨鍒冪(鍑哄簱鍗�</a-button> + <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectTooling()" v-show="sharpenShow && !disableSubmit">閫夋嫨鍒冪(鍑哄簱鍗�</a-button> <a-table ref="table" bordered @@ -265,9 +265,9 @@ edit: '/tms/inboundOrder/edit', queryByUserName: '/sys/user/queryByUserName', toolingList:'/tms/baseTools/list', - queryAccountList:'/tooling/storage/queryAccountList', - querySharpenList:'/sharpen/sharpenDetail/querySharpenList', - queryReturnList:'/returnInventory/queryReturnList', + queryAccountList:'/tms/baseTools/list', + querySharpenList:'/tms/baseTools/list', + queryReturnList:'/tms/baseTools/list', detailList:'/tms/inboundDetail/list', }, toolingOptions:[], diff --git a/src/views/tms/modules/inbound/JSelectReturnListModal.vue b/src/views/tms/modules/inboundOrder/JSelectReturnListModal.vue similarity index 99% rename from src/views/tms/modules/inbound/JSelectReturnListModal.vue rename to src/views/tms/modules/inboundOrder/JSelectReturnListModal.vue index 1336e03..369a4ec 100644 --- a/src/views/tms/modules/inbound/JSelectReturnListModal.vue +++ b/src/views/tms/modules/inboundOrder/JSelectReturnListModal.vue @@ -144,7 +144,7 @@ loading: false, url: { // list: '/base/tooling/list', - list: '/returnInventory/queryReturnList', + list: '/tms/baseTools/list', queryKnifeBom:'/toolingStorage/mesToolingOutbounds/queryKnifeBom' }, } diff --git a/src/views/tms/modules/inbound/JSelectSharpenListModal.vue b/src/views/tms/modules/inboundOrder/JSelectSharpenListModal.vue similarity index 100% rename from src/views/tms/modules/inbound/JSelectSharpenListModal.vue rename to src/views/tms/modules/inboundOrder/JSelectSharpenListModal.vue diff --git a/src/views/tms/modules/inbound/JSelectToolingModal.vue b/src/views/tms/modules/inboundOrder/JSelectToolingModal.vue similarity index 100% rename from src/views/tms/modules/inbound/JSelectToolingModal.vue rename to src/views/tms/modules/inboundOrder/JSelectToolingModal.vue diff --git a/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue b/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue index 0babff4..d442612 100644 --- a/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue +++ b/src/views/tms/modules/toolsClassify/ToolsClassifyForm.vue @@ -108,7 +108,7 @@ leafFlagShow:true, validatorRules: { classifyId: [ - { required: true, message: '璇疯緭鍏ュ伐鍏峰垎绫荤紪鍙�!'}, + { required: false, message: '璇疯緭鍏ュ伐鍏峰垎绫荤紪鍙�!'}, { validator: this.validateNum }, ], typeName: [ diff --git a/src/views/tms/modules/toolsClassify/ToolsClassifyListRight.vue b/src/views/tms/modules/toolsClassify/ToolsClassifyListRight.vue index 14b3ab0..fa65571 100644 --- a/src/views/tms/modules/toolsClassify/ToolsClassifyListRight.vue +++ b/src/views/tms/modules/toolsClassify/ToolsClassifyListRight.vue @@ -167,6 +167,18 @@ data () { return { description: '宸ュ叿鍒嗙被绠$悊椤甸潰', + /* 鍒嗛〉鍙傛暟 */ + ipagination:{ + current: 1, + pageSize: 10, + pageSizeOptions: ['10', '20', '50'], + showTotal: (total, range) => { + return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�" + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, // 琛ㄥご columns: [ { @@ -366,8 +378,10 @@ .then((res) => { if (res.success) { this.dataSource = res.result.records; // 鏇存柊琛ㄦ牸鏁版嵁 + this.ipagination.total = res.result.total } else { this.$message.warning(res.message); + this.ipagination.total = 0 } }) .finally(() => { -- Gitblit v1.9.3