update 混料订单编辑里加一个配方
This commit is contained in:
		@@ -32,9 +32,14 @@ export default function () {
 | 
			
		||||
      width: 90,
 | 
			
		||||
      subcomponent: TableOperaionComponent,
 | 
			
		||||
      options: [
 | 
			
		||||
        { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
			
		||||
        { name: 'delete', icon: 'delete', enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
			
		||||
      ] // 只有 injectRow.task 为手动时,才允许编辑
 | 
			
		||||
        // 只有 injectRow.task 为手动时,才允许编辑
 | 
			
		||||
        // { name:"edit", label: "编辑", icon: "edit-outline", enable: injectRow => { return 'task' in injectRow && injectRow.task === 'Manual' } },
 | 
			
		||||
        // { 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' } },
 | 
			
		||||
      ] 
 | 
			
		||||
    },
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,8 @@
 | 
			
		||||
      :dialog-visible.sync="dialogVisible"
 | 
			
		||||
      :configs="dialogConfigs"
 | 
			
		||||
      @refreshDataList="getList"
 | 
			
		||||
    />
 | 
			
		||||
      />
 | 
			
		||||
      <!-- :bom-code="dialogBomCode" -->
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -81,6 +82,7 @@ export default {
 | 
			
		||||
      dataList: [],
 | 
			
		||||
      tableLoading: false,
 | 
			
		||||
      refreshLayoutKey: null,
 | 
			
		||||
      dialogBomCode: "",
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  inject: ["urls"],
 | 
			
		||||
@@ -138,7 +140,7 @@ export default {
 | 
			
		||||
              } else this.dataList = res.data.list;
 | 
			
		||||
 | 
			
		||||
              this.totalPage = res.data.total;
 | 
			
		||||
            } 
 | 
			
		||||
            }
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: `${res.code}: ${res.msg}`,
 | 
			
		||||
