|
@@ -1,18 +1,19 @@
|
|
|
<script>
|
|
|
-import { Columns, TabColumns } from "../add/column";
|
|
|
+// import { Columns, TabColumns } from "../add/column";
|
|
|
+import { editColumns, editTabColumns, forbidden, SelectColumns } from "./initColumn";
|
|
|
import orderApi from "@/api/business/purchase/purchase-order";
|
|
|
import { initColumns, initDicts, initRules, initParams } from "@/utils/init";
|
|
|
|
|
|
-const NewColumns = initColumns(Columns);
|
|
|
-const NewTabColumns = TabColumns.map((element) => ({
|
|
|
- ...element,
|
|
|
- tableColumns: initColumns(element.tableColumns),
|
|
|
-}));
|
|
|
+// const NewColumns = initColumns(Columns);
|
|
|
+// const NewTabColumns = TabColumns.map((element) => ({
|
|
|
+// ...element,
|
|
|
+// tableColumns: initColumns(element.tableColumns),
|
|
|
+// }));
|
|
|
//
|
|
|
-const SelectColumns = NewColumns.filter(column => column.inputType === 'Select')
|
|
|
-NewTabColumns.forEach(column => {
|
|
|
- SelectColumns.push(...column.tableColumns.filter(cColumn => cColumn.inputType === 'Select'))
|
|
|
-});
|
|
|
+// const SelectColumns = NewColumns.filter(column => column.inputType === 'Select')
|
|
|
+// NewTabColumns.forEach(column => {
|
|
|
+// SelectColumns.push(...column.tableColumns.filter(cColumn => cColumn.inputType === 'Select'))
|
|
|
+// });
|
|
|
|
|
|
export default {
|
|
|
name: "EditPurchaseOrderDrawer",
|
|
@@ -25,22 +26,22 @@ export default {
|
|
|
size: "mini",
|
|
|
visible: false,
|
|
|
loading: false,
|
|
|
- columns: NewColumns,
|
|
|
- rules: initRules(NewColumns),
|
|
|
+ columns: editColumns,
|
|
|
+ rules: initRules(editColumns),
|
|
|
params: {
|
|
|
- ...initParams(NewColumns),
|
|
|
+ ...initParams(editColumns),
|
|
|
puOrderItemList: [],
|
|
|
puOrderExecuteList: [],
|
|
|
},
|
|
|
|
|
|
- tabColumns: NewTabColumns,
|
|
|
+ tabColumns: editTabColumns,
|
|
|
tabName: "puOrderItemList",
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
|
watch: {
|
|
|
"params.contractType": function (newProp) {
|
|
|
- this.tabColumns = NewTabColumns.filter((element) =>
|
|
|
+ this.tabColumns = editTabColumns.filter((element) =>
|
|
|
newProp === "1" ? element.key !== "puOrderItemList" : element
|
|
|
);
|
|
|
this.tabName = this.tabColumns[0].key;
|
|
@@ -78,6 +79,13 @@ export default {
|
|
|
this.params[key2][index].materialCode = item.materialCode;
|
|
|
})
|
|
|
},
|
|
|
+ // 判断属性是否禁用
|
|
|
+ handleIsForbidden(status) {
|
|
|
+ console.log(status);
|
|
|
+ let { editColumns, editTabColumns } = forbidden(status != '2');
|
|
|
+ this.columns = editColumns;
|
|
|
+ this.tabColumns = editTabColumns;
|
|
|
+ },
|
|
|
// 查询详细
|
|
|
async fetchItem(prop) {
|
|
|
try {
|
|
@@ -85,7 +93,8 @@ export default {
|
|
|
const { code, msg, data } = await orderApi.details(prop);
|
|
|
if (code === 200) {
|
|
|
this.params = { ...this.params, ...data };
|
|
|
- console.log(this.params, 'this.params----------');
|
|
|
+ console.log(this.params, 'this.params----------123');
|
|
|
+ this.handleIsForbidden(this.params.status);
|
|
|
this.$notify.success({ title: msg });
|
|
|
} else {
|
|
|
this.$notify.warning({ title: msg });
|
|
@@ -166,7 +175,40 @@ export default {
|
|
|
},
|
|
|
beforeOpen() {
|
|
|
},
|
|
|
- handleReferChange(val, source) { },
|
|
|
+ // 子表参照改变之后
|
|
|
+ handleReferChange(val, source, type) {
|
|
|
+ console.log(val, 'val');
|
|
|
+ console.log(source, 'source');
|
|
|
+ console.log(type, 'type');
|
|
|
+
|
|
|
+ // 触发物料参照
|
|
|
+ if (type == 'MATERIAL_PARAM' && source.qty && source.qty != '') {
|
|
|
+
|
|
|
+ this.handleGetPrice();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 子表inputNumber
|
|
|
+ handleInputChange(row, type) {
|
|
|
+ console.log(type, 'type');
|
|
|
+ // 物料数量变化----询价
|
|
|
+ if (type == 'qty' && row.material) {
|
|
|
+ this.handleGetPrice();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 询价 getPrice
|
|
|
+ async handleGetPrice() {
|
|
|
+ try {
|
|
|
+ // let { puOrg, priceType, customer, assignSupplier, material, } = data;
|
|
|
+ let { code, data } = await orderApi.getPrice({ ...this.params })
|
|
|
+ if (code == 200) {
|
|
|
+ this.params = data;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+
|
|
|
+ } finally {
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
// 判断修订还是编辑
|
|
|
handleIsRevise(status) {
|
|
|
return status == '2';
|
|
@@ -175,6 +217,8 @@ export default {
|
|
|
created() {
|
|
|
console.log("EDIT CREATED");
|
|
|
console.log(this.params, 'this.params');
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
mounted() { },
|
|
|
destroyed() { },
|
|
@@ -201,7 +245,7 @@ export default {
|
|
|
<el-button :size="size" type="danger" @click="handleSava">更 新</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <el-row style="display:flex; flex-wrap: wrap;">
|
|
|
+ <el-row style="display:flex; flex-wrap: wrap;">
|
|
|
<el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
|
|
|
<el-form-item :prop="column.key" :label="column.title">
|
|
|
<el-input v-if="column.inputType === 'Input'" v-model="params[column.key]" :placeholder="column.placeholder"
|
|
@@ -210,14 +254,15 @@ export default {
|
|
|
<dr-popover-select v-if="column.inputType === 'PopoverSelect'" v-model="params[column.key]" size="mini"
|
|
|
:value-key="column.valueKey" :source.sync="params" :title="column.title" :type="column.referName"
|
|
|
:multiple="column.multiple" :placeholder="column.placeholder" :data-mapping="column.dataMapping"
|
|
|
- :query-params="column.queryParams(params)">
|
|
|
+ :disabled="column.disabled" :query-params="column.queryParams(params)">
|
|
|
</dr-popover-select>
|
|
|
<el-input v-if="column.inputType === 'Textarea'" v-model="params[column.key]" type="textarea"
|
|
|
:placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
|
|
|
style="width: 100%">
|
|
|
</el-input>
|
|
|
<el-input-number v-if="column.inputType === 'InputNumber'" v-model="params[column.key]"
|
|
|
- :controls-position="column.config.controlsPosition" :placeholder="column.placeholder"
|
|
|
+ :max="handleIsRevise(params.status) ? params[column.key] : 'Infinity'"
|
|
|
+ :controls-position="column.controlsPosition" :placeholder="column.placeholder"
|
|
|
:clearable="column.clearable" :disabled="column.disabled" style="width: 100%">
|
|
|
</el-input-number>
|
|
|
<el-select v-if="column.inputType === 'Select'" v-model="params[column.key]" :disabled="column.disabled"
|
|
@@ -226,8 +271,8 @@ export default {
|
|
|
:value="item.value">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-if="column.inputType === 'TagSelect'" v-model="params[column.key]" multiple clearable collapse-tags
|
|
|
- :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
|
|
|
+ <el-select v-if="column.inputType === 'TagSelect'" v-model="params[column.key]" multiple clearable
|
|
|
+ collapse-tags :placeholder="column.placeholder" :clearable="column.clearable" :disabled="column.disabled"
|
|
|
style="width: 100%">
|
|
|
<template #prefix>
|
|
|
<el-icon class="el-icon-view" style="cursor: pointer" @click.stop="$message.info(234)"></el-icon>
|
|
@@ -242,8 +287,8 @@ export default {
|
|
|
<el-checkbox v-if="column.inputType === 'Checkbox'" v-model="params[column.key]" :disabled="column.disabled"
|
|
|
true-label="Y" false-label="N">
|
|
|
</el-checkbox>
|
|
|
- <el-upload v-if="column.inputType === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled" drag
|
|
|
- action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
|
|
|
+ <el-upload v-if="column.inputType === 'Upload'" :file-list="params[column.key]" :disabled="column.disabled"
|
|
|
+ drag action="https://sy.derom.com/document-center/fastdfs/upload" multiple>
|
|
|
<i class="el-icon-upload"></i>
|
|
|
<div class="el-upload__text">
|
|
|
将文件拖到此处,或<em>点击上传</em>
|
|
@@ -285,9 +330,9 @@ export default {
|
|
|
|
|
|
<dr-popover-select v-if="cColumn.inputType === 'PopoverSelect'" v-model="scope.row[cColumn.key]"
|
|
|
:source.sync="scope.row" :title="cColumn.title" :value-key="cColumn.valueKey"
|
|
|
- :type="cColumn.referName" :multiple="cColumn.multiple" :placeholder="cColumn.placeholder"
|
|
|
- :data-mapping="cColumn.dataMapping" :query-params="cColumn.queryParams(scope.row)" size="mini"
|
|
|
- @change="handleReferChange">
|
|
|
+ :disabled="cColumn.disabled" :type="cColumn.referName" :multiple="cColumn.multiple"
|
|
|
+ :placeholder="cColumn.placeholder" :data-mapping="cColumn.dataMapping"
|
|
|
+ :query-params="cColumn.queryParams(scope.row)" size="mini" @change="handleReferChange">
|
|
|
</dr-popover-select>
|
|
|
|
|
|
<el-select v-if="cColumn.inputType === 'Select'" v-model="scope.row[cColumn.key]" size="mini"
|
|
@@ -298,18 +343,24 @@ export default {
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
|
|
|
- <el-checkbox v-if="cColumn.inputType === 'Checkbox'" v-model="scope.row[cColumn.key]" true-label="Y"
|
|
|
- false-label="N">
|
|
|
+ <el-checkbox v-if="cColumn.inputType === 'Checkbox'" v-model="scope.row[cColumn.key]"
|
|
|
+ :disabled="cColumn.disabled" true-label="Y" false-label="N">
|
|
|
</el-checkbox>
|
|
|
<el-input-number v-if="cColumn.inputType === 'InputNumber'" v-model="scope.row[cColumn.key]"
|
|
|
- :controls-position="cColumn.config.controlsPosition" :placeholder="cColumn.placeholder"
|
|
|
+ :controls-position="cColumn.controlsPosition"
|
|
|
+ :max="handleIsRevise(params.status) ? scope.row[cColumn.key] : 'Infinity'"
|
|
|
+ @change="handleInputChange(scope.row, cColumn.key)" :placeholder="cColumn.placeholder"
|
|
|
:clearable="cColumn.clearable" :disabled="cColumn.disabled" :size="size" style="width: 100%">
|
|
|
</el-input-number>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ <!-- 修订:不可删除、增行
|
|
|
+ 编辑:自制:可删可增 -->
|
|
|
<el-table-column fixed="right" label="操作" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button @click.native.prevent="
|
|
|
+ <el-button v-if="params.source == '3'&& !handleIsRevise(params.status)" @click.native.prevent="
|
|
|
delTableRow(params[tabName], scope.$index)
|
|
|
" type="text" size="small">
|
|
|
删行
|
|
@@ -320,7 +371,7 @@ export default {
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
<el-row style="position: absolute; top: 20px; right: 20px">
|
|
|
- <el-button :size="size" @click="addTableRow(params[tabName])">增行</el-button>
|
|
|
+ <el-button v-if="params.source == '3'&& !handleIsRevise(params.status)" :size="size" @click="addTableRow(params[tabName])">增行</el-button>
|
|
|
</el-row>
|
|
|
</el-card>
|
|
|
</el-form>
|