|
|
@@ -158,6 +158,13 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-form>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ style="margin-bottom: 10px"
|
|
|
+ @click="add()"
|
|
|
+ >新增明细</el-button
|
|
|
+ >
|
|
|
<el-table :data="formData.list" border size="mini">
|
|
|
<el-table-column
|
|
|
label="源单编号"
|
|
|
@@ -179,7 +186,28 @@
|
|
|
prop="materialName"
|
|
|
width="150"
|
|
|
show-overflow-tooltip
|
|
|
- />
|
|
|
+ >
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-select
|
|
|
+ v-model="scope.row.materialName"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ reserve-keyword
|
|
|
+ placeholder="请选择物料名称"
|
|
|
+ :remote-method="remoteMaterialName"
|
|
|
+ :loading="loading"
|
|
|
+ @change="changeMaterialName"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in materialNameList"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.code + '-' + scope.$index"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column
|
|
|
label="客户编码"
|
|
|
align="center"
|
|
|
@@ -236,6 +264,23 @@
|
|
|
<el-input v-model="scope.row.remark" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ align="center"
|
|
|
+ fixed="right"
|
|
|
+ width="150px"
|
|
|
+ class-name="small-padding fixed-width"
|
|
|
+ >
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDelete(scope)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" :disabled="formLoading" @click="submitForm"
|
|
|
@@ -257,6 +302,7 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ materialNameList: [],
|
|
|
sourceOrderNoList: [],
|
|
|
businessDescribeList: [],
|
|
|
warehouseList: [],
|
|
|
@@ -345,6 +391,28 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
+ handleDelete(row) {
|
|
|
+ console.log(row);
|
|
|
+ this.formData.list.splice(row.$index, 1);
|
|
|
+ },
|
|
|
+ remoteMaterialName(query) {
|
|
|
+ if (query !== "") {
|
|
|
+ let that = this;
|
|
|
+ this.loading = true;
|
|
|
+ setTimeout(async () => {
|
|
|
+ this.loading = false;
|
|
|
+ let {
|
|
|
+ data: { list },
|
|
|
+ } = await InRequestApi.getMaterialPage({
|
|
|
+ name: query,
|
|
|
+ pageSize: 999,
|
|
|
+ });
|
|
|
+ this.materialNameList = list || [];
|
|
|
+ }, 200);
|
|
|
+ } else {
|
|
|
+ this.materialNameList = [];
|
|
|
+ }
|
|
|
+ },
|
|
|
remoteMethod(query) {
|
|
|
if (query !== "") {
|
|
|
let that = this;
|
|
|
@@ -354,6 +422,7 @@ export default {
|
|
|
let { data } = await InRequestApi.getSourceOrder({
|
|
|
businessType: that.formData.businessType,
|
|
|
sourceOrderNo: query,
|
|
|
+ pageSize: 999,
|
|
|
});
|
|
|
this.sourceOrderNoList = data || [];
|
|
|
}, 200);
|
|
|
@@ -361,6 +430,14 @@ export default {
|
|
|
this.sourceOrderNoList = [];
|
|
|
}
|
|
|
},
|
|
|
+ add() {
|
|
|
+ if (!this.formData.businessType) {
|
|
|
+ return this.$message.error("请先选择业务类型");
|
|
|
+ }
|
|
|
+ this.formData.list = this.formData.list || [];
|
|
|
+ this.formData.list.push({});
|
|
|
+ this.formData = { ...this.formData };
|
|
|
+ },
|
|
|
remoteWarehouse(query) {
|
|
|
if (query !== "") {
|
|
|
let that = this;
|
|
|
@@ -386,6 +463,16 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ changeMaterialName(value) {
|
|
|
+ let data = value.split("-");
|
|
|
+ this.materialNameList.map((v) => {
|
|
|
+ if (v.code == data[0]) {
|
|
|
+ v.materialNo = v.code;
|
|
|
+ v.materialName = v.name;
|
|
|
+ this.formData.list[data[1]] = v;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
changeBusinessDescribe(e) {
|
|
|
this.businessDescribeList.map((v) => {
|
|
|
if (v.label == e) {
|