From e2ca529f2d095293d737b5a2f0b7562e85919418 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期五, 04 七月 2025 09:15:16 +0800
Subject: [PATCH] 检验方案
---
src/views/qms/SamplingRulesList.vue | 2
src/views/qms/modules/defect/DefectModel.vue | 1
src/views/qms/InspectionToolsList.vue | 2
src/views/qms/modules/inspectionTools/InspectionToolsModel.vue | 1
src/views/qms/modules/samplingRules/SamplingRulesModel.vue | 1
src/views/base/modules/shift/ShiftModel.vue | 12
src/views/qms/modules/inspectionItem/InspectionItemModel.vue | 1
src/views/base/modules/warehouse/WarehouseModel.vue | 1
src/views/qms/InspectionPlanList.vue | 429 +++++++++++++++++
src/views/qms/InspectionItemList.vue | 2
src/views/base/SupplierList.vue | 2
src/views/base/modules/group/GroupModal.vue | 1
src/views/qms/modules/inspectionPlan/InspectionPlanModel.vue | 525 +++++++++++++++++++++
src/views/base/modules/FactoryManager/SelectUserModal.vue | 1
src/views/base/WarehouseList.vue | 2
src/views/base/modules/group/SelectUserModal.vue | 1
src/views/base/modules/supplier/SupplierModel.vue | 1
src/views/qms/modules/inspectionPlan/JSelectInspectionItemListModal.vue | 258 ++++++++++
src/views/qms/DefectList.vue | 2
src/views/qms/modules/inspectionPlan/InspectionPlanItemList.vue | 103 ++++
src/views/qms/modules/inspectionPlan/MaterialListModal.vue | 137 +++++
src/views/base/modules/FactoryManager/FactoryModal.vue | 1
22 files changed, 1,478 insertions(+), 8 deletions(-)
diff --git a/src/views/base/SupplierList.vue b/src/views/base/SupplierList.vue
index 270a0c6..81e83ca 100644
--- a/src/views/base/SupplierList.vue
+++ b/src/views/base/SupplierList.vue
@@ -102,7 +102,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.supplierStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/base/WarehouseList.vue b/src/views/base/WarehouseList.vue
index fbb8ec7..38dde11 100644
--- a/src/views/base/WarehouseList.vue
+++ b/src/views/base/WarehouseList.vue
@@ -98,7 +98,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.warehouseStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/base/modules/FactoryManager/FactoryModal.vue b/src/views/base/modules/FactoryManager/FactoryModal.vue
index 328546f..dea6f54 100644
--- a/src/views/base/modules/FactoryManager/FactoryModal.vue
+++ b/src/views/base/modules/FactoryManager/FactoryModal.vue
@@ -5,6 +5,7 @@
:ok=false
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
@cancel="handleCancel"
diff --git a/src/views/base/modules/FactoryManager/SelectUserModal.vue b/src/views/base/modules/FactoryManager/SelectUserModal.vue
index 4a374c6..ee1d373 100644
--- a/src/views/base/modules/FactoryManager/SelectUserModal.vue
+++ b/src/views/base/modules/FactoryManager/SelectUserModal.vue
@@ -5,6 +5,7 @@
:title="title"
:width="1000"
:visible="visible"
+ :maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
cancelText="鍏抽棴">
diff --git a/src/views/base/modules/group/GroupModal.vue b/src/views/base/modules/group/GroupModal.vue
index a7d7e2d..70dca51 100644
--- a/src/views/base/modules/group/GroupModal.vue
+++ b/src/views/base/modules/group/GroupModal.vue
@@ -4,6 +4,7 @@
:width="800"
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
cancelText="鍏抽棴"
diff --git a/src/views/base/modules/group/SelectUserModal.vue b/src/views/base/modules/group/SelectUserModal.vue
index 5aed197..36eeb3b 100644
--- a/src/views/base/modules/group/SelectUserModal.vue
+++ b/src/views/base/modules/group/SelectUserModal.vue
@@ -5,6 +5,7 @@
:title="title"
:width="1000"
:visible="visible"
+ :maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
cancelText="鍏抽棴">
diff --git a/src/views/base/modules/shift/ShiftModel.vue b/src/views/base/modules/shift/ShiftModel.vue
index dce3877..6ebf032 100644
--- a/src/views/base/modules/shift/ShiftModel.vue
+++ b/src/views/base/modules/shift/ShiftModel.vue
@@ -1,6 +1,14 @@
<template>
- <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading" :okButtonProps="{ props: {disabled: disableSubmit} }"
- @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+ <a-modal
+ :title="title"
+ :width="800"
+ :visible="visible"
+ :maskClosable="false"
+ :confirmLoading="confirmLoading"
+ :okButtonProps="{ props: {disabled: disableSubmit} }"
+ @ok="handleOk"
+ @cancel="handleCancel"
+ cancelText="鍏抽棴">
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-row :gutter="24">
diff --git a/src/views/base/modules/supplier/SupplierModel.vue b/src/views/base/modules/supplier/SupplierModel.vue
index 8f5aa30..68eef68 100644
--- a/src/views/base/modules/supplier/SupplierModel.vue
+++ b/src/views/base/modules/supplier/SupplierModel.vue
@@ -3,6 +3,7 @@
:title="title"
:width="800"
:visible="visible"
+ :maskClosable="false"
:confirmLoading="confirmLoading"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
diff --git a/src/views/base/modules/warehouse/WarehouseModel.vue b/src/views/base/modules/warehouse/WarehouseModel.vue
index c268b71..2e3c80f 100644
--- a/src/views/base/modules/warehouse/WarehouseModel.vue
+++ b/src/views/base/modules/warehouse/WarehouseModel.vue
@@ -4,6 +4,7 @@
:width="800"
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
@cancel="handleCancel"
diff --git a/src/views/qms/DefectList.vue b/src/views/qms/DefectList.vue
index 5cf5eef..83f75f1 100644
--- a/src/views/qms/DefectList.vue
+++ b/src/views/qms/DefectList.vue
@@ -98,7 +98,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.defectStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/qms/InspectionItemList.vue b/src/views/qms/InspectionItemList.vue
index 0689c6a..476a032 100644
--- a/src/views/qms/InspectionItemList.vue
+++ b/src/views/qms/InspectionItemList.vue
@@ -98,7 +98,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.itemStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/qms/InspectionPlanList.vue b/src/views/qms/InspectionPlanList.vue
new file mode 100644
index 0000000..b1fb60e
--- /dev/null
+++ b/src/views/qms/InspectionPlanList.vue
@@ -0,0 +1,429 @@
+<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="妫�楠屾柟妗堢紪鐮�">
+ <a-input placeholder="璇疯緭鍏ユ楠屾柟妗堢紪鐮�" v-model="queryParam.planCode" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="6" :sm="8">
+ <a-form-item label="妫�楠屾柟妗堝垎绫�">
+ <j-search-select-tag
+ placeholder="璇烽�夋嫨妫�楠屾柟妗堝垎绫�"
+ v-model="queryParam.planCategory"
+ dict="plan_category"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col :md="6" :sm="8">
+ <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+ <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
+ </span>
+ </a-col>
+ </a-row>
+ </a-form>
+ </div>
+
+ <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+ <div class="table-operator">
+ <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button>
+ </div>
+
+ <!-- table鍖哄煙-begin -->
+ <a-table
+ ref="table"
+ size="middle"
+ bordered
+ rowKey="id"
+ :customRow="customRow"
+ :rowClassName="tableRowClass"
+ :columns="columns"
+ :dataSource="dataSource"
+ :pagination="ipagination"
+ :loading="loading"
+ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:'radio'}"
+ @change="handleTableChange"
+ >
+ <!--鐘舵�佹爮涓�у睍绀�-->
+ <span
+ slot="status"
+ slot-scope="text,record"
+ >
+ <a-badge
+ v-if="record.planStatus==1"
+ status="success"
+ />
+ <span
+ v-if="record.planStatus==1"
+ class="success"
+ >鍚敤</span>
+ <a-badge
+ v-if="record.planStatus==0"
+ status="error"
+ />
+ <span
+ v-if="record.planStatus==0"
+ class="error"
+ >绂佺敤</span>
+ </span>
+ <span
+ slot="publishStatus"
+ slot-scope="text,record"
+ >
+ <a-badge
+ v-if="record.publishStatus==1"
+ status="success"
+ />
+ <span
+ v-if="record.publishStatus==1"
+ class="success"
+ >宸插彂甯�</span>
+ <a-badge
+ v-if="record.publishStatus==0"
+ status="error"
+ />
+ <span
+ v-if="record.publishStatus==0"
+ class="error"
+ >寰呭彂甯�</span>
+ </span>
+ <span
+ slot="version"
+ slot-scope="text,record"
+ >
+ <span
+ v-if="record.planStatus==1"
+ class="success"
+ >{{record.version}}</span>
+ <span
+ v-if="record.planStatus==0"
+ class="error"
+ >{{record.version}}</span>
+ </span>
+ <span
+ slot="action"
+ slot-scope="text, record"
+ v-if="record.isNewVersion == 1"
+ >
+ <a-popconfirm
+ v-if="record.publishStatus == 0 && record.planStatus == 1"
+ title="纭畾鍙戝竷鍚�?"
+ @confirm="() => handlePublish(record.id)"
+ >
+ <a>鍙戝竷</a>
+ </a-popconfirm>
+ <a-popconfirm
+ v-if="record.publishStatus == 1 && record.planStatus == 1"
+ title="纭畾鍙栨秷鍙戝竷鍚�?"
+ @confirm="() => handlePublish(record.id)"
+ >
+ <a>鍙栨秷鍙戝竷</a>
+ </a-popconfirm>
+ <a-divider type="vertical" v-if="record.publishStatus == 1 && record.planStatus == 1"/>
+ <a-popconfirm
+ v-if="record.publishStatus == 1 && record.planStatus == 1"
+ title="纭畾鍗囩増鍚�?"
+ @confirm="() => handleVersion(record.id)"
+ >
+ <a>鍗囩増</a>
+ </a-popconfirm>
+ <a-divider type="vertical" v-if="record.planStatus == 1"/>
+ <a-dropdown>
+ <a class="ant-dropdown-link">鏇村
+ <a-icon type="down" />
+ </a>
+ <a-menu slot="overlay">
+ <a-menu-item v-if="record.planStatus==1 && record.publishStatus==0">
+ <a @click="handleEdit(record)">缂栬緫</a>
+ </a-menu-item>
+ <a-menu-item>
+ <a
+ href="javascript:;"
+ @click="handleDetail(record)"
+ >璇︽儏</a>
+ </a-menu-item>
+ <a-menu-item v-if="record.publishStatus==0">
+ <a-popconfirm
+ title="纭畾鍒犻櫎鍚�?"
+ @confirm="() => handleDelete(record.id)"
+ >
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+
+ </a-menu-item>
+ <a-menu-item v-if="record.planStatus == 0">
+ <a-popconfirm
+ title="纭畾鍚敤鍚�?"
+ @confirm="() => handleActive(record.id)"
+ >
+ <a>鍚敤</a>
+ </a-popconfirm>
+ </a-menu-item>
+ <a-menu-item v-if="record.planStatus == 1 && record.publishStatus == 0">
+ <a-popconfirm
+ title="纭畾绂佺敤鍚�?"
+ @confirm="() => handleActive(record.id)"
+ >
+ <a>绂佺敤</a>
+ </a-popconfirm>
+ </a-menu-item>
+ </a-menu>
+ </a-dropdown>
+ </span>
+ </a-table>
+ <a-tabs defaultActiveKey="1">
+ <a-tab-pane tab="妫�楠屾柟妗堟楠岄」鏄庣粏" key="1">
+ <inspection-plan-item-list ref="inspectionPlanItemList"></inspection-plan-item-list>
+ </a-tab-pane>
+ </a-tabs>
+ <!-- table鍖哄煙-end -->
+ <inspection-plan-model ref="modalForm" @ok="modalFormOk"></inspection-plan-model>
+ </a-card>
+</template>
+
+<script>
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import InspectionPlanModel from './modules/inspectionPlan/InspectionPlanModel'
+import InspectionPlanItemList from './modules/inspectionPlan/InspectionPlanItemList'
+import { requestPut,postAction,getAction } from '@/api/manage'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
+
+export default {
+ name: 'InspectionPlanList',
+ mixins: [JeecgListMixin],
+ components: {
+ InspectionPlanModel,
+ InspectionPlanItemList,
+ JDictSelectTag,
+ JSearchSelectTag,
+ },
+ data() {
+ return {
+ description: '妫�楠屾柟妗�',
+ url: {
+ list: '/qms/inspectionPlan/list',
+ importExcelUrl: '/qms/inspectionPlan/importExcel',
+ exportXlsUrl: '/qms/inspectionPlan/exportXls',
+ edit:'/qms/inspectionPlan/edit',
+ submit:'/qms/inspectionPlan/submit',
+ active: '/qms/inspectionPlan/active',
+ publish:'/qms/inspectionPlan/publish',
+ version:'/qms/inspectionPlan/version'
+ },
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ align: 'center',
+ customRender: function (t, r, index) {
+ return parseInt(index) + 1
+ },
+ },
+ {
+ title: '妫�楠屾柟妗堢紪鐮�',
+ align: 'center',
+ dataIndex: 'planCode',
+ sorter: true,
+ },
+ {
+ title: '妫�楠屾柟妗堝悕绉�',
+ align: 'center',
+ dataIndex: 'planName',
+ },
+ {
+ title: '妫�楠屾柟妗堝垎绫�',
+ align: 'center',
+ dataIndex: 'planCategory_dictText',
+ },
+ {
+ title: '鐗╂枡缂栫爜',
+ align: 'center',
+ dataIndex: 'materialNumber',
+ },
+ {
+ title: '鐗╂枡鍚嶇О',
+ align: 'center',
+ dataIndex: 'materialName',
+ },
+ {
+ title: '鎶芥牱瑙勫垯',
+ align: 'center',
+ dataIndex: 'ruleId_dictText',
+ },
+ {
+ title: '鏂规鎻忚堪',
+ align: 'center',
+ dataIndex: 'descreption',
+ },
+ {
+ title: '鐗堟湰',
+ align: 'center',
+ scopedSlots: {
+ customRender: 'version',
+ },
+ dataIndex: 'version',
+ },
+ {
+ title: '鏂规鐘舵��',
+ align: 'center',
+ scopedSlots: {
+ customRender: 'status',
+ },
+ dataIndex: 'planStatus',
+ },
+ {
+ title: '鍙戝竷鐘舵��',
+ align: 'center',
+ scopedSlots: {
+ customRender: 'publishStatus',
+ },
+ dataIndex: 'publishStatus',
+ },
+ {
+ width: 180,
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align: 'center',
+ scopedSlots: { customRender: 'action' },
+ },
+ ],
+ loading:false
+ }
+ },
+ computed: {
+ /* 瀵煎叆璺緞椤甸潰閲嶆柊璁$畻 */
+ importExcelUrl: function () {
+ // return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;//寮�鍙戠幆澧冩寚鍚�
+ return `${window._CONFIG['hxFileURL']}/${this.url.importExcelUrl}`
+ },
+ },
+ methods: {
+ searchQuery(){
+ this.selectedRowKeys = []
+ this.$refs.inspectionPlanItemList.dataSource = []
+ this.loadData(1);
+ },
+ searchReset() {
+ this.queryParam = {}
+ this.selectedRowKeys = []
+ this.$refs.inspectionPlanItemList.dataSource = []
+ this.loadData(1);
+ },
+ customRow(record) {
+ return {
+ on: {
+ click: (e) => {
+ this.onSelectChange(record.id.split(","), [record]);
+ },
+ },
+ }
+ },
+ onSelectChange(selectedRowKeys, selectionRows) {
+ this.selectedRowKeys = selectedRowKeys;
+ this.selectionRows = selectionRows;
+ //灏嗗綋鍓嶉�変腑鐨勮褰曚紶鍒板瓙椤甸潰
+ this.$bus.$emit('getInspectionPlanItemData', this.selectionRows[0])
+ },
+ handleEdit: function (record) {
+ this.$refs.modalForm.edit(record)
+ this.$refs.modalForm.title = '缂栬緫'
+ this.$refs.modalForm.disableSubmit = false
+ },
+ handleAdd() {
+ this.$refs.modalForm.add()
+ this.$refs.modalForm.title = '鏂板'
+ this.$refs.modalForm.disableSubmit = false
+ },
+ handleSubmit(record) {
+ let that = this;
+ that.loading = true
+ getAction(that.url.submit, { id:record.id}).then((res) => {
+ if (res.success) {
+ that.$message.success(res.message);
+ that.loadData();
+ } else {
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.loading = false
+ })
+ },
+ //鍚敤绂佺敤
+ handleActive(id) {
+ if (!this.url.active) {
+ this.$message.error("璇疯缃畊rl.active!")
+ return
+ }
+ let that = this;
+ requestPut(that.url.active, {}, { id: id }).then((res) => {
+ if (res.success) {
+ that.$message.success(res.message);
+ that.loadData();
+ } else {
+ that.$message.warning(res.message);
+ }
+ });
+ },
+
+ //鍙戝竷
+ handlePublish(id) {
+ if (!this.url.publish) {
+ this.$message.error("璇疯缃畊rl.publish!")
+ return
+ }
+ let that = this;
+ requestPut(that.url.publish, {}, { id: id }).then((res) => {
+ if (res.success) {
+ that.$message.success(res.message);
+ that.loadData();
+ } else {
+ that.$message.warning(res.message);
+ }
+ });
+ },
+
+ //鍗囩増
+ handleVersion(id) {
+ if (!this.url.version) {
+ this.$message.error("璇疯缃畊rl.version!")
+ return
+ }
+ let that = this;
+ requestPut(that.url.version, {}, { id: id }).then((res) => {
+ if (res.success) {
+ that.$message.success(res.message);
+ that.loadData();
+ } else {
+ that.$message.warning(res.message);
+ }
+ });
+ },
+
+ tableRowClass(record, index) {
+ if (record.isNewVersion != '1') {
+ return "frozenRowClass";
+ }
+ return "";
+ },
+ },
+}
+</script>
+
+<style lang="less" scoped>
+@import '~@assets/less/common.less';
+/deep/ .frozenRowClass {
+ color: #c9c9c9;
+}
+/deep/ .notshow {
+ display: none;
+}
+/deep/ .checked-td-of-add-table {
+ background-color: rgba(220, 220, 220, 1);
+}
+</style>
\ No newline at end of file
diff --git a/src/views/qms/InspectionToolsList.vue b/src/views/qms/InspectionToolsList.vue
index b0eb2fa..da06d5e 100644
--- a/src/views/qms/InspectionToolsList.vue
+++ b/src/views/qms/InspectionToolsList.vue
@@ -98,7 +98,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.toolStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/qms/SamplingRulesList.vue b/src/views/qms/SamplingRulesList.vue
index 28882b9..f0cca90 100644
--- a/src/views/qms/SamplingRulesList.vue
+++ b/src/views/qms/SamplingRulesList.vue
@@ -98,7 +98,7 @@
<a-icon type="down" />
</a>
<a-menu slot="overlay">
- <a-menu-item>
+ <a-menu-item v-if="record.ruleStatus==1">
<a @click="handleEdit(record)">缂栬緫</a>
</a-menu-item>
<a-menu-item>
diff --git a/src/views/qms/modules/defect/DefectModel.vue b/src/views/qms/modules/defect/DefectModel.vue
index 86c508f..6878389 100644
--- a/src/views/qms/modules/defect/DefectModel.vue
+++ b/src/views/qms/modules/defect/DefectModel.vue
@@ -4,6 +4,7 @@
:width="800"
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
@cancel="handleCancel"
diff --git a/src/views/qms/modules/inspectionItem/InspectionItemModel.vue b/src/views/qms/modules/inspectionItem/InspectionItemModel.vue
index 76fde16..c687893 100644
--- a/src/views/qms/modules/inspectionItem/InspectionItemModel.vue
+++ b/src/views/qms/modules/inspectionItem/InspectionItemModel.vue
@@ -3,6 +3,7 @@
:title="title"
:width="800"
:visible="visible"
+ :maskClosable="false"
:confirmLoading="confirmLoading"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
diff --git a/src/views/qms/modules/inspectionPlan/InspectionPlanItemList.vue b/src/views/qms/modules/inspectionPlan/InspectionPlanItemList.vue
new file mode 100644
index 0000000..7b24d4c
--- /dev/null
+++ b/src/views/qms/modules/inspectionPlan/InspectionPlanItemList.vue
@@ -0,0 +1,103 @@
+<template>
+ <a-card
+ :bordered="false"
+ class="card-area"
+ >
+ <a-table
+ ref="table"
+ bordered
+ size="middle"
+ rowKey="id"
+ :columns="columns"
+ :dataSource="dataSource"
+ :pagination="ipagination"
+ :loading="loading"
+ @change="handleTableChange"
+ >
+ </a-table>
+ </a-card>
+</template>
+
+<script>
+import { requestPut } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+export default {
+ name: 'InspectionPlanItemList',
+ mixins: [JeecgListMixin],
+ components: {},
+ data() {
+ return {
+ url: {
+ list: '/qms/inspectionItem/queryListByPlanId',
+ },
+ queryParam: {},
+ nodeType: 0,
+ dataSource: [],
+ disableMixinCreated:true,
+ columns: [
+ {
+ title: '妫�楠岄」鐩紪鐮�',
+ align: 'center',
+ dataIndex: 'itemCode',
+ width: '10%',
+ },
+ {
+ title: '妫�楠岄」鐩悕绉�',
+ dataIndex: 'itemName',
+ align: 'center',
+ },
+ {
+ title: '妫�楠岄」鐩垎绫�',
+ dataIndex: 'itemCategoryName',
+ align: 'center',
+ },
+
+ {
+ title: '瀹氶噺/瀹氭��',
+ dataIndex: 'qualitativeOrQuantitativeName',
+ align: 'center',
+ },
+ {
+ title: '娴嬮噺宸ュ叿',
+ dataIndex: 'inspectionToolsNames',
+ align: 'center',
+ },
+ {
+ title: '鎺掑簭',
+ dataIndex: 'sorter',
+ align: 'center',
+ },
+ {
+ title: '鏍囧噯鍊�',
+ dataIndex: 'standardValue',
+ align: 'center',
+ },
+ {
+ title: '涓婂叕宸�',
+ dataIndex: 'maxValue',
+ align: 'center',
+ },
+ {
+ title: '涓嬪叕宸�',
+ dataIndex: 'minValue',
+ align: 'center',
+ }
+ ]
+ }
+ },
+
+ methods: {
+ },
+ mounted() {
+ this.$bus.$on('getInspectionPlanItemData', (data) => {
+ this.queryParam.inspectionPlanId = data.id;
+ this.searchQuery();
+ })
+ }
+}
+</script>
+
+<style scoped>
+@import '~@assets/less/common.less';
+</style>
\ No newline at end of file
diff --git a/src/views/qms/modules/inspectionPlan/InspectionPlanModel.vue b/src/views/qms/modules/inspectionPlan/InspectionPlanModel.vue
new file mode 100644
index 0000000..0c6c049
--- /dev/null
+++ b/src/views/qms/modules/inspectionPlan/InspectionPlanModel.vue
@@ -0,0 +1,525 @@
+<template>
+ <a-modal
+ :title="title"
+ :visible="visible"
+ :fullScreen="true"
+ :width="1200"
+ @ok="handleOk"
+ @cancel="handleCancel"
+ :maskClosable="false"
+ >
+ <a-spin :spinning="confirmLoading">
+ <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="disableSubmit" placeholder="璇疯緭鍏ユ楠屾柟妗堢紪鐮�" v-decorator="['planCode', validatorRules.planCode]" />
+ </a-form-item>
+ </a-col>
+ <a-col :span="24 / 2">
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="妫�楠屾柟妗堝悕绉�">
+ <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ユ楠屾柟妗堝悕绉�" v-decorator="['planName', validatorRules.planName]" />
+ </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="妫�楠屾柟妗堝垎绫�">
+ <j-dict-select-tag
+ :disabled="disableSubmit"
+ type="list"
+ v-decorator="['planCategory', validatorRules.planCategory]"
+ :triggerChange="true"
+ dictCode="plan_category"
+ placeholder="璇烽�夋嫨妫�楠屾柟妗堝垎绫�"
+ />
+ </a-form-item>
+ </a-col>
+ <a-col :span="24 / 2">
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鎶芥牱瑙勫垯">
+ <a-select
+ :disabled="disableSubmit"
+ :triggerChange="true"
+ :options="ruleOptions"
+ v-decorator="[ 'ruleId', validatorRules.ruleId ]"
+ placeholder='璇烽�夋嫨鎶芥牱瑙勫垯'
+ />
+ </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-input-search v-decorator="['materialNumber', validatorRules.materialNumber]" :disabled="disableSubmit" @search="materialSearch" enter-button
+ placeholder='璇烽�夋嫨鐗╂枡淇℃伅'/>
+ </a-form-item>
+ </a-col>
+ <a-col :span="24 / 2">
+ <a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鐗╂枡鍚嶇О">
+ <a-input :disabled="true" v-decorator="['materialName', validatorRules.materialName]" placeholder='閫夋嫨鐗╂枡鍚庤嚜鍔ㄥ甫鍑�' />
+ </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="['descreption', validatorRules.descreption]"
+ />
+ </a-form-item>
+ </a-col>
+ </a-row>
+ </a-form>
+ </a-spin>
+ <a-button type="primary" :style="{ marginBottom: '8px' }" @click="selectInspectionItemList()" :disabled="disableSubmit">閫夋嫨妫�楠岄」鐩�</a-button>
+ <a-table
+ ref="table"
+ bordered
+ size="middle"
+ rowKey="id"
+ :columns="columns"
+ :dataSource="dataSource"
+ :pagination="ipagination"
+ :loading="loading"
+ @change="handleTableChange"
+ >
+ <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index">
+ <div :key="col.dataIndex">
+ <a-input-number
+ :disabled="disableSubmit"
+ v-if="col.dataIndex == 'sorter'"
+ :value="text"
+ @change="(e) => handleChange(e, record.key, col, index)"
+ :min="1"
+ />
+ </div>
+ <div :key="col.dataIndex">
+ <a-input-number
+ :disabled="disableSubmit"
+ v-if="col.dataIndex == 'standardValue'"
+ :value="text"
+ @change="(e) => handleChange(e, record.key, col, index)"
+ :min="0"
+ />
+ </div>
+ <div :key="col.dataIndex">
+ <a-input-number
+ :disabled="disableSubmit"
+ v-if="col.dataIndex == 'maxValue'"
+ :value="text"
+ @change="(e) => handleChange(e, record.key, col, index)"
+ :min="0"
+ />
+ </div>
+ <div :key="col.dataIndex">
+ <a-input-number
+ :disabled="disableSubmit"
+ v-if="col.dataIndex == 'minValue'"
+ :value="text"
+ @change="(e) => handleChange(e, record.key, col, index)"
+ :min="0"
+ />
+ </div>
+ </template>
+ <span slot="action" slot-scope="text, record, index">
+ <a-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record, index)" :disabled="disableSubmit">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </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>
+ </template>
+
+ <template slot="footer" v-if="disableSubmit == true">
+ <a-button :style="{ marginRight: '8px' }" @click="handleCancel">鍏抽棴</a-button>
+ </template>
+ <j-select-inspection-item-list-modal ref="inspectionItemForm" @ok="modalFormOk"></j-select-inspection-item-list-modal>
+ <material-list-modal ref="materialListModel" @sendSelectionRows="getMaterialRows"></material-list-modal>
+ </a-modal>
+</template>
+
+<script>
+import pick from 'lodash.pick'
+import { ajaxGetDictItems } from '@/api/api'
+import moment from 'moment'
+import { getAction, postAction, requestPut } from '@/api/manage'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
+import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
+import { filterObj } from '@/utils/util'
+import JSelectInspectionItemListModal from './JSelectInspectionItemListModal'
+import store from '@/store'
+import MaterialListModal from './MaterialListModal'
+
+export default {
+ name: 'InspectionPlanModel',
+ components: {
+ JMultiSelectTag,
+ JDictSelectTag,
+ JSelectInspectionItemListModal,
+ JSearchSelectTag,
+ store,
+ MaterialListModal
+ },
+ data() {
+ return {
+ /* 鍒嗛〉鍙傛暟 */
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['10', '20', '30'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0
+ },
+ isDisabled: false,
+ selectedRowKeys: {},
+ state: {
+ show: false,
+ maintenanceValue: 1,
+ checkValue: 1,
+ maintenanceState: false,
+ checkState: false,
+ },
+ inboundDate: '',
+ applicationDate: '',
+ supplierShow: false,
+ disableSubmit: false,
+ numDisable:false,
+ quantityDisable:false,
+ onlyCodeDisable:true,
+ returnShow:false,
+ toolingShow:false,
+ sharpenShow:false,
+ addDisable:false,
+ toolinngOptions:[],
+ title: '鎿嶄綔',
+ visible: false,
+ model: {},
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 6 },
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 18 },
+ },
+ confirmLoading: false,
+ loading: false,
+ form: this.$form.createForm(this),
+ dataSource: [],
+ toolingTreeData:[],
+ warehouseOptions:[],
+ locationOptions:[],
+ allToolingList:[],
+ param: {},
+ barcodeCurrentType: false,
+ planId:'',
+ validatorRules: {
+ planCode: {
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ユ楠屾柟妗堢紪鐮�!',
+ },
+ ],
+ },
+ planName: {
+ rules: [
+ {
+ required: true,
+ message: '璇疯緭鍏ユ楠屾柟妗堝悕绉�!',
+ },
+ ],
+ },
+ planCategory: {
+ rules: [
+ {
+ required: true,
+ message: '璇烽�夋嫨妫�楠屾柟妗堝垎绫�!',
+ },
+ ],
+ },
+ },
+ url: {
+ add: '/qms/inspectionPlan/add',
+ edit: '/qms/inspectionPlan/edit',
+ inpspectionItemList:'/qms/inspectionItem/list',
+ detailList:'/qms/inspectionItem/queryList',
+ },
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ width: 50,
+ align: 'center',
+ customRender: function (t, r, index) {
+ return parseInt(index) + 1
+ },
+ },
+ {
+ title: '妫�楠岄」鐩紪鐮�',
+ align: 'center',
+ dataIndex: 'itemCode',
+ width: 150,
+ },
+ {
+ title: '妫�楠岄」鐩悕绉�',
+ align: 'center',
+ dataIndex: 'itemName'
+ },
+ {
+ title: '妫�楠岄」鐩垎绫�',
+ align: 'center',
+ dataIndex: 'itemCategoryName',
+ },
+ {
+ title: '瀹氶噺/瀹氭��',
+ align: 'center',
+ dataIndex: 'qualitativeOrQuantitativeName'
+ },
+ {
+ title: '娴嬮噺宸ュ叿',
+ align: 'center',
+ dataIndex: 'inspectionToolsNames',
+ },
+ {
+ title: '鎺掑簭',
+ dataIndex: 'sorter',
+ align: 'center',
+ scopedSlots: { customRender: 'sorter' },
+ },
+ {
+ title: '鏍囧噯鍊�',
+ dataIndex: 'standardValue',
+ align: 'center',
+ scopedSlots: { customRender: 'standardValue' },
+ },
+ {
+ title: '涓婂叕宸�',
+ dataIndex: 'maxValue',
+ align: 'center',
+ scopedSlots: { customRender: 'maxValue' },
+ },
+ {
+ title: '涓嬪叕宸�',
+ dataIndex: 'minValue',
+ align: 'center',
+ scopedSlots: { customRender: 'minValue' },
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ align: 'center',
+ scopedSlots: { customRender: 'action' },
+ },
+ ],
+ ruleOptions:[]
+ }
+ },
+ created() {
+ ajaxGetDictItems("qms_sampling_rules,rule_name,id", null).then((res) => {
+ if (res.success) {
+ this.ruleOptions = res.result
+ }
+ })
+ },
+ methods: {
+
+ materialSearch() {
+ this.$refs.materialListModel.openPage()
+ this.$refs.materialListModel.title = '閫夋嫨鐗╂枡'
+ this.$refs.materialListModel.disableSubmit = false
+ },
+ getMaterialRows(val) {
+ if (val.materialNumber) {
+ const initialData = {
+ materialNumber: val.materialNumber,
+ materialName: val.materialName
+ };
+ this.form.setFieldsValue(initialData);
+ }
+
+ },
+ handleChange(value, key, column, index) {
+ const temp = [...this.dataSource]
+ const target = temp.filter(item => key === item.key)[index];
+ if (target) {
+ target[column.dataIndex] = value
+ this.dataSource = temp
+ }
+ },
+ modalFormOk() {
+ },
+ getQueryParams() {
+ this.param.pageNo = this.ipagination.current
+ this.param.pageSize = this.ipagination.pageSize
+ return filterObj(this.param)
+ },
+ add() {
+ this.handle = store.getters.userInfo.username
+ this.edit({})
+ },
+ edit(record) {
+ let that = this
+ this.form.resetFields()
+ this.model = Object.assign({}, record)
+ this.visible = true
+ this.isDisabled = false
+ this.disableSubmit = false
+ if (record.id) {
+ this.planId = record.id
+ this.detailList(this.planId)
+ }
+ this.$nextTick(() => {
+ this.form.setFieldsValue(
+ pick(this.model, 'planCode', 'planName', 'planCategory', 'materialNumber', 'materialName','ruleId','planStatus','descreption')
+ )
+ })
+ },
+ close() {
+ this.$emit('close')
+ this.dataSource = []
+ this.visible = false
+ this.supplierShow = false,
+ this.disableSubmit = false,
+ this.numDisable = false,
+ this.quantityDisable = false,
+ this.onlyCodeDisable = true,
+ this.returnShow = false,
+ this.toolingShow = false,
+ this.sharpenShow = false,
+ this.addDisable = false
+ },
+ handleTableChange(pagination, filters, sorter) {
+ this.ipagination = pagination
+ this.detailList(this.planId);
+ },
+ handleOk() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.form.validateFields((err, values) => {
+ if (!err) {
+ that.confirmLoading = true
+ let formData = Object.assign(this.model, values)
+ formData.detailData = this.dataSource
+ let http = ''
+ if(this.model.id){
+ http = this.url.edit
+ }else{
+ http = this.url.add
+ }
+ postAction(http, formData)
+ .then((res) => {
+ if (res.success) {
+ that.$message.success(res.message)
+ that.$emit('ok', new Date())
+ } else {
+ that.$message.warning(res.message)
+ }
+ })
+ .finally(() => {
+ that.confirmLoading = false
+ that.close()
+ })
+ }
+ })
+ },
+ handleCancel() {
+ this.close()
+ },
+ //閫夋嫨宸ュ叿
+ selectInspectionItemList: function () {
+ let ids = []
+ for (let i = 0; i < this.dataSource.length; i++) {
+ ids.push(this.dataSource[i].id)
+ }
+ this.$refs.inspectionItemForm.showModal(ids)
+ this.$refs.inspectionItemForm.title = '閫夋嫨妫�楠岄」鐩�'
+ this.$refs.inspectionItemForm.disableSubmit = false
+ },
+ handleDelete(record, index) {
+ this.dataSource.splice(index, 1)
+ },
+ onChange() {},
+ //鎵嬮�変汉鍛樺��
+ selectCurrentUserChange(e) {
+ console.log('褰撳墠鎵嬮��', e)
+ // this.form.setFieldsValue({
+ // // userName: e,
+ // userNameId: e,
+ // })
+ },
+ detailList(planId) {
+ this.param.planId = planId
+ getAction(this.url.detailList, this.getQueryParams()).then((res) => {
+ if (res.success) {
+ this.dataSource = res.result.records
+ this.ipagination.total = res.result.total;
+ }
+ })
+ },
+ filterOption(input, option) {
+ return (
+ option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
+ );
+ },
+ },
+ watch: {},
+ mounted() {
+ this.$bus.$on('selectionRows', (data) => {
+ //getCurrSelected 浜嬩欢 鎺ユ敹缁勪欢浼犻�掔殑鍙傛暟
+ for (let i = 0; i < data.length; i++) {
+ this.dataSource.push({
+ id:data[i].id,
+ itemCode: data[i].itemCode,
+ itemName: data[i].itemName,
+ inspectionTools: data[i].inspectionTools,
+ inspectionToolsNames: data[i].inspectionToolsNames,
+ itemCategory: data[i].itemCategory,
+ itemCategoryName:data[i].itemCategoryName,
+ itemStatus:data[i].itemStatus,
+ qualitativeOrQuantitative:data[i].qualitativeOrQuantitative,
+ qualitativeOrQuantitativeName:data[i].qualitativeOrQuantitativeName
+ })
+ }
+ //this.ipaginationm.total = this.dataSource.length
+ })
+ },
+}
+</script>
+
+
+<style lang="less" scoped>
+.ant-btn {
+ padding: 0 10px;
+ margin-left: 3px;
+}
+
+.ant-form-item-control {
+ line-height: 0px;
+}
+
+/** 涓昏〃鍗曡闂磋窛 */
+.ant-form .ant-form-item {
+ margin-bottom: 10px;
+}
+
+/** Tab椤甸潰琛岄棿璺� */
+.ant-tabs-content .ant-form-item {
+ margin-bottom: 0px;
+}
+
+/deep/ .notshow {
+ display: none;
+}
+</style>
diff --git a/src/views/qms/modules/inspectionPlan/JSelectInspectionItemListModal.vue b/src/views/qms/modules/inspectionPlan/JSelectInspectionItemListModal.vue
new file mode 100644
index 0000000..2225872
--- /dev/null
+++ b/src/views/qms/modules/inspectionPlan/JSelectInspectionItemListModal.vue
@@ -0,0 +1,258 @@
+<template>
+ <!--鏀寔鍏ㄥ睆缂╂斁-->
+ <j-modal
+ :visible="visible"
+ :title="title"
+ switchFullscreen
+ :maskClosable="false"
+ :width="1200"
+ @ok="handleSubmit"
+ @cancel="close"
+ style="top: 50px"
+ cancelText="鍏抽棴"
+ >
+ <a-card :bordered="false">
+ <div class="table-page-search-wrapper">
+ <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <a-row :gutter="24">
+ <a-col :xl="6" :lg="7" :md="8" :sm="24">
+ <a-form-item label="妫�楠岄」鐩紪鐮�">
+ <a-input placeholder="璇疯緭鍏ユ楠岄」鐩紪鐮�,鏀寔妯$硦鏌ヨ" v-model="queryParam.itemCode"></a-input>
+ </a-form-item>
+ </a-col>
+ <a-col :xl="6" :lg="7" :md="8" :sm="24">
+ <a-form-item label="妫�楠岄」鐩悕绉�">
+ <a-input placeholder="璇疯緭鍏ユ楠岄」鐩悕绉�,鏀寔妯$硦鏌ヨ" v-model="queryParam.itemName"></a-input>
+ </a-form-item>
+ </a-col>
+ <a-col :xl="6" :lg="7" :md="8" :sm="24">
+ <a-form-item label="妫�楠岄」鐩垎绫�">
+ <j-search-select-tag
+ placeholder="璇烽�夋嫨妫�楠岄」鐩垎绫�"
+ v-model="queryParam.itemCategory"
+ dict="item_category"
+ />
+ </a-form-item>
+ </a-col>
+
+ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+ <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button>
+ </a-row>
+ </a-form>
+ </div>
+ <!--妫�楠岄」鐩垪琛�-->
+ <a-table
+ ref="table"
+ :scroll="scrollTrigger"
+ size="middle"
+ rowKey="id"
+ :columns="columns"
+ :dataSource="dataSource"
+ :pagination="ipagination"
+ :rowSelection="rowSelection"
+ :loading="loading"
+ @change="handleTableChange"
+ >
+ </a-table>
+ </a-card>
+ </j-modal>
+</template>
+
+<script>
+import { filterObj } from '@/utils/util'
+import { getAction } from '@/api/manage'
+import JDictSelectTag from '@/components/dict/JDictSelectTag'
+import JSearchSelectTag from '@/components/dict/JSearchSelectTag'
+
+export default {
+ name: 'JSelectInspectionItemListModal',
+ components: {JDictSelectTag,JSearchSelectTag},
+ props: {
+ },
+ data() {
+ return {
+ queryParam: {},
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ width: 50,
+ align: 'center',
+ customRender: function (t, r, index) {
+ return parseInt(index) + 1
+ },
+ },
+ {
+ title: '妫�楠岄」鐩紪鐮�',
+ align: 'center',
+ dataIndex: 'itemCode',
+ },
+ {
+ title: '妫�楠岄」鐩悕绉�',
+ align: 'center',
+ dataIndex: 'itemName',
+ },
+ {
+ title: '妫�楠岄」鐩垎绫�',
+ align: 'center',
+ dataIndex: 'itemCategoryName',
+ },
+ {
+ title: '瀹氶噺/瀹氭��',
+ align: 'center',
+ dataIndex: 'qualitativeOrQuantitativeName',
+ },
+ {
+ title: '娴嬮噺宸ュ叿',
+ align: 'center',
+ dataIndex: 'inspectionToolsNames',
+ }
+ ],
+ selectedRowKeys: [],
+ oldSlelectRows: [],
+ scrollTrigger: {},
+ dataSource: [],
+ selectionRows: [],
+ title: '鏍规嵁鏌ヨ缁撴灉閫夋嫨妫�楠岄」鐩�',
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['5', '10', '20'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + ' 鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0,
+ },
+ departTree: [],
+ visible: false,
+ loading: false,
+ url: {
+ list: '/qms/inspectionItem/queryList',
+ },
+ }
+ },
+ computed: {
+ rowSelection() {
+ return {
+ type: 'checkbox',
+ onChange: (selectedRowKeys, selectedRows) => {
+ this.selectedRowKeys = selectedRowKeys
+ this.onSelectChange(selectedRows)
+ },
+ getCheckboxProps: (record) => ({
+ props: {
+ disabled: record.distable,
+ },
+ }),
+ selectedRowKeys: this.selectedRowKeys,
+ }
+ },
+ },
+ watch: {},
+ created() {},
+ methods: {
+ async loadData(arg) {
+ if (arg === 1) {
+ this.ipagination.current = 1
+ }
+ let that = this
+ this.loading = true
+ let params = this.getQueryParams() //鏌ヨ鏉′欢
+ await getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ for (let i = 0; i < res.result.records.length; i++) {
+ if (that.oldSlelectRows.indexOf(res.result.records[i].id) > -1) {
+ res.result.records[i].distable = true
+ } else {
+ res.result.records[i].distable = false
+ }
+ }
+ this.dataSource = res.result.records
+ this.ipagination.total = res.result.total
+ }
+ if (res.code === 510) {
+ this.$message.warning(res.message)
+ }
+ this.loading = false
+ })
+ },
+ showModal(oldSlelectRows) {
+ this.oldSlelectRows = oldSlelectRows
+ this.visible = true
+ this.loadData(1)
+ },
+ getQueryParams() {
+ let param = Object.assign({}, this.queryParam)
+ param.field = this.getQueryField()
+ param.pageNo = this.ipagination.current
+ param.pageSize = this.ipagination.pageSize
+ return filterObj(param)
+ },
+ //鏌ヨ鏉′欢澶勭悊
+ getQueryField() {
+ let str = 'id,'
+ for (let a = 0; a < this.columns.length; a++) {
+ str += ',' + this.columns[a].dataIndex
+ }
+ return str
+ },
+ searchReset(num) {
+ let that = this
+ if (num !== 0) {
+ that.loadData(1)
+ }
+ that.selectborrowIds = []
+ },
+ close() {
+ this.searchReset(0)
+ this.selectedRowKeys = []
+ this.visible = false
+ },
+ handleTableChange(pagination, filters, sorter) {
+ //TODO 绛涢��
+ // if (Object.keys(sorter).length > 0) {
+ // this.isorter.column = sorter.field
+ // this.isorter.order = 'ascend' === sorter.order ? 'asc' : 'desc'
+ // }
+ this.ipagination = pagination
+ this.loadData()
+ },
+ handleSubmit() {
+ this.$bus.$emit('selectionRows', this.selectionRows)
+ this.searchReset(0)
+ this.close()
+ },
+ onSelectChange(selectionRows) {
+ this.selectionRows = selectionRows
+ },
+ onSearch() {
+ this.loadData(1)
+ },
+ searchQuery() {
+ this.loadData(1);
+ },
+ searchReset() {
+ this.queryParam = {}
+ this.loadData(1)
+ },
+ },
+}
+</script>
+
+<style scoped>
+.ant-table-tbody .ant-table-row td {
+ padding-top: 10px;
+ padding-bottom: 10px;
+}
+
+#components-layout-demo-custom-trigger .trigger {
+ font-size: 18px;
+ line-height: 64px;
+ padding: 0 24px;
+ cursor: pointer;
+ transition: color 0.3s;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/qms/modules/inspectionPlan/MaterialListModal.vue b/src/views/qms/modules/inspectionPlan/MaterialListModal.vue
new file mode 100644
index 0000000..7091cd4
--- /dev/null
+++ b/src/views/qms/modules/inspectionPlan/MaterialListModal.vue
@@ -0,0 +1,137 @@
+<template>
+ <a-modal :title="title" :width="1000" :visible="visible" :maskClosable="false" @ok="handleOk" @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <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="9" :sm="9">
+ <a-form-item label="鐗╂枡缂栫爜">
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鐮�" v-model="queryParam.materialNumber"></a-input>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="9" :sm="9">
+ <a-form-item label="鐗╂枡鍚嶇О">
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-model="queryParam.materialName"></a-input>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="3" :sm="3">
+ <a-space>
+ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+ <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>
+ </a-space>
+ </a-col>
+ </a-row>
+ </a-form>
+ </div>
+
+ <!-- table鍖哄煙-begin -->
+ <div>
+ <a-table bordered rowKey="materialNumber" :scroll="{聽 y: 300聽}" :columns="columns"
+ :dataSource="dataSource" :pagination="ipagination" :loading="loading" :customRow="customRow"
+ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'radio'}"
+ @change="handleTableChange">
+ </a-table>
+ </div>
+ <!-- table鍖哄煙-end -->
+ </a-card>
+ </a-modal>
+</template>
+
+<script>
+ import { getAction } from '@/api/manage'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+
+ export default {
+ name: 'MaterialListModal',
+ mixins: [JeecgListMixin],
+ data() {
+ return {
+ title: '',
+ visible: false,
+ disableMixinCreated: true,
+ columns: [
+ {
+ title: '鐗╂枡缂栫爜',
+ align: 'center',
+ dataIndex: 'materialNumber'
+ },
+ {
+ title: '鐗╂枡鍚嶇О',
+ align: 'center',
+ dataIndex: 'materialName'
+ },
+ {
+ title: '鐗╂枡鍨嬪彿',
+ align: 'center',
+ dataIndex: 'materialModel'
+ },
+ {
+ title: '鐗╂枡绫诲瀷',
+ align: 'center',
+ dataIndex: 'materialCategory'
+ },
+ {
+ title: '鍗曚綅',
+ align: 'center',
+ dataIndex: 'materialUnit'
+ }
+ ],
+ /* 鎺掑簭鍙傛暟 */
+ isorter: {
+ column: '',
+ order: ''
+ },
+ url: {
+ list: '/lswmaterial/lswMaterial/list'
+ }
+ }
+ },
+ methods: {
+ openPage() {
+ this.visible = true
+ this.onClearSelected()
+ this.dataSource = []
+ this.loadData()
+ },
+
+ /**
+ * 鑷畾涔夎〃鏍艰
+ * @param record 琛ㄦ牸琛屼俊鎭�
+ * @returns {{style: {cursor: string}, on: {click: on.click}}}
+ */
+ customRow(record) {
+ return {
+ style: {
+ cursor: 'pointer'
+ },
+ on: {
+ click: () => {
+ this.onSelectChange([record.materialNumber], [record])
+ }
+ }
+ }
+ },
+
+ close() {
+ this.$emit('close')
+ this.visible = false
+ },
+
+ handleCancel() {
+ this.close()
+ },
+
+ handleOk() {
+ this.$emit('sendSelectionRows', this.selectionRows[0])
+ this.close()
+ }
+ }
+ }
+</script>
+<style>
+ @import '~@assets/less/common.less';
+</style>
diff --git a/src/views/qms/modules/inspectionTools/InspectionToolsModel.vue b/src/views/qms/modules/inspectionTools/InspectionToolsModel.vue
index 84aea64..913ccae 100644
--- a/src/views/qms/modules/inspectionTools/InspectionToolsModel.vue
+++ b/src/views/qms/modules/inspectionTools/InspectionToolsModel.vue
@@ -4,6 +4,7 @@
:width="800"
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
@cancel="handleCancel"
diff --git a/src/views/qms/modules/samplingRules/SamplingRulesModel.vue b/src/views/qms/modules/samplingRules/SamplingRulesModel.vue
index d4190f2..6352ca4 100644
--- a/src/views/qms/modules/samplingRules/SamplingRulesModel.vue
+++ b/src/views/qms/modules/samplingRules/SamplingRulesModel.vue
@@ -4,6 +4,7 @@
:width="800"
:visible="visible"
:confirmLoading="confirmLoading"
+ :maskClosable="false"
:okButtonProps="{ props: {disabled: disableSubmit} }"
@ok="handleOk"
@cancel="handleCancel"
--
Gitblit v1.9.3