|
|
@@ -2,7 +2,7 @@
|
|
|
<ele-modal
|
|
|
:visible.sync="visible"
|
|
|
:title="title"
|
|
|
- width="45vw"
|
|
|
+ width="75vw"
|
|
|
append-to-body
|
|
|
@close="cancel"
|
|
|
:maxable="true"
|
|
|
@@ -32,7 +32,7 @@
|
|
|
<headerTitle title="基本信息" style="margin-top: 15px"></headerTitle>
|
|
|
|
|
|
<el-row :gutter="15">
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 12 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
|
|
|
<el-form-item label="类型:" prop="type">
|
|
|
<DictSelection
|
|
|
dictName="请托类型"
|
|
|
@@ -41,7 +41,7 @@
|
|
|
></DictSelection>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="紧急程度:" prop="priority">
|
|
|
<el-select
|
|
|
style="width: 100%"
|
|
|
@@ -60,17 +60,17 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 24 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 24 } : { span: 6 }">
|
|
|
<el-form-item label="编码:" prop="code">
|
|
|
<el-input v-model="form.code" disabled />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 24 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 24 } : { span: 6 }">
|
|
|
<el-form-item label="名称:" prop="name">
|
|
|
<el-input v-model="form.name" :disabled="type == 'detail'" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 24 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 24 } : { span: 6 }">
|
|
|
<el-form-item label="生产工单:" prop="workOrderCode">
|
|
|
<el-input
|
|
|
v-model="form.workOrderCode"
|
|
|
@@ -83,7 +83,7 @@
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 24 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 24 } : { span: 6 }">
|
|
|
<el-form-item label="工序:" prop="procedureList">
|
|
|
<el-select
|
|
|
style="width: 100%"
|
|
|
@@ -103,7 +103,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="请托部门:" prop="pleaseEntrustDeptName">
|
|
|
<!-- <deptSelect
|
|
|
:disabled="type == 'detail'"
|
|
|
@@ -114,7 +114,7 @@
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="请托人:" prop="pleaseEntrustUserId">
|
|
|
<el-input v-model="form.pleaseEntrustUserName" clearable disabled />
|
|
|
|
|
|
@@ -135,13 +135,13 @@
|
|
|
</el-select> -->
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-bind="styleResponsive ? { lg: 8, md: 8 } : { span: 8 }">
|
|
|
+ <el-col v-bind="styleResponsive ? { lg: 6, md: 8 } : { span: 6 }">
|
|
|
<el-form-item label="所属工厂:" prop="factoriesName">
|
|
|
<el-input v-model="form.factoriesName" style="width: 100%" disabled>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="受托工厂:" prop="beEntrustedFactoriesId">
|
|
|
<el-select
|
|
|
style="width: 100%"
|
|
|
@@ -161,7 +161,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="受托部门:" prop="beEntrustedDeptId">
|
|
|
<deptSelect
|
|
|
:disabled="type == 'detail'"
|
|
|
@@ -170,7 +170,7 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<el-form-item label="完成时间:" prop="finishTime">
|
|
|
<el-date-picker
|
|
|
style="width: 100%"
|
|
|
@@ -181,7 +181,7 @@
|
|
|
></el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
-
|
|
|
+
|
|
|
<el-col v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 24 }">
|
|
|
<el-form-item label="需求描述:">
|
|
|
<el-input
|
|
|
@@ -293,204 +293,205 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { save } from '@/api/entrust/index';
|
|
|
-import produceOrder from './produceOrder';
|
|
|
-import detail from '@/views/bpm/processInstance/detail.vue';
|
|
|
-import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
-import { getProduceTaskList } from '@/api/aps';
|
|
|
-import warehouseDefinition from '@/api/warehouseManagement/warehouseDefinition';
|
|
|
+ import { save } from '@/api/entrust/index';
|
|
|
+ import produceOrder from './produceOrder';
|
|
|
+ import detail from '@/views/bpm/processInstance/detail.vue';
|
|
|
+ import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
+ import { getProduceTaskList } from '@/api/aps';
|
|
|
+ import warehouseDefinition from '@/api/warehouseManagement/warehouseDefinition';
|
|
|
|
|
|
-const defaultForm = function () {
|
|
|
- return {
|
|
|
- createTime: '', //创建时间
|
|
|
- code: '', //编码
|
|
|
- name: '', //名称
|
|
|
- workOrderCode: '', //工单编码
|
|
|
- pleaseEntrustUserId: '', //请托人id
|
|
|
- pleaseEntrustUserName: '', //请托人名称
|
|
|
- pleaseEntrustDeptId: '', //请托人部门id
|
|
|
- pleaseEntrustDeptName: '', //请托人部门名称
|
|
|
- beEntrustedDeptId: '', //受托人部门id
|
|
|
- beEntrustedDeptName: '', //受托人部门名称
|
|
|
- produceRoutingId: null,
|
|
|
- produceRoutingName: '',
|
|
|
- procedureList: [],
|
|
|
- pleaseEntrustObjList: [], //具体请托对象
|
|
|
- type: '', //类型
|
|
|
- status: '',
|
|
|
- describes: '', //描述
|
|
|
- finishTime: '', //完成时间
|
|
|
- processInstanceId: '', //流程实例id
|
|
|
- factoriesName: '',
|
|
|
- factoriesId: '',
|
|
|
- priority: '',
|
|
|
- beEntrustedFactoriesId: '', //受托工厂id
|
|
|
- beEntrustedFactoriesName: '' //受托工厂名称
|
|
|
- };
|
|
|
-};
|
|
|
-export default {
|
|
|
- components: { produceOrder, detail, deptSelect },
|
|
|
- data() {
|
|
|
+ const defaultForm = function () {
|
|
|
return {
|
|
|
- visible: false,
|
|
|
- loading: false,
|
|
|
- activeComp: 'main',
|
|
|
- options: [
|
|
|
- {
|
|
|
- name: '一般',
|
|
|
- value: 1
|
|
|
- },
|
|
|
- {
|
|
|
- name: '紧急',
|
|
|
- value: 2
|
|
|
- }
|
|
|
- ],
|
|
|
- tabOptions: [
|
|
|
- { key: 'main', name: '异常详情' },
|
|
|
- { key: 'bpm', name: '流程详情' }
|
|
|
- ],
|
|
|
- form: { ...defaultForm() },
|
|
|
- // 表单验证规则
|
|
|
- rules: {
|
|
|
- type: [{ required: true, message: '请选择', trigger: 'change' }],
|
|
|
- name: [{ required: true, message: '请输入', trigger: 'change' }],
|
|
|
-
|
|
|
- workOrderCode: [
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
+ createTime: '', //创建时间
|
|
|
+ code: '', //编码
|
|
|
+ name: '', //名称
|
|
|
+ workOrderCode: '', //工单编码
|
|
|
+ pleaseEntrustUserId: '', //请托人id
|
|
|
+ pleaseEntrustUserName: '', //请托人名称
|
|
|
+ pleaseEntrustDeptId: '', //请托人部门id
|
|
|
+ pleaseEntrustDeptName: '', //请托人部门名称
|
|
|
+ beEntrustedDeptId: '', //受托人部门id
|
|
|
+ beEntrustedDeptName: '', //受托人部门名称
|
|
|
+ produceRoutingId: null,
|
|
|
+ produceRoutingName: '',
|
|
|
+ procedureList: [],
|
|
|
+ pleaseEntrustObjList: [], //具体请托对象
|
|
|
+ type: '', //类型
|
|
|
+ status: '',
|
|
|
+ describes: '', //描述
|
|
|
+ finishTime: '', //完成时间
|
|
|
+ processInstanceId: '', //流程实例id
|
|
|
+ factoriesName: '',
|
|
|
+ factoriesId: '',
|
|
|
+ priority: '',
|
|
|
+ beEntrustedFactoriesId: '', //受托工厂id
|
|
|
+ beEntrustedFactoriesName: '' //受托工厂名称
|
|
|
+ };
|
|
|
+ };
|
|
|
+ export default {
|
|
|
+ components: { produceOrder, detail, deptSelect },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ visible: false,
|
|
|
+ loading: false,
|
|
|
+ activeComp: 'main',
|
|
|
+ options: [
|
|
|
+ {
|
|
|
+ name: '一般',
|
|
|
+ value: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '紧急',
|
|
|
+ value: 2
|
|
|
+ }
|
|
|
],
|
|
|
- beEntrustedDeptId: [
|
|
|
- { required: true, message: '请选择', trigger: 'change' }
|
|
|
+ tabOptions: [
|
|
|
+ { key: 'main', name: '异常详情' },
|
|
|
+ { key: 'bpm', name: '流程详情' }
|
|
|
],
|
|
|
- finishTime: [{ required: true, message: '请选择', trigger: 'change' }]
|
|
|
- },
|
|
|
- type: '',
|
|
|
- title: '创建',
|
|
|
- produceTaskList: [],
|
|
|
- factoryList: []
|
|
|
- };
|
|
|
- },
|
|
|
+ form: { ...defaultForm() },
|
|
|
+ // 表单验证规则
|
|
|
+ rules: {
|
|
|
+ type: [{ required: true, message: '请选择', trigger: 'change' }],
|
|
|
+ name: [{ required: true, message: '请输入', trigger: 'change' }],
|
|
|
|
|
|
- computed: {
|
|
|
- // 是否开启响应式布局
|
|
|
- styleResponsive() {
|
|
|
- return this.$store.state.theme.styleResponsive;
|
|
|
- }
|
|
|
- },
|
|
|
- created() {
|
|
|
- this.getFactoryList();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- open(type, row) {
|
|
|
- this.visible = true;
|
|
|
+ workOrderCode: [
|
|
|
+ { required: true, message: '请选择', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ beEntrustedDeptId: [
|
|
|
+ { required: true, message: '请选择', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ finishTime: [{ required: true, message: '请选择', trigger: 'change' }]
|
|
|
+ },
|
|
|
+ type: '',
|
|
|
+ title: '创建',
|
|
|
+ produceTaskList: [],
|
|
|
+ factoryList: []
|
|
|
+ };
|
|
|
+ },
|
|
|
|
|
|
- (this.activeComp = 'main'), (this.type = type);
|
|
|
- if (type != 'add') {
|
|
|
- this.form = JSON.parse(JSON.stringify(row));
|
|
|
- this.getProduceTaskList();
|
|
|
- this.form.procedureList = this.form.procedureList.map(
|
|
|
- (item) => item.produceTaskId
|
|
|
- );
|
|
|
- this.form.type = this.form.type + '';
|
|
|
+ computed: {
|
|
|
+ // 是否开启响应式布局
|
|
|
+ styleResponsive() {
|
|
|
+ return this.$store.state.theme.styleResponsive;
|
|
|
}
|
|
|
- this.title = type == 'add' ? '新增' : type == 'edit' ? '修改' : '详情';
|
|
|
},
|
|
|
-
|
|
|
- addProduct() {
|
|
|
- this.$refs.produceOrderRef.open();
|
|
|
+ created() {
|
|
|
+ this.getFactoryList();
|
|
|
},
|
|
|
+ methods: {
|
|
|
+ open(type, row) {
|
|
|
+ this.visible = true;
|
|
|
|
|
|
- beEntrustedDeptIdChange(val, row) {
|
|
|
- this.form.beEntrustedDeptName = row.name;
|
|
|
- },
|
|
|
- factoryListChange(row) {
|
|
|
- this.form.beEntrustedFactoriesName = row.name;
|
|
|
- },
|
|
|
- async getFactoryList() {
|
|
|
- const { list } = await warehouseDefinition.getFactoryarea({
|
|
|
- pageNum: 1,
|
|
|
- size: 999,
|
|
|
- type: 1
|
|
|
- });
|
|
|
- this.factoryList = list || [];
|
|
|
- },
|
|
|
- cancel() {
|
|
|
- this.form = { ...defaultForm() };
|
|
|
- this.produceTaskList=[]
|
|
|
- this.visible = false;
|
|
|
- },
|
|
|
- choose(data) {
|
|
|
- this.form.workOrderCode = data.code;
|
|
|
- this.form.produceRoutingId = data.produceRoutingId;
|
|
|
- this.form.produceRoutingName = data.produceRoutingName;
|
|
|
- this.form.pleaseEntrustObjList = [data];
|
|
|
- this.form.procedureList = [];
|
|
|
- this.getProduceTaskList();
|
|
|
- },
|
|
|
- async getProduceTaskList() {
|
|
|
- const res = await getProduceTaskList({
|
|
|
- isDetail: true,
|
|
|
- pageNum: 1,
|
|
|
- routingId: this.form.produceRoutingId,
|
|
|
- size: -1
|
|
|
- });
|
|
|
- console.log(res, 'res');
|
|
|
- this.produceTaskList = res.list;
|
|
|
- },
|
|
|
- /* 保存编辑 */
|
|
|
- save() {
|
|
|
- this.$refs.form.validate((valid) => {
|
|
|
- if (!valid) {
|
|
|
- return false;
|
|
|
+ (this.activeComp = 'main'), (this.type = type);
|
|
|
+ if (type != 'add') {
|
|
|
+ this.form = JSON.parse(JSON.stringify(row));
|
|
|
+ this.getProduceTaskList();
|
|
|
+ this.form.procedureList = this.form.procedureList.map(
|
|
|
+ (item) => item.produceTaskId
|
|
|
+ );
|
|
|
+ this.form.type = this.form.type + '';
|
|
|
}
|
|
|
+ this.title = type == 'add' ? '新增' : type == 'edit' ? '修改' : '详情';
|
|
|
+ },
|
|
|
+
|
|
|
+ addProduct() {
|
|
|
+ this.$refs.produceOrderRef.open();
|
|
|
+ },
|
|
|
|
|
|
- // for (let key in this.form) {
|
|
|
- // if (key.includes('create')) {
|
|
|
- // this.form[key] = '';
|
|
|
- // }
|
|
|
- // }
|
|
|
- this.loading = true;
|
|
|
- let data = JSON.parse(JSON.stringify(this.form));
|
|
|
- data.procedureList = data.procedureList.map((item) => {
|
|
|
- return {
|
|
|
- produceTaskId: item,
|
|
|
- produceTaskName: this.produceTaskList.find((val) => val.id == item)
|
|
|
- .name
|
|
|
- };
|
|
|
+ beEntrustedDeptIdChange(val, row) {
|
|
|
+ this.form.beEntrustedDeptName = row.name;
|
|
|
+ },
|
|
|
+ factoryListChange(row) {
|
|
|
+ this.form.beEntrustedFactoriesName = row.name;
|
|
|
+ },
|
|
|
+ async getFactoryList() {
|
|
|
+ const { list } = await warehouseDefinition.getFactoryarea({
|
|
|
+ pageNum: 1,
|
|
|
+ size: 999,
|
|
|
+ type: 1
|
|
|
+ });
|
|
|
+ this.factoryList = list || [];
|
|
|
+ },
|
|
|
+ cancel() {
|
|
|
+ this.form = { ...defaultForm() };
|
|
|
+ this.produceTaskList = [];
|
|
|
+ this.visible = false;
|
|
|
+ },
|
|
|
+ choose(data) {
|
|
|
+ this.form.workOrderCode = data.code;
|
|
|
+ this.form.produceRoutingId = data.produceRoutingId;
|
|
|
+ this.form.produceRoutingName = data.produceRoutingName;
|
|
|
+ this.form.pleaseEntrustObjList = [data];
|
|
|
+ this.form.procedureList = [];
|
|
|
+ this.getProduceTaskList();
|
|
|
+ },
|
|
|
+ async getProduceTaskList() {
|
|
|
+ const res = await getProduceTaskList({
|
|
|
+ isDetail: true,
|
|
|
+ pageNum: 1,
|
|
|
+ routingId: this.form.produceRoutingId,
|
|
|
+ size: -1
|
|
|
});
|
|
|
- // console.log(data);
|
|
|
- // return;
|
|
|
- save(data)
|
|
|
- .then((res) => {
|
|
|
- this.loading = false;
|
|
|
- this.$message.success('成功');
|
|
|
- this.cancel();
|
|
|
- this.$emit('refresh');
|
|
|
- })
|
|
|
- .catch((e) => {
|
|
|
- this.loading = false;
|
|
|
+ console.log(res, 'res');
|
|
|
+ this.produceTaskList = res.list;
|
|
|
+ },
|
|
|
+ /* 保存编辑 */
|
|
|
+ save() {
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ // for (let key in this.form) {
|
|
|
+ // if (key.includes('create')) {
|
|
|
+ // this.form[key] = '';
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ this.loading = true;
|
|
|
+ let data = JSON.parse(JSON.stringify(this.form));
|
|
|
+ data.procedureList = data.procedureList.map((item) => {
|
|
|
+ return {
|
|
|
+ produceTaskId: item,
|
|
|
+ produceTaskName: this.produceTaskList.find(
|
|
|
+ (val) => val.id == item
|
|
|
+ ).name
|
|
|
+ };
|
|
|
});
|
|
|
- });
|
|
|
+ // console.log(data);
|
|
|
+ // return;
|
|
|
+ save(data)
|
|
|
+ .then((res) => {
|
|
|
+ this.loading = false;
|
|
|
+ this.$message.success('成功');
|
|
|
+ this.cancel();
|
|
|
+ this.$emit('refresh');
|
|
|
+ })
|
|
|
+ .catch((e) => {
|
|
|
+ this.loading = false;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
-};
|
|
|
+ };
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
-.basic-details-title {
|
|
|
- margin: 10px 0;
|
|
|
-}
|
|
|
+ .basic-details-title {
|
|
|
+ margin: 10px 0;
|
|
|
+ }
|
|
|
|
|
|
-.add-product {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: flex-end;
|
|
|
- font-size: 30px;
|
|
|
- color: #1890ff;
|
|
|
- margin: 10px 0;
|
|
|
- cursor: pointer;
|
|
|
-}
|
|
|
+ .add-product {
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ font-size: 30px;
|
|
|
+ color: #1890ff;
|
|
|
+ margin: 10px 0;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
|
|
|
-.create-form .el-form-item {
|
|
|
- margin-bottom: 15px !important;
|
|
|
-}
|
|
|
+ .create-form .el-form-item {
|
|
|
+ margin-bottom: 15px !important;
|
|
|
+ }
|
|
|
</style>
|