|
|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<!-- 上传 -->
|
|
|
- <el-dialog :title="title" :visible.sync="dialogVisible" width="60%">
|
|
|
+ <el-dialog :title="title" :visible.sync="dialogVisible" @close="close" width="60%">
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="82px">
|
|
|
<el-row :gutter="15">
|
|
|
<el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
|
|
|
@@ -26,10 +26,29 @@
|
|
|
<DictSelection v-model="form.status" dictName="规则状态"></DictSelection>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
|
|
|
+ <el-form-item prop="holderType" label="持证类型">
|
|
|
+ <el-select style="width: 100%" v-model="form.holderType" @change="holderTypeChange">
|
|
|
+ <el-option :label="item.label" :value="item.value" v-for="(item, index) in holderTypeOptions" :key="index">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
<el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
|
|
|
<el-form-item prop="holder" label="持证人">
|
|
|
- <el-input v-model="form.holder" clearable readonly placeholder="请选择"
|
|
|
+ <el-input v-if="form.holderType != 2" v-model="form.holder" clearable readonly placeholder="请选择"
|
|
|
@click.native="openStaffSelection"></el-input>
|
|
|
+ <ele-tree-select
|
|
|
+ v-if="form.holderType == 2"
|
|
|
+ ref="tree"
|
|
|
+ clearable
|
|
|
+ :data="companyData"
|
|
|
+ label-key="name"
|
|
|
+ value-key="id"
|
|
|
+ default-expand-all
|
|
|
+ v-model="form.holder"
|
|
|
+ @change="handleChange"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
|
|
|
@@ -60,39 +79,9 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<staffSelection ref="staffSelection" @confirm="confirmStaffSelection"></staffSelection>
|
|
|
- <!-- <headerTitle title="关联产品" v-show="!isUpdate"></headerTitle> -->
|
|
|
- <!-- <ele-pro-table ref="table" :needPage="false" :columns="columns" :datasource="form.datasource" class="time-form"
|
|
|
- :toolkit="[]"> -->
|
|
|
- <!-- 表头工具栏 -->
|
|
|
- <!-- <template v-slot:toolbar>
|
|
|
- <el-button
|
|
|
- size="small"
|
|
|
- type="primary"
|
|
|
- icon="el-icon-plus"
|
|
|
- class="ele-btn-icon"
|
|
|
- @click="handParent('', -1)"
|
|
|
- v-if="!isContractId"
|
|
|
- >
|
|
|
- 新增
|
|
|
- </el-button>
|
|
|
- </template> -->
|
|
|
- <!-- 操作列 -->
|
|
|
- <!-- <template v-slot:action="scope">
|
|
|
- <el-popconfirm v-if="!isContractId" class="ele-action" title="确定要删除吗?" @confirm="remove(scope.$index)">
|
|
|
- <template v-slot:reference>
|
|
|
- <el-link type="danger" :underline="false" icon="el-icon-delete">
|
|
|
- 删除
|
|
|
- </el-link>
|
|
|
- </template>
|
|
|
- </el-popconfirm>
|
|
|
- </template>
|
|
|
- </ele-pro-table>
|
|
|
- <product-list
|
|
|
- ref="productListRef"
|
|
|
- classType="1"
|
|
|
- :is-get-inventory-total="true"
|
|
|
- @changeParent="changeParent"
|
|
|
- ></product-list> -->
|
|
|
+ <productTable ref="productTableRef" />
|
|
|
+ <supplierSelection ref="supplierSelectionRef" @confirm="confirmStaffSelection" />
|
|
|
+ <customerSelection ref="customerSelectionRef" @confirm="confirmStaffSelection" />
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button size="small" @click="submit" type="primary">提 交</el-button>
|
|
|
<el-button size="small" @click="close">关 闭</el-button>
|
|
|
@@ -106,13 +95,19 @@
|
|
|
import fileUpload from '@/components/upload/fileUpload';
|
|
|
import imgUpload from '@/components/upload/imgUpload';
|
|
|
import { getCode } from '@/api/ruleManagement/matter';
|
|
|
- import productList from './product-list.vue';
|
|
|
+ import productTable from './productTable.vue';
|
|
|
+ import supplierSelection from './supplierSelection.vue';
|
|
|
+ import customerSelection from './customerSelection.vue';
|
|
|
+ import { listOrganizations } from '@/api/system/organization';
|
|
|
+
|
|
|
export default {
|
|
|
components: {
|
|
|
fileUpload,
|
|
|
imgUpload,
|
|
|
staffSelection,
|
|
|
- productList
|
|
|
+ productTable,
|
|
|
+ supplierSelection,
|
|
|
+ customerSelection
|
|
|
},
|
|
|
//注册组件
|
|
|
data() {
|
|
|
@@ -121,7 +116,8 @@
|
|
|
holder: '',
|
|
|
holderId: '',
|
|
|
date: [],
|
|
|
- fileObj: []
|
|
|
+ fileObj: [],
|
|
|
+ holderType: '1',
|
|
|
};
|
|
|
return {
|
|
|
dialogVisible: false,
|
|
|
@@ -158,52 +154,29 @@
|
|
|
],
|
|
|
fileObj: [
|
|
|
{ required: true, trigger: 'change', message: '请选择证照图片' }
|
|
|
- ]
|
|
|
+ ],
|
|
|
},
|
|
|
form: { ...defaultForm },
|
|
|
title: '新增',
|
|
|
- columns: [{
|
|
|
- width: 45,
|
|
|
- type: 'index',
|
|
|
- columnKey: 'index',
|
|
|
- align: 'center',
|
|
|
- fixed: 'left'
|
|
|
- },
|
|
|
- {
|
|
|
- prop: 'productName',
|
|
|
- label: '名称',
|
|
|
- slot: 'productName',
|
|
|
- headerSlot: 'headerProductName',
|
|
|
- align: 'center',
|
|
|
- fixed: 'left'
|
|
|
- },
|
|
|
+ holderTypeOptions:[
|
|
|
{
|
|
|
- prop: 'productCode',
|
|
|
- label: '编码',
|
|
|
- slot: 'productCode',
|
|
|
- align: 'center'
|
|
|
+ label: '个人',
|
|
|
+ value: '1'
|
|
|
},
|
|
|
{
|
|
|
- prop: 'productCategoryName',
|
|
|
- label: '类型',
|
|
|
- slot: 'productCategoryName',
|
|
|
- align: 'center'
|
|
|
+ label: '企业自身',
|
|
|
+ value: '2'
|
|
|
},
|
|
|
{
|
|
|
- prop: 'specification',
|
|
|
- label: '规格',
|
|
|
- slot: 'specification',
|
|
|
- align: 'center'
|
|
|
+ label: '供应商',
|
|
|
+ value: '3'
|
|
|
},
|
|
|
{
|
|
|
- columnKey: 'action',
|
|
|
- label: '操作',
|
|
|
- width: 80,
|
|
|
- align: 'left',
|
|
|
- resizable: false,
|
|
|
- slot: 'action',
|
|
|
- showOverflowTooltip: true
|
|
|
- }]
|
|
|
+ label: '客户',
|
|
|
+ value: '4'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ companyData: [], //公司分类
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -212,18 +185,27 @@
|
|
|
return this.$store.state.theme.styleResponsive;
|
|
|
}
|
|
|
},
|
|
|
- created() {},
|
|
|
+ created() {
|
|
|
+ this.getCompanyData()
|
|
|
+ },
|
|
|
methods: {
|
|
|
//选择负责人
|
|
|
confirmStaffSelection(data) {
|
|
|
console.log(data);
|
|
|
this.form.holderId = data.map((item) => item.id).join(',');
|
|
|
+
|
|
|
this.form.holder = data.map((item) => item.name).join(',');
|
|
|
this.$forceUpdate();
|
|
|
console.log(this.form);
|
|
|
},
|
|
|
openStaffSelection() {
|
|
|
- this.$refs.staffSelection.open([]);
|
|
|
+ if (this.form.holderType == 1) {
|
|
|
+ this.$refs.staffSelection.open([]);
|
|
|
+ } else if (this.form.holderType == 3) {
|
|
|
+ this.$refs.supplierSelectionRef.open([]);
|
|
|
+ } else if (this.form.holderType == 4) {
|
|
|
+ this.$refs.customerSelectionRef.open([]);
|
|
|
+ }
|
|
|
},
|
|
|
open(row) {
|
|
|
this.$refs.form && this.$refs.form.clearValidate();
|
|
|
@@ -247,14 +229,19 @@
|
|
|
const data = await getPhotoInfo(id);
|
|
|
this.form = {
|
|
|
...data,
|
|
|
- date: [data.validityStartTime, data.validityEndTime]
|
|
|
+ date: [data.validityStartTime, data.validityEndTime],
|
|
|
+ holderType: data.holderType || '1'
|
|
|
};
|
|
|
+
|
|
|
|
|
|
+ this.$refs.productTableRef.putTableValue(data.categorys || [])
|
|
|
},
|
|
|
|
|
|
close() {
|
|
|
this.dialogVisible = false;
|
|
|
// this.$refs.form.resetFields()
|
|
|
+ this.form = { ...this.defaultForm };
|
|
|
+ this.$refs.productTableRef.initData()
|
|
|
},
|
|
|
|
|
|
submit() {
|
|
|
@@ -267,13 +254,13 @@
|
|
|
this.form.validityStartTime = this.form.date[0];
|
|
|
this.form.validityEndTime = this.form.date[1];
|
|
|
}
|
|
|
- // if (this.form.fileObj.length) {
|
|
|
- // this.form.fileObj = this.form.fileObj[0];
|
|
|
- // }
|
|
|
+
|
|
|
const data = {
|
|
|
...this.form,
|
|
|
};
|
|
|
delete data.date;
|
|
|
+ let productTable = this.$refs.productTableRef.getTableValue();
|
|
|
+ data.categorys = productTable || [];
|
|
|
saveOrEdit(data)
|
|
|
.then((msg) => {
|
|
|
this.loading = false;
|
|
|
@@ -287,9 +274,32 @@
|
|
|
});
|
|
|
},
|
|
|
|
|
|
- handParent() {
|
|
|
- this.$refs.productListRef.open(-1);
|
|
|
+ //切换持证人类型
|
|
|
+ holderTypeChange(e) {
|
|
|
+ if (e === 2) {
|
|
|
+ this.getCompanyData();
|
|
|
+ }
|
|
|
+ this.form.holder = ''
|
|
|
+ this.form.holderId = ''
|
|
|
},
|
|
|
+
|
|
|
+ //查询公司分类
|
|
|
+ async getCompanyData() {
|
|
|
+ let list = await listOrganizations();
|
|
|
+ list = list.filter((el) => el.type == 20);
|
|
|
+ this.companyData = this.$util.toTreeData({
|
|
|
+ data: list,
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //选择公司分类
|
|
|
+ handleChange(val) {
|
|
|
+ if (!val) return this.form.processTypeName = ''
|
|
|
+ let node = this.$refs.tree.$refs.tree.getCurrentNode()
|
|
|
+ this.form.holderId = node.id;
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
</script>
|