@@ -209,13 +211,13 @@ export default {
 | 
			
		||||
          this.openDialog(data, true);
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
        case 'view-batch': {
 | 
			
		||||
        case "view-batch": {
 | 
			
		||||
          this.$router.push({
 | 
			
		||||
            name: toRouter,
 | 
			
		||||
            query: { 
 | 
			
		||||
              id: data // 混料订单id
 | 
			
		||||
            }
 | 
			
		||||
          })
 | 
			
		||||
            query: {
 | 
			
		||||
              id: data, // 混料订单id
 | 
			
		||||
            },
 | 
			
		||||
          });
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
        case "detach": {
 | 
			
		||||
@@ -302,6 +304,11 @@ export default {
 | 
			
		||||
    openDialog(row_data) {
 | 
			
		||||
      this.dialogVisible = true;
 | 
			
		||||
 | 
			
		||||
      // if ("bomCode" in row_data) {
 | 
			
		||||
      //   const { bomCode } = row_data;
 | 
			
		||||
      //   this.dialogBomCode = bomCode;
 | 
			
		||||
      // }
 | 
			
		||||
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs["edit-dialog"].init(row_data);
 | 
			
		||||
      });
 | 
			
		||||
 
 | 
			
		||||
@@ -85,7 +85,6 @@
 | 
			
		||||
<script>
 | 
			
		||||
import { pick as __pick } from "@/utils/filters";
 | 
			
		||||
import Cookies from "js-cookie";
 | 
			
		||||
import moment from "moment";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "DialogJustForm",
 | 
			
		||||
@@ -102,43 +101,58 @@ export default {
 | 
			
		||||
      type: Boolean,
 | 
			
		||||
      default: false,
 | 
			
		||||
    },
 | 
			
		||||
    // 特殊需求
 | 
			
		||||
    // bomCode: {
 | 
			
		||||
    //   type: String,
 | 
			
		||||
    //   default: "x",
 | 
			
		||||
    // },
 | 
			
		||||
  },
 | 
			
		||||
  inject: ["urls"],
 | 
			
		||||
  data() {
 | 
			
		||||
    const dataForm = {};
 | 
			
		||||
    const delayList = [];
 | 
			
		||||
 | 
			
		||||
    this.configs.form.rows.forEach((row) => {
 | 
			
		||||
      row.forEach((col) => {
 | 
			
		||||
        dataForm[col.prop] = col.default ?? null;
 | 
			
		||||
 | 
			
		||||
        if (col.fetchData)
 | 
			
		||||
          col.fetchData().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,
 | 
			
		||||
                  }))
 | 
			
		||||
                );
 | 
			
		||||
        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 }) => {
 | 
			
		||||
              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 {
 | 
			
		||||
                console.log("请检查返回的数据类型");
 | 
			
		||||
                col.options.splice(0);
 | 
			
		||||
              }
 | 
			
		||||
            } else {
 | 
			
		||||
              col.options.splice(0);
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
    return {
 | 
			
		||||
@@ -146,6 +160,7 @@ export default {
 | 
			
		||||
      dataForm,
 | 
			
		||||
      detailMode: false,
 | 
			
		||||
      baseDialogConfig: null,
 | 
			
		||||
      delayList,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
@@ -200,18 +215,61 @@ export default {
 | 
			
		||||
      );
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    init({ id, code, blender }) {
 | 
			
		||||
      // id 和 混料机 ID 混料订单号
 | 
			
		||||
    init(row) {
 | 
			
		||||
      this.loadingStatus = true;
 | 
			
		||||
      // id 和 混料机 ID 混料订单号 和 配方id
 | 
			
		||||
      const { id, code, blender, bomId } = row;
 | 
			
		||||
 | 
			
		||||
      // console.log(" { id, code, blender } = row;", row);
 | 
			
		||||
 | 
			
		||||
      if (this.$refs.dataForm) {
 | 
			
		||||
        this.$refs.dataForm.clearValidate();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.detailMode = false;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.dataForm.id = id || null;
 | 
			
		||||
        this.dataForm.blender = blender;
 | 
			
		||||
        this.dataForm.code = code;
 | 
			
		||||
      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.dataForm.id = id || null;
 | 
			
		||||
      this.dataForm.blender = blender;
 | 
			
		||||
      this.dataForm.code = code;
 | 
			
		||||
      this.dataForm.bomId = bomId;
 | 
			
		||||
      if (!this.delayList.length) this.loadingStatus = false;
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /** handlers */
 | 
			
		||||
@@ -234,9 +292,10 @@ export default {
 | 
			
		||||
        if (passed) {
 | 
			
		||||
          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 }) => {
 | 
			
		||||
              this.loadingStatus = false;
 | 
			
		||||
              if (res.code === 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,9 @@ export default function () {
 | 
			
		||||
    { width: 160, prop: "createTime", label: "添加时间", filter: timeFilter },
 | 
			
		||||
    // { prop: "kilnCode", label: "窑炉" },
 | 
			
		||||
    { width: 160, prop: "orderCode", label: "主订单号" },
 | 
			
		||||
    { prop: "orderCate", label: "主订单子号" },
 | 
			
		||||
    { width: 60, prop: "orderCate", label: "子号" },
 | 
			
		||||
    { width: 160, prop: "code", label: "混料订单号" },
 | 
			
		||||
    { width: 60, prop: "percent", label: "进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
 | 
			
		||||
    {
 | 
			
		||||
      prop: "statusDictValue",
 | 
			
		||||
      label: "订单状态",
 | 
			
		||||
@@ -20,8 +21,7 @@ export default function () {
 | 
			
		||||
    // { prop: "shapeCode", label: "砖型" },
 | 
			
		||||
    { prop: "bomCode", label: "配方" },
 | 
			
		||||
    { width: 120, prop: "qty", label: "混料总量 [kg]" },
 | 
			
		||||
    { prop: "percent", label: "完成进度", filter: (val) => (val !== null && val !== undefined ? val + " %" : "-") },
 | 
			
		||||
    { prop: "ai", label: "版本号" },
 | 
			
		||||
    { width: 60, prop: "ai", label: "版本" },
 | 
			
		||||
    { prop: "blenderCode", label: "混料机" },
 | 
			
		||||
    // { width: 120, prop: "badqty", label: "不合格数量" },
 | 
			
		||||
    // { prop: "remark", label: "备注" },
 | 
			
		||||
@@ -35,7 +35,7 @@ export default function () {
 | 
			
		||||
      width: 120,
 | 
			
		||||
      subcomponent: TableOperaionComponent,
 | 
			
		||||
      options: [
 | 
			
		||||
        { name:"edit", label: "编辑", emitFull: true, icon: 'edit-outline' },
 | 
			
		||||
        { name: "edit", label: "编辑", emitFull: true, icon: 'edit-outline' },
 | 
			
		||||
        { name: "view-batch", label: "查看批次", color: "#ff8000", toRouter: 'pms-blenderBatch', icon: 'document-copy' }, // 路由跳转至 pms-blenderBatch
 | 
			
		||||
        { name: "detach", label: "下发", color: "#099", icon: 'bottom-right' },
 | 
			
		||||
      ], // , url: '/pms/trans/pressDeli' }]
 | 
			
		||||
@@ -96,6 +96,22 @@ export default function () {
 | 
			
		||||
            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,
 | 
			
		||||
 
 | 
			
		||||
@@ -20,20 +20,6 @@ export default {
 | 
			
		||||
      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() {
 | 
			
		||||
    const { tableConfig, headFormConfigs, urls, dialogConfigs } = initConfig.call(this);
 | 
			
		||||
    return {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user