|
|
@@ -8,13 +8,41 @@
|
|
|
<div class="buttons-container">
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
- :disabled="formLoading"
|
|
|
+ :disabled="formLoading || isFormDisabled"
|
|
|
plain
|
|
|
size="mini"
|
|
|
@click="submitForm"
|
|
|
>保 存</el-button
|
|
|
>
|
|
|
- <el-button type="primary" plain size="mini" @click="add()"
|
|
|
+ <!-- 提交菜单 -->
|
|
|
+ <el-dropdown class="ml-5" trigger="click">
|
|
|
+ <el-button type="primary" size="mini" plain>
|
|
|
+ 提交菜单
|
|
|
+ <i class="el-icon-arrow-down el-icon--right" />
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item :disabled="isFormDisabled">提交</el-dropdown-item>
|
|
|
+ <el-dropdown-item :disabled="isFormDisabled">撤销</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+
|
|
|
+ <!-- 审批菜单 -->
|
|
|
+ <el-dropdown class="ml-5 mr-5" trigger="click">
|
|
|
+ <el-button type="warning" size="mini" plain>
|
|
|
+ 审批菜单
|
|
|
+ <i class="el-icon-arrow-down el-icon--right" />
|
|
|
+ </el-button>
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item :disabled="isFormDisabled">审核</el-dropdown-item>
|
|
|
+ <el-dropdown-item>反审核</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ :disabled="isFormDisabled"
|
|
|
+ @click="add()"
|
|
|
>新增明细</el-button
|
|
|
>
|
|
|
<el-button plain size="mini" @click="handleCancel">返 回</el-button>
|
|
|
@@ -31,6 +59,7 @@
|
|
|
<el-select
|
|
|
v-model="formData.businessType"
|
|
|
placeholder="请选择业务类型"
|
|
|
+ :disabled="isFormDisabled"
|
|
|
@change="changeBusinessType"
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -46,7 +75,7 @@
|
|
|
<DepartMentSelect
|
|
|
ref="departMentSelect"
|
|
|
v-model="formData.departmentNo"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || !formData.businessType"
|
|
|
placeholder="请选择部门"
|
|
|
clearable
|
|
|
@change="selectDepart"
|
|
|
@@ -57,7 +86,7 @@
|
|
|
><el-form-item label="业务分类名称" prop="businessDescribe">
|
|
|
<el-select
|
|
|
v-model="formData.businessDescribe"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
placeholder="请选择业务类型"
|
|
|
@change="changeBusinessDescribe"
|
|
|
>
|
|
|
@@ -74,7 +103,7 @@
|
|
|
><el-form-item label="优先级" prop="priority">
|
|
|
<el-select
|
|
|
v-model="formData.priority"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
placeholder="请选择优先级"
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -90,7 +119,7 @@
|
|
|
<el-form-item label="供应商编码" prop="supplierCode">
|
|
|
<el-input
|
|
|
v-model="formData.supplierCode"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
placeholder="请输入供应商编码"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
@@ -99,7 +128,7 @@
|
|
|
<el-form-item label="客户编码" prop="customerCode">
|
|
|
<el-input
|
|
|
v-model="formData.customerCode"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
placeholder="请输入客户编码"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
@@ -110,7 +139,7 @@
|
|
|
v-model="formData.sourceOrderNo"
|
|
|
filterable
|
|
|
remote
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
reserve-keyword
|
|
|
placeholder="请输入源单编号"
|
|
|
:remote-method="remoteMethod"
|
|
|
@@ -130,7 +159,7 @@
|
|
|
<el-form-item label="预计出入库时间" prop="expectedTime">
|
|
|
<el-date-picker
|
|
|
v-model="formData.expectedTime"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
clearable
|
|
|
type="date"
|
|
|
value-format="timestamp"
|
|
|
@@ -142,18 +171,17 @@
|
|
|
<el-date-picker
|
|
|
v-model="formData.actualTime"
|
|
|
clearable
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
type="date"
|
|
|
value-format="timestamp"
|
|
|
placeholder="选择实际出入库时间"
|
|
|
/> </el-form-item
|
|
|
></el-col>
|
|
|
-
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input
|
|
|
v-model="formData.remark"
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
placeholder="请输入备注"
|
|
|
/> </el-form-item
|
|
|
></el-col>
|
|
|
@@ -163,7 +191,7 @@
|
|
|
v-model="formData.warehouseId"
|
|
|
filterable
|
|
|
remote
|
|
|
- :disabled="formData.businessType ? false : true"
|
|
|
+ :disabled="isFormDisabled || (formData.businessType ? false : true)"
|
|
|
reserve-keyword
|
|
|
placeholder="请输入存储地点"
|
|
|
:remote-method="remoteWarehouse"
|
|
|
@@ -178,6 +206,22 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="状态" prop="status" aria-disabled="true">
|
|
|
+ <el-select
|
|
|
+ v-model="formData.status"
|
|
|
+ disabled
|
|
|
+ placeholder="请选择状态"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="dict in getDictDatas('in_out_status')"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
</el-form>
|
|
|
|
|
|
<el-table :data="formData.list" border size="mini">
|
|
|
@@ -208,6 +252,7 @@
|
|
|
filterable
|
|
|
remote
|
|
|
reserve-keyword
|
|
|
+ :disabled="isFormDisabled"
|
|
|
placeholder="请选择物料编码"
|
|
|
:remote-method="
|
|
|
(query) => remoteMaterialSearch(query, 'code', scope.$index)
|
|
|
@@ -237,6 +282,7 @@
|
|
|
filterable
|
|
|
remote
|
|
|
reserve-keyword
|
|
|
+ :disabled="isFormDisabled"
|
|
|
placeholder="请选择物料名称"
|
|
|
:remote-method="
|
|
|
(query) => remoteMaterialSearch(query, 'name', scope.$index)
|
|
|
@@ -276,6 +322,7 @@
|
|
|
<template slot-scope="scope">
|
|
|
<el-input
|
|
|
v-model="scope.row.nowDeliveredQty"
|
|
|
+ :disabled="isFormDisabled"
|
|
|
@change="deliverChange"
|
|
|
/>
|
|
|
</template>
|
|
|
@@ -307,7 +354,7 @@
|
|
|
/>
|
|
|
<el-table-column label="行备注" align="center" prop="remark" width="200">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input v-model="scope.row.remark" />
|
|
|
+ <el-input v-model="scope.row.remark" :disabled="isFormDisabled" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
@@ -322,6 +369,7 @@
|
|
|
size="mini"
|
|
|
type="text"
|
|
|
icon="el-icon-delete"
|
|
|
+ :disabled="isFormDisabled"
|
|
|
@click="handleDelete(scope)"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
@@ -396,6 +444,9 @@ export default {
|
|
|
requestNo: [
|
|
|
{ required: true, message: "申请单号不能为空", trigger: "blur" },
|
|
|
],
|
|
|
+ expectedTime: [
|
|
|
+ { required: true, message: "预计入库时间不能为空", trigger: "blur" },
|
|
|
+ ],
|
|
|
requestType: [
|
|
|
{
|
|
|
required: true,
|
|
|
@@ -425,9 +476,28 @@ export default {
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
+ status: [
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ message:
|
|
|
+ "状态(0草稿 1已提交 2已审核 3执行中 4已完成 5已取消)不能为空",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
},
|
|
|
};
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ // 判断表单是否不可编辑:路径有id且status>=2
|
|
|
+ isFormDisabled() {
|
|
|
+ // 检查是否有id(编辑模式)且status>=2
|
|
|
+ return (
|
|
|
+ this.$route.query.id &&
|
|
|
+ this.formData.status &&
|
|
|
+ Number(this.formData.status) >= 2
|
|
|
+ );
|
|
|
+ },
|
|
|
+ },
|
|
|
watch: {
|
|
|
"$route.query.id": {
|
|
|
immediate: true,
|
|
|
@@ -449,7 +519,8 @@ export default {
|
|
|
// 从路由参数获取ID
|
|
|
const id = this.$route.query.id;
|
|
|
if (id) {
|
|
|
- this.open(id);
|
|
|
+ this.dialogTitle = "修改";
|
|
|
+ // this.open(id);
|
|
|
} else {
|
|
|
this.dialogTitle = "新增";
|
|
|
}
|
|
|
@@ -628,6 +699,8 @@ export default {
|
|
|
res.data.priority = res.data.priority
|
|
|
? res.data.priority.toString()
|
|
|
: "0";
|
|
|
+ res.data.status = res.data.status ? res.data.status.toString() : "0";
|
|
|
+ res.data.list = res.data.list || [];
|
|
|
this.formData = res.data;
|
|
|
this.dialogTitle = "修改";
|
|
|
} finally {
|
|
|
@@ -635,6 +708,7 @@ export default {
|
|
|
}
|
|
|
} else {
|
|
|
this.dialogTitle = "新增";
|
|
|
+ this.formData.list = [];
|
|
|
}
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
@@ -644,7 +718,7 @@ export default {
|
|
|
this.formLoading = true;
|
|
|
try {
|
|
|
const data = this.formData;
|
|
|
- data.list = data.list
|
|
|
+ data.list = (data.list || [])
|
|
|
.filter((v) => v.nowDeliveredQty)
|
|
|
.map(
|
|
|
({
|
|
|
@@ -710,6 +784,7 @@ export default {
|
|
|
erpWriteFlag: undefined,
|
|
|
erpErrMsg: undefined,
|
|
|
erpBackId: undefined,
|
|
|
+ list: [],
|
|
|
};
|
|
|
this.resetForm("formRef");
|
|
|
},
|