update 混料订单编辑里加一个配方
This commit is contained in:
		@@ -32,9 +32,14 @@ export default function () {
 | 
				
			|||||||
      width: 90,
 | 
					      width: 90,
 | 
				
			||||||
      subcomponent: TableOperaionComponent,
 | 
					      subcomponent: TableOperaionComponent,
 | 
				
			||||||
      options: [
 | 
					      options: [
 | 
				
			||||||
        { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
					        // 只有 injectRow.task 为手动时,才允许编辑
 | 
				
			||||||
        { name: 'delete', icon: 'delete', enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
					        // { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
				
			||||||
      ] // 只有 injectRow.task 为手动时,才允许编辑
 | 
					        // { name: 'delete', icon: 'delete', enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        // 只有 injectRow.status 为 waiting 时,才允许编辑
 | 
				
			||||||
 | 
					        { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'status' in injectRow && injectRow.status === 'Waiting' } },
 | 
				
			||||||
 | 
					        { name: 'delete', icon: 'delete', emitFull: true, promptField: 'batchNo', enable: injectRow => { return 'status' in injectRow && injectRow.status === 'Waiting' } },
 | 
				
			||||||
 | 
					      ] 
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,7 @@
 | 
				
			|||||||
      :configs="dialogConfigs"
 | 
					      :configs="dialogConfigs"
 | 
				
			||||||
      @refreshDataList="getList"
 | 
					      @refreshDataList="getList"
 | 
				
			||||||
      />
 | 
					      />
 | 
				
			||||||
 | 
					      <!-- :bom-code="dialogBomCode" -->
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,6 +82,7 @@ export default {
 | 
				
			|||||||
      dataList: [],
 | 
					      dataList: [],
 | 
				
			||||||
      tableLoading: false,
 | 
					      tableLoading: false,
 | 
				
			||||||
      refreshLayoutKey: null,
 | 
					      refreshLayoutKey: null,
 | 
				
			||||||
 | 
					      dialogBomCode: "",
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  inject: ["urls"],
 | 
					  inject: ["urls"],
 | 
				
			||||||
@@ -209,13 +211,13 @@ export default {
 | 
				
			|||||||
          this.openDialog(data, true);
 | 
					          this.openDialog(data, true);
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        case 'view-batch': {
 | 
					        case "view-batch": {
 | 
				
			||||||
          this.$router.push({
 | 
					          this.$router.push({
 | 
				
			||||||
            name: toRouter,
 | 
					            name: toRouter,
 | 
				
			||||||
            query: {
 | 
					            query: {
 | 
				
			||||||
              id: data // 混料订单id
 | 
					              id: data, // 混料订单id
 | 
				
			||||||
            }
 | 
					            },
 | 
				
			||||||
          })
 | 
					          });
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        case "detach": {
 | 
					        case "detach": {
 | 
				
			||||||
@@ -302,6 +304,11 @@ export default {
 | 
				
			|||||||
    openDialog(row_data) {
 | 
					    openDialog(row_data) {
 | 
				
			||||||
      this.dialogVisible = true;
 | 
					      this.dialogVisible = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // if ("bomCode" in row_data) {
 | 
				
			||||||
 | 
					      //   const { bomCode } = row_data;
 | 
				
			||||||
 | 
					      //   this.dialogBomCode = bomCode;
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      this.$nextTick(() => {
 | 
					      this.$nextTick(() => {
 | 
				
			||||||
        this.$refs["edit-dialog"].init(row_data);
 | 
					        this.$refs["edit-dialog"].init(row_data);
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -85,7 +85,6 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
import { pick as __pick } from "@/utils/filters";
 | 
					import { pick as __pick } from "@/utils/filters";
 | 
				
			||||||
import Cookies from "js-cookie";
 | 
					import Cookies from "js-cookie";
 | 
				
			||||||
import moment from "moment";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  name: "DialogJustForm",
 | 
					  name: "DialogJustForm",
 | 
				
			||||||
@@ -102,16 +101,30 @@ export default {
 | 
				
			|||||||
      type: Boolean,
 | 
					      type: Boolean,
 | 
				
			||||||
      default: false,
 | 
					      default: false,
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    // 特殊需求
 | 
				
			||||||
 | 
					    // bomCode: {
 | 
				
			||||||
 | 
					    //   type: String,
 | 
				
			||||||
 | 
					    //   default: "x",
 | 
				
			||||||
 | 
					    // },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  inject: ["urls"],
 | 
					  inject: ["urls"],
 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    const dataForm = {};
 | 
					    const dataForm = {};
 | 
				
			||||||
 | 
					    const delayList = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.configs.form.rows.forEach((row) => {
 | 
					    this.configs.form.rows.forEach((row) => {
 | 
				
			||||||
      row.forEach((col) => {
 | 
					      row.forEach((col) => {
 | 
				
			||||||
        dataForm[col.prop] = col.default ?? null;
 | 
					        dataForm[col.prop] = col.default ?? null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (col.fetchData)
 | 
					        if (col.fetchData && typeof col.fetchData === "function") {
 | 
				
			||||||
 | 
					          if (col.delayRequest) delayList.push(col);
 | 
				
			||||||
 | 
					          // let doRequest = null;
 | 
				
			||||||
 | 
					          // if (col.fetchData.length) {
 | 
				
			||||||
 | 
					          //   console.log(`this.bomCode '${this.bomCode}'`);
 | 
				
			||||||
 | 
					          //   // 如果有参数
 | 
				
			||||||
 | 
					          //   doRequest = col.fetchData.bind(this.bomCode);
 | 
				
			||||||
 | 
					          // } else doRequest = col.fetchData;
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
            col.fetchData().then(({ data: res }) => {
 | 
					            col.fetchData().then(({ data: res }) => {
 | 
				
			||||||
              if (res.code === 0) {
 | 
					              if (res.code === 0) {
 | 
				
			||||||
                if ("list" in res.data) {
 | 
					                if ("list" in res.data) {
 | 
				
			||||||
@@ -139,6 +152,7 @@ export default {
 | 
				
			|||||||
                col.options.splice(0);
 | 
					                col.options.splice(0);
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
@@ -146,6 +160,7 @@ export default {
 | 
				
			|||||||
      dataForm,
 | 
					      dataForm,
 | 
				
			||||||
      detailMode: false,
 | 
					      detailMode: false,
 | 
				
			||||||
      baseDialogConfig: null,
 | 
					      baseDialogConfig: null,
 | 
				
			||||||
 | 
					      delayList,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  computed: {
 | 
					  computed: {
 | 
				
			||||||
@@ -200,18 +215,61 @@ export default {
 | 
				
			|||||||
      );
 | 
					      );
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    init({ id, code, blender }) {
 | 
					    init(row) {
 | 
				
			||||||
      // id 和 混料机 ID 混料订单号
 | 
					      this.loadingStatus = true;
 | 
				
			||||||
 | 
					      // id 和 混料机 ID 混料订单号 和 配方id
 | 
				
			||||||
 | 
					      const { id, code, blender, bomId } = row;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // console.log(" { id, code, blender } = row;", row);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (this.$refs.dataForm) {
 | 
					      if (this.$refs.dataForm) {
 | 
				
			||||||
        this.$refs.dataForm.clearValidate();
 | 
					        this.$refs.dataForm.clearValidate();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      this.delayList.forEach((col) => {
 | 
				
			||||||
 | 
					        // console.log("delay fetch", col);
 | 
				
			||||||
 | 
					        // 需要延迟获取异步数据的 col 配置
 | 
				
			||||||
 | 
					        if (col.fetchDataParam in row) {
 | 
				
			||||||
 | 
					          // console.log("delay row ", row, row[col.fetchDataParam]);
 | 
				
			||||||
 | 
					          col.fetchData(row[col.fetchDataParam]).then(({ data: res }) => {
 | 
				
			||||||
 | 
					            if (res.code === 0) {
 | 
				
			||||||
 | 
					              if ("list" in res.data) {
 | 
				
			||||||
 | 
					                this.$set(
 | 
				
			||||||
 | 
					                  col,
 | 
				
			||||||
 | 
					                  "options",
 | 
				
			||||||
 | 
					                  res.data.list.map((i) => ({
 | 
				
			||||||
 | 
					                    label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
 | 
				
			||||||
 | 
					                    value: col.optionValue ? i[col.optionValue] : i.id,
 | 
				
			||||||
 | 
					                  }))
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					              } else if (Array.isArray(res.data)) {
 | 
				
			||||||
 | 
					                this.$set(
 | 
				
			||||||
 | 
					                  col,
 | 
				
			||||||
 | 
					                  "options",
 | 
				
			||||||
 | 
					                  res.data.map((i) => ({
 | 
				
			||||||
 | 
					                    label: col.optionLabelProp ? i[col.optionLabelProp] : i.name,
 | 
				
			||||||
 | 
					                    value: col.optionValue ? i[col.optionValue] : i.id,
 | 
				
			||||||
 | 
					                  }))
 | 
				
			||||||
 | 
					                );
 | 
				
			||||||
 | 
					              } else {
 | 
				
			||||||
 | 
					                console.log("请检查返回的数据类型");
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              col.options.splice(0);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            this.loadingStatus = false;
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      this.detailMode = false;
 | 
					      this.detailMode = false;
 | 
				
			||||||
      this.$nextTick(() => {
 | 
					
 | 
				
			||||||
      this.dataForm.id = id || null;
 | 
					      this.dataForm.id = id || null;
 | 
				
			||||||
      this.dataForm.blender = blender;
 | 
					      this.dataForm.blender = blender;
 | 
				
			||||||
      this.dataForm.code = code;
 | 
					      this.dataForm.code = code;
 | 
				
			||||||
      });
 | 
					      this.dataForm.bomId = bomId;
 | 
				
			||||||
 | 
					      if (!this.delayList.length) this.loadingStatus = false;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /** handlers */
 | 
					    /** handlers */
 | 
				
			||||||
@@ -234,9 +292,10 @@ export default {
 | 
				
			|||||||
        if (passed) {
 | 
					        if (passed) {
 | 
				
			||||||
          this.loadingStatus = true;
 | 
					          this.loadingStatus = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          const { id, blender } = this.dataForm
 | 
					          const { id, blender, bomId } = this.dataForm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          return this.$http.get(this.urls.changeBlender, { params: { id, blender } })
 | 
					          return this.$http
 | 
				
			||||||
 | 
					            .get(this.urls.changeBlender, { params: { id, blender, bomId } })
 | 
				
			||||||
            .then(({ data: res }) => {
 | 
					            .then(({ data: res }) => {
 | 
				
			||||||
              this.loadingStatus = false;
 | 
					              this.loadingStatus = false;
 | 
				
			||||||
              if (res.code === 0) {
 | 
					              if (res.code === 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,8 +9,9 @@ export default function () {
 | 
				
			|||||||
    { width: 160, prop: "createTime", label: "添加时间", filter: timeFilter },
 | 
					    { width: 160, prop: "createTime", label: "添加时间", filter: timeFilter },
 | 
				
			||||||
    // { prop: "kilnCode", label: "窑炉" },
 | 
					    // { prop: "kilnCode", label: "窑炉" },
 | 
				
			||||||
    { width: 160, prop: "orderCode", label: "主订单号" },
 | 
					    { width: 160, prop: "orderCode", label: "主订单号" },
 | 
				
			||||||
    { prop: "orderCate", label: "主订单子号" },
 | 
					    { width: 60, prop: "orderCate", label: "子号" },
 | 
				
			||||||
    { width: 160, prop: "code", label: "混料订单号" },
 | 
					    { width: 160, prop: "code", label: "混料订单号" },
 | 
				
			||||||
 | 
					    { width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      prop: "statusDictValue",
 | 
					      prop: "statusDictValue",
 | 
				
			||||||
      label: "订单状态",
 | 
					      label: "订单状态",
 | 
				
			||||||
@@ -20,8 +21,7 @@ export default function () {
 | 
				
			|||||||
    // { prop: "shapeCode", label: "砖型" },
 | 
					    // { prop: "shapeCode", label: "砖型" },
 | 
				
			||||||
    { prop: "bomCode", label: "配方" },
 | 
					    { prop: "bomCode", label: "配方" },
 | 
				
			||||||
    { width: 120, prop: "qty", label: "混料总量 [kg]" },
 | 
					    { width: 120, prop: "qty", label: "混料总量 [kg]" },
 | 
				
			||||||
    { prop: "percent", label: "完成进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
 | 
					    { width: 60, prop: "ai", label: "版本" },
 | 
				
			||||||
    { prop: "ai", label: "版本号" },
 | 
					 | 
				
			||||||
    { prop: "blenderCode", label: "混料机" },
 | 
					    { prop: "blenderCode", label: "混料机" },
 | 
				
			||||||
    // { width: 120, prop: "badqty", label: "不合格数量" },
 | 
					    // { width: 120, prop: "badqty", label: "不合格数量" },
 | 
				
			||||||
    // { prop: "remark", label: "备注" },
 | 
					    // { prop: "remark", label: "备注" },
 | 
				
			||||||
@@ -96,6 +96,22 @@ export default function () {
 | 
				
			|||||||
            label: '混料订单号'
 | 
					            label: '混料订单号'
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
 | 
					        [
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            select: true,
 | 
				
			||||||
 | 
					            label: "配方",
 | 
				
			||||||
 | 
					            prop: "bomId",
 | 
				
			||||||
 | 
					            options: [],
 | 
				
			||||||
 | 
					            optionLabelProp: 'code',
 | 
				
			||||||
 | 
					            /** ====== */
 | 
				
			||||||
 | 
					            fetchData: (bomCode) => this.$http.get('/pms/bom/pageVersion', { params: { key: bomCode, limit: 999, page: 1 } }),
 | 
				
			||||||
 | 
					            fetchDataParam: 'bomCode',
 | 
				
			||||||
 | 
					            delayRequest: true,
 | 
				
			||||||
 | 
					            /** ====== */
 | 
				
			||||||
 | 
					            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
				
			||||||
 | 
					            elparams: { clearable: true, filterable: true, placeholder: "请选择配方" },
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
        [
 | 
					        [
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            select: true,
 | 
					            select: true,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,20 +20,6 @@ export default {
 | 
				
			|||||||
      urls: this.allUrls,
 | 
					      urls: this.allUrls,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  // urls: {
 | 
					 | 
				
			||||||
  // 	type: Object,
 | 
					 | 
				
			||||||
  // 	required: true,
 | 
					 | 
				
			||||||
  // 	default: () => ({
 | 
					 | 
				
			||||||
  // 		/** 列表 url **/ list: null,
 | 
					 | 
				
			||||||
  // 		/** 分页 url **/ page: null,
 | 
					 | 
				
			||||||
  // 		/** 编辑保存 url **/ edit: null,
 | 
					 | 
				
			||||||
  // 		/** 删除条目 url **/ delete: null,
 | 
					 | 
				
			||||||
  // 		/** 详情 url **/ detail: null,
 | 
					 | 
				
			||||||
  // 		/** 导出 url **/ export: null,
 | 
					 | 
				
			||||||
  // 		/** 导入 url **/ import: null,
 | 
					 | 
				
			||||||
  // 		/** 其他 url **/ other: null,
 | 
					 | 
				
			||||||
  // 	}),
 | 
					 | 
				
			||||||
  // },
 | 
					 | 
				
			||||||
  data() {
 | 
					  data() {
 | 
				
			||||||
    const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this);
 | 
					    const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this);
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user