update order
This commit is contained in:
		@@ -2,11 +2,11 @@
 | 
			
		||||
  <el-dialog
 | 
			
		||||
    class="dialog-just-form"
 | 
			
		||||
    style="padding: 40px"
 | 
			
		||||
    :fullscreen="fullscreen"
 | 
			
		||||
    :visible="dialogVisible"
 | 
			
		||||
    @close="handleClose"
 | 
			
		||||
    :destroy-on-close="false"
 | 
			
		||||
    :close-on-click-modal="configs.clickModalToClose ?? true"
 | 
			
		||||
    :fullscreen="fullscreen"
 | 
			
		||||
  >
 | 
			
		||||
    <!-- title  -->
 | 
			
		||||
    <div slot="title" class="dialog-title" style="padding: 40px 40px 0">
 | 
			
		||||
@@ -48,19 +48,8 @@
 | 
			
		||||
              :disabled="detailMode"
 | 
			
		||||
            />
 | 
			
		||||
            <el-input v-if="col.textarea" type="textarea" v-model="dataForm[col.prop]" :disabled="detailMode" v-bind="col.elparams" />
 | 
			
		||||
            <el-upload
 | 
			
		||||
              v-if="col.upload"
 | 
			
		||||
              :key="'upload_' + Math.random()"
 | 
			
		||||
              :action="col.actionUrl"
 | 
			
		||||
              :file-list="col.fileList"
 | 
			
		||||
              :disabled="detailMode || !dataForm.id"
 | 
			
		||||
              :on-change="handleUploadChange"
 | 
			
		||||
              v-bind="col.elparams"
 | 
			
		||||
              :headers="uploadHeaders"
 | 
			
		||||
            >
 | 
			
		||||
              <el-button type="primary" size="small">选择文件</el-button>
 | 
			
		||||
              <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
 | 
			
		||||
            </el-upload>
 | 
			
		||||
            <el-date-picker v-if="col.datetime" v-model="dataForm[col.prop]" :disabled="detailMode" v-bind="col.elparams" />
 | 
			
		||||
 | 
			
		||||
            <div class="" v-if="col.component" style="margin: 42px 0 0">
 | 
			
		||||
              <!-- 下面这个 component 几乎是为 富文本 quill 定制的了... TODO:后续可能会根据业务需求创建新的版本  -->
 | 
			
		||||
              <component
 | 
			
		||||
@@ -69,6 +58,7 @@
 | 
			
		||||
                @update:modelValue="handleComponentModelUpdate(col.prop, $event)"
 | 
			
		||||
                :modelValue="dataForm[col.prop] ?? ''"
 | 
			
		||||
                :mode="detailMode ? 'detail' : dataForm.id ? 'edit' : 'create'"
 | 
			
		||||
                v-bind="col.bind"
 | 
			
		||||
              />
 | 
			
		||||
            </div>
 | 
			
		||||
            <!-- add more...  -->
 | 
			
		||||
@@ -78,7 +68,7 @@
 | 
			
		||||
    </el-form>
 | 
			
		||||
 | 
			
		||||
    <!-- footer  -->
 | 
			
		||||
    <div slot="footer">
 | 
			
		||||
    <div slot="footer" style="padding: 0 40px 0">
 | 
			
		||||
      <template v-for="(operate, index) in configs.form.operations">
 | 
			
		||||
        <el-button v-if="showButton(operate)" :key="'operation_' + index" :type="operate.type" @click="handleBtnClick(operate)">{{
 | 
			
		||||
          operate.label
 | 
			
		||||
@@ -92,9 +82,11 @@
 | 
			
		||||
<script>
 | 
			
		||||
import { pick as __pick } from "@/utils/filters";
 | 
			
		||||
import Cookies from "js-cookie";
 | 
			
		||||
import moment from "moment";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "DialogJustForm",
 | 
			
		||||
  components: {},
 | 
			
		||||
  props: {
 | 
			
		||||
    configs: {
 | 
			
		||||
      type: Object,
 | 
			
		||||
@@ -115,25 +107,44 @@ export default {
 | 
			
		||||
  inject: ["urls"],
 | 
			
		||||
  data() {
 | 
			
		||||
    const dataForm = {};
 | 
			
		||||
 | 
			
		||||
    this.configs.form.rows.forEach((row) => {
 | 
			
		||||
      row.forEach((col) => {
 | 
			
		||||
        dataForm[col.prop] = col.default ?? null;
 | 
			
		||||
 | 
			
		||||
        if (col.fetchData)
 | 
			
		||||
          col.fetchData().then(({ data: res }) => {
 | 
			
		||||
            console.log("[DialogJustForm fetchData -->]", res.data.list);
 | 
			
		||||
            if (res.code === 0 && res.data.list) {
 | 
			
		||||
              this.$set(
 | 
			
		||||
                col,
 | 
			
		||||
                "options",
 | 
			
		||||
                res.data.list.map((i) => ({
 | 
			
		||||
                  label: i.name,
 | 
			
		||||
                  value: col.optionValueProp && `${col.optionValueProp}` in i ? i[col.optionValueProp] : i.id,
 | 
			
		||||
                  label: col.optionLabel ? i[col.optionLabel] : i.name,
 | 
			
		||||
                  value: col.optionValue ? i[col.optionValue] : i.id,
 | 
			
		||||
                }))
 | 
			
		||||
              );
 | 
			
		||||
              // col.options = res.data.list;
 | 
			
		||||
            } else {
 | 
			
		||||
              col.options.splice(0);
 | 
			
		||||
            }
 | 
			
		||||
            // dataForm[col.prop] = col.default ?? null; // not perfect!
 | 
			
		||||
          });
 | 
			
		||||
        else if (col.fetchTreeData) {
 | 
			
		||||
          // 获取设备类型时触发的,用于前端构建属性结构,约定,parentId 为0时是顶级节点
 | 
			
		||||
          col.fetchTreeData().then(({ data: res }) => {
 | 
			
		||||
            console.log("[DialogJustForm fetchTreeData -->]", res.data);
 | 
			
		||||
            if (res.code === 0 && res.data) {
 | 
			
		||||
              if ("list" in res.data) {
 | 
			
		||||
                this.$set(col, "options", res.data.list);
 | 
			
		||||
              } else if (Array.isArray(res.data)) {
 | 
			
		||||
                this.$set(col, "options", res.data);
 | 
			
		||||
              }
 | 
			
		||||
            } else {
 | 
			
		||||
              col.options.splice(0);
 | 
			
		||||
            }
 | 
			
		||||
          });
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
    return {
 | 
			
		||||
@@ -143,6 +154,9 @@ export default {
 | 
			
		||||
      baseDialogConfig: null,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    // console.log('[dialog] created!!! wouldn\'t create again...')
 | 
			
		||||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    uploadHeaders() {
 | 
			
		||||
      return {
 | 
			
		||||
@@ -151,6 +165,25 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleFilelistUpdate(newFilelist) {
 | 
			
		||||
      // TODO: 直接访问 .files 可能不太合适
 | 
			
		||||
      this.dataForm.files = newFilelist.map((file) => ({
 | 
			
		||||
        id: file.id,
 | 
			
		||||
        name: file.name,
 | 
			
		||||
        url: file.url,
 | 
			
		||||
        typeCode: file.typeCode,
 | 
			
		||||
      }));
 | 
			
		||||
      // 更新请求
 | 
			
		||||
      if ("id" in this.dataForm && this.dataForm.id !== null && this.dataForm.id !== undefined) this.addOrUpdate("PUT");
 | 
			
		||||
      else
 | 
			
		||||
        this.$notify({
 | 
			
		||||
          title: "等待保存",
 | 
			
		||||
          message: "已添加文件,请手动点击保存!",
 | 
			
		||||
          type: "warning",
 | 
			
		||||
          duration: 2500,
 | 
			
		||||
        });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /** utitilities */
 | 
			
		||||
    showButton(operate) {
 | 
			
		||||
      const notDetailMode = !this.detailMode;
 | 
			
		||||
@@ -164,12 +197,11 @@ export default {
 | 
			
		||||
    resetForm(excludeId = false, immediate = false) {
 | 
			
		||||
      setTimeout(
 | 
			
		||||
        () => {
 | 
			
		||||
          console.log("[Dialog Just Form] clearing form...");
 | 
			
		||||
          Object.keys(this.dataForm).forEach((key) => {
 | 
			
		||||
            if (excludeId && key === "id") return;
 | 
			
		||||
            this.dataForm[key] = null;
 | 
			
		||||
          });
 | 
			
		||||
          console.log("[Dialog Just Form] cleared form...", this.dataForm);
 | 
			
		||||
          console.log("[DialogJustForm resetForm()] clearing form...");
 | 
			
		||||
          this.$refs.dataForm.clearValidate();
 | 
			
		||||
          this.$emit("dialog-closed"); // 触发父组件销毁自己
 | 
			
		||||
        },
 | 
			
		||||
@@ -178,16 +210,69 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /** init **/
 | 
			
		||||
    init(parentId, detailMode) {
 | 
			
		||||
      console.log("herer........", this.fullscreen);
 | 
			
		||||
    init(id, detailMode) {
 | 
			
		||||
      // console.log("[DialogJustForm] init", this.dataForm, id, detailMode);
 | 
			
		||||
      if (this.$refs.dataForm) {
 | 
			
		||||
        // console.log("[DialogJustForm] clearing form validation...");
 | 
			
		||||
        // 当不是首次渲染dialog的时候,一开始就清空验证信息,本组件的循环里只有一个 dataForm 所以只用取 [0] 即可
 | 
			
		||||
        this.$refs.dataForm.clearValidate();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.detailMode = detailMode ?? false;
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.dataForm.parentId = parentId || null;
 | 
			
		||||
        this.dataForm.id = id || null;
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          // 如果是编辑
 | 
			
		||||
          this.loadingStatus = true;
 | 
			
		||||
 | 
			
		||||
          // 获取基本信息
 | 
			
		||||
          this.$http
 | 
			
		||||
            .get(this.urls.base + `/${this.dataForm.id}`)
 | 
			
		||||
            .then(({ data: res }) => {
 | 
			
		||||
              if (res && res.code === 0) {
 | 
			
		||||
                this.dataForm = __pick(res.data, Object.keys(this.dataForm));
 | 
			
		||||
                /** 格式化文件上传列表 */
 | 
			
		||||
                if (Array.isArray(this.dataForm.files)) {
 | 
			
		||||
                  this.dataForm.files = this.dataForm.files.map((file) => ({
 | 
			
		||||
                    id: file.id,
 | 
			
		||||
                    name: file.fileUrl.split("/").pop(),
 | 
			
		||||
                    typeCode: file.typeCode,
 | 
			
		||||
                    url: file.fileUrl,
 | 
			
		||||
                  }));
 | 
			
		||||
                }
 | 
			
		||||
                // console.log("[DialogJustForm] init():", this.dataForm);
 | 
			
		||||
              } else {
 | 
			
		||||
                this.$message({
 | 
			
		||||
                  message: `${res.code}: ${res.msg}`,
 | 
			
		||||
                  type: "error",
 | 
			
		||||
                  duration: 1500,
 | 
			
		||||
                });
 | 
			
		||||
              }
 | 
			
		||||
              this.loadingStatus = false;
 | 
			
		||||
            })
 | 
			
		||||
            .catch((err) => {
 | 
			
		||||
              this.loadingStatus = false;
 | 
			
		||||
              this.$message({
 | 
			
		||||
                message: `${err}`,
 | 
			
		||||
                type: "error",
 | 
			
		||||
                duration: 1500,
 | 
			
		||||
              });
 | 
			
		||||
            });
 | 
			
		||||
        } else {
 | 
			
		||||
          // 如果不是编辑
 | 
			
		||||
          this.loadingStatus = false;
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /** handlers */
 | 
			
		||||
    handleSelectChange(col, eventValue) {
 | 
			
		||||
      // console.log("[dialog] select change: ", col, eventValue);
 | 
			
		||||
      this.$forceUpdate();
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    handleSwitchChange(val) {
 | 
			
		||||
      console.log("[dialog] switch change: ", val, this.dataForm);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    handleComponentModelUpdate(propName, { subject, payload: { data } }) {
 | 
			
		||||
@@ -195,6 +280,87 @@ export default {
 | 
			
		||||
      console.log("[DialogJustForm] handleComponentModelUpdate", this.dataForm[propName]);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    addOrUpdate(method = "POST") {
 | 
			
		||||
      if ("parentId" in this.dataForm) {
 | 
			
		||||
        console.log("[DialogJustForm parentId]", this.dataForm.parentId);
 | 
			
		||||
        // 对特殊的键做特殊处理,如 parentId 是一个 cascader,获取的值是 ["xxx"],后端只需要xxx
 | 
			
		||||
        const lastItem = this.dataForm.parentId.length - 1;
 | 
			
		||||
        this.dataForm.parentId = this.dataForm.parentId[lastItem];
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$refs.dataForm.validate((passed, result) => {
 | 
			
		||||
        if (passed) {
 | 
			
		||||
          this.loadingStatus = true;
 | 
			
		||||
 | 
			
		||||
          let httpPayload = null;
 | 
			
		||||
          /** 针对有文件上传选项的弹窗提供特殊的 payload */
 | 
			
		||||
          if (this.dataForm.files) {
 | 
			
		||||
            httpPayload = {
 | 
			
		||||
              ...this.dataForm,
 | 
			
		||||
              fileIds: this.dataForm.files.map((file) => file.id),
 | 
			
		||||
            };
 | 
			
		||||
          } else {
 | 
			
		||||
            httpPayload = this.dataForm;
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          /** 针对时间段设置 payload */
 | 
			
		||||
          if ("startTime" in this.dataForm && "endTime" in this.dataForm) {
 | 
			
		||||
            const { startTime, endTime } = this.dataForm;
 | 
			
		||||
            httpPayload = {
 | 
			
		||||
              ...httpPayload,
 | 
			
		||||
              startTime: startTime ? moment(startTime).format("YYYY-MM-DDTHH:mm:ss") : moment().format("YYYY-MM-DDTHH:mm:ss"),
 | 
			
		||||
              endTime: endTime ? moment(endTime).format("YYYY-MM-DDTHH:mm:ss") : moment().format("YYYY-MM-DDTHH:mm:ss"),
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          // /** 针对时间段设置 payload */
 | 
			
		||||
          // if ("updateTime" in this.dataForm) {
 | 
			
		||||
          //   const { updateTime } = this.dataForm;
 | 
			
		||||
          //   httpPayload = {
 | 
			
		||||
          //     ...httpPayload,
 | 
			
		||||
          //     updateTime: updateTime ? moment(updateTime).format("YYYY-MM-DDTHH:mm:ss") : moment().format("YYYY-MM-DDTHH:mm:ss"),
 | 
			
		||||
          //   };
 | 
			
		||||
          // }
 | 
			
		||||
          /** 针对时间段设置 payload */
 | 
			
		||||
          if ("deliveryTime" in this.dataForm) {
 | 
			
		||||
            const { deliveryTime } = this.dataForm;
 | 
			
		||||
            httpPayload = {
 | 
			
		||||
              ...httpPayload,
 | 
			
		||||
              deliveryTime: deliveryTime ? moment(deliveryTime).format("YYYY-MM-DDTHH:mm:ss") : null,
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
 | 
			
		||||
          /** 发送 */
 | 
			
		||||
          return this.$http({
 | 
			
		||||
            url: this.urls.base,
 | 
			
		||||
            method,
 | 
			
		||||
            data: httpPayload,
 | 
			
		||||
          })
 | 
			
		||||
            .then(({ data: res }) => {
 | 
			
		||||
              console.log("[add&update] res is: ", res);
 | 
			
		||||
              this.loadingStatus = false;
 | 
			
		||||
              if (res.code === 0) {
 | 
			
		||||
                this.$message.success(method === "POST" ? "添加成功" : "更新成功");
 | 
			
		||||
                this.$emit("refreshDataList");
 | 
			
		||||
                if (method === "POST") this.handleClose();
 | 
			
		||||
              } else {
 | 
			
		||||
                this.$message({
 | 
			
		||||
                  message: `${res.code}: ${res.msg}`,
 | 
			
		||||
                  type: "error",
 | 
			
		||||
                  duration: 2000,
 | 
			
		||||
                });
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
            .catch((errMsg) => {
 | 
			
		||||
              this.$message.error("参数错误:" + errMsg);
 | 
			
		||||
              if (this.loadingStatus) this.loadingStatus = false;
 | 
			
		||||
            });
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$message.error("请核查字段信息");
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    handleBtnClick(payload) {
 | 
			
		||||
      console.log("btn click payload: ", payload);
 | 
			
		||||
 | 
			
		||||
@@ -207,47 +373,19 @@ export default {
 | 
			
		||||
            this.resetForm(true, true); // true means exclude id, immediate execution
 | 
			
		||||
            break;
 | 
			
		||||
          case "add":
 | 
			
		||||
          case "update": {
 | 
			
		||||
            this.$refs.dataForm.validate((passed, result) => {
 | 
			
		||||
              if (passed) {
 | 
			
		||||
                // 如果通过验证
 | 
			
		||||
                this.loadingStatus = true;
 | 
			
		||||
                const method = payload.name === "add" ? "POST" : "PUT";
 | 
			
		||||
                this.$http({
 | 
			
		||||
                  url: this.urls.base,
 | 
			
		||||
                  method,
 | 
			
		||||
                  data: this.dataForm,
 | 
			
		||||
                })
 | 
			
		||||
                  .then(({ data: res }) => {
 | 
			
		||||
                    console.log("[add&update] res is: ", res);
 | 
			
		||||
                    this.loadingStatus = false;
 | 
			
		||||
                    if (res.code === 0) {
 | 
			
		||||
                      this.$message.success(payload.name === "add" ? "添加成功" : "更新成功");
 | 
			
		||||
                      this.$emit("refreshDataList");
 | 
			
		||||
                      this.handleClose();
 | 
			
		||||
          case "update":
 | 
			
		||||
            this.addOrUpdate(payload.name === "add" ? "POST" : "PUT");
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
                      this.$message({
 | 
			
		||||
                        message: `${res.code}: ${res.msg}`,
 | 
			
		||||
                        type: "error",
 | 
			
		||||
                        duration: 2000,
 | 
			
		||||
                      });
 | 
			
		||||
                    }
 | 
			
		||||
                  })
 | 
			
		||||
                  .catch((errMsg) => {
 | 
			
		||||
                    this.$message.error("参数错误:" + errMsg);
 | 
			
		||||
                    if (this.loadingStatus) this.loadingStatus = false;
 | 
			
		||||
                  });
 | 
			
		||||
              } else {
 | 
			
		||||
                // 没有通过验证
 | 
			
		||||
                // this.$message.error(JSON.stringify(result));
 | 
			
		||||
                this.$message.error("请核查字段信息");
 | 
			
		||||
              }
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        console.log("[x] 不是这么用的! 缺少name属性");
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    handleUploadChange(file, fileList) {
 | 
			
		||||
      console.log("[Upload] handleUploadChange...", file, fileList);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    handleClose() {
 | 
			
		||||
      this.resetForm();
 | 
			
		||||
      this.$emit("update:dialogVisible", false);
 | 
			
		||||
@@ -265,7 +403,8 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.el-select,
 | 
			
		||||
.el-cascader {
 | 
			
		||||
.el-cascader,
 | 
			
		||||
.el-date-editor {
 | 
			
		||||
  width: 100% !important;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,53 +5,53 @@ import { timeFilter, dictFilter } from "@/utils/filters";
 | 
			
		||||
 | 
			
		||||
function changeOrderSort(orderId, location) {
 | 
			
		||||
  /** this - vue instance, 0 - to top, 1 - up, 2 - down, 3 - to bottom */
 | 
			
		||||
  return this.$http.get('/pms/order/change', { params: { id: orderId, location } }).then(({ data: res }) => {
 | 
			
		||||
  return this.$http
 | 
			
		||||
    .get("/pms/order/change", { params: { id: orderId, location } })
 | 
			
		||||
    .then(({ data: res }) => {
 | 
			
		||||
      if (res.code === 0) {
 | 
			
		||||
    } else throw new Error(`${res.code}: ${res.msg}`)
 | 
			
		||||
  }).catch(err => {
 | 
			
		||||
      } else throw new Error(`${res.code}: ${res.msg}`);
 | 
			
		||||
    })
 | 
			
		||||
    .catch((err) => {
 | 
			
		||||
      this.$message({
 | 
			
		||||
        message: err,
 | 
			
		||||
      type: 'error',
 | 
			
		||||
      duration: 1500
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
        type: "error",
 | 
			
		||||
        duration: 1500,
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default function () {
 | 
			
		||||
 | 
			
		||||
  const operations = {
 | 
			
		||||
    'ongoing': [
 | 
			
		||||
    ongoing: [
 | 
			
		||||
      // { name: 'view-detail', label: '查看详情' },
 | 
			
		||||
      // { name: 'confirm-order', label: '确认', icon: 'success', showText: true },
 | 
			
		||||
      { name: 'end-order', label: '结束', icon: 'error', showText: true },
 | 
			
		||||
      { name: 'move-up', label: '上移', icon: 'caret-top', showText: true },
 | 
			
		||||
      { name: 'move-down', label: '下移', icon: 'caret-bottom', showText: true },
 | 
			
		||||
      { name: 'move-to-top', label: '至顶', icon: 'upload2', showText: true },
 | 
			
		||||
      { name: 'move-to-bottom', label: '至底', icon: 'download', showText: true },
 | 
			
		||||
      { name: 'destroy-order', label: '废除', icon: 'delete-solid', showText: true },
 | 
			
		||||
      { name: "end-order", label: "结束", icon: "error", showText: true },
 | 
			
		||||
      { name: "move-up", label: "上移", icon: "caret-top", showText: true },
 | 
			
		||||
      { name: "move-down", label: "下移", icon: "caret-bottom", showText: true },
 | 
			
		||||
      { name: "move-to-top", label: "至顶", icon: "upload2", showText: true },
 | 
			
		||||
      { name: "move-to-bottom", label: "至底", icon: "download", showText: true },
 | 
			
		||||
      { name: "destroy-order", label: "废除", icon: "delete-solid", showText: true },
 | 
			
		||||
    ],
 | 
			
		||||
    'pending': [
 | 
			
		||||
      'edit',
 | 
			
		||||
      { name: 'confirm-order', label: '确认订单', icon: 'success', showText: true },
 | 
			
		||||
      { name: 'move-up', label: '上移', icon: 'caret-top', showText: true },
 | 
			
		||||
      { name: 'move-down', label: '下移', icon: 'caret-bottom', showText: true },
 | 
			
		||||
      { name: 'move-to-top', label: '至顶', icon: 'upload2', showText: true },
 | 
			
		||||
      { name: 'move-to-bottom', label: '至底', icon: 'download', showText: true },
 | 
			
		||||
      { name: 'delete', emitFull: true, permission: '' }
 | 
			
		||||
    pending: [
 | 
			
		||||
      "edit",
 | 
			
		||||
      { name: "confirm-order", label: "确认订单", icon: "success", showText: true },
 | 
			
		||||
      { name: "move-up", label: "上移", icon: "caret-top", showText: true },
 | 
			
		||||
      { name: "move-down", label: "下移", icon: "caret-bottom", showText: true },
 | 
			
		||||
      { name: "move-to-top", label: "至顶", icon: "upload2", showText: true },
 | 
			
		||||
      { name: "move-to-bottom", label: "至底", icon: "download", showText: true },
 | 
			
		||||
      { name: "delete", emitFull: true, permission: "" },
 | 
			
		||||
    ],
 | 
			
		||||
    'finished': [
 | 
			
		||||
    finished: [
 | 
			
		||||
      // { name: 'view', label: '查看详情' }
 | 
			
		||||
      // { name: 'end-order', label: '结束订单', icon: 'error', showText: true },
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
    ],
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const genTableProps = (type /** ongoing, pending, finished */) =>
 | 
			
		||||
    [
 | 
			
		||||
      { width: 80, type: 'index', label: '序号', fixed: true },
 | 
			
		||||
      { width: 120, prop: "code", label: "订单号", fixed: 'left' },
 | 
			
		||||
  const genTableProps = (type /** ongoing, pending, finished */) => [
 | 
			
		||||
    { width: 80, type: "index", label: "序号", fixed: true },
 | 
			
		||||
    { width: 120, prop: "code", label: "订单号", fixed: "left" },
 | 
			
		||||
    { width: 120, prop: "createTime", label: "添加时间", filter: timeFilter },
 | 
			
		||||
      { width: 120, prop: "statusDictValue", label: "订单状态", filter: dictFilter('order_status') }, // 不可编辑
 | 
			
		||||
    { width: 120, prop: "statusDictValue", label: "订单状态", filter: dictFilter("order_status") }, // 不可编辑
 | 
			
		||||
    { width: 200, prop: "cate", label: "子订单号" },
 | 
			
		||||
    { width: 200, prop: "productCode", label: "物料编号" }, // select, filterable
 | 
			
		||||
    { width: 200, prop: "shapeCode", label: "砖型编号" }, // select, filterable
 | 
			
		||||
@@ -74,33 +74,35 @@ export default function () {
 | 
			
		||||
    { width: 120, prop: "specifications", label: "生产订单类型" },
 | 
			
		||||
    { width: 120, prop: "deliveryTime", label: "发货时间" },
 | 
			
		||||
    { width: 120, prop: "customerCode", label: "客户" },
 | 
			
		||||
      { width: 120, prop: "pcsKilnCar", label: "托盘码放砖数", },
 | 
			
		||||
    { width: 120, prop: "pcsKilnCar", label: "托盘码放砖数" },
 | 
			
		||||
    { prop: "description", label: "详情", subcomponent: TableTextComponent },
 | 
			
		||||
    { width: 200, prop: "remark", label: "备注" },
 | 
			
		||||
      type !== 'finished' ? {
 | 
			
		||||
    type !== "finished"
 | 
			
		||||
      ? {
 | 
			
		||||
          prop: "operations",
 | 
			
		||||
          name: "操作",
 | 
			
		||||
          fixed: "right",
 | 
			
		||||
          subcomponent: TableOperaionComponent,
 | 
			
		||||
          options: operations[type],
 | 
			
		||||
        width: operations[type].length * 64
 | 
			
		||||
      } : {}
 | 
			
		||||
          width: operations[type].length * 64,
 | 
			
		||||
        }
 | 
			
		||||
      : {},
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  const genHeadFormFields = type => ({
 | 
			
		||||
    'ongoing': [
 | 
			
		||||
  const genHeadFormFields = (type) =>
 | 
			
		||||
    ({
 | 
			
		||||
      ongoing: [
 | 
			
		||||
        {
 | 
			
		||||
        label: '订单号',
 | 
			
		||||
        prop: 'code',
 | 
			
		||||
          label: "订单号",
 | 
			
		||||
          prop: "code",
 | 
			
		||||
          input: true,
 | 
			
		||||
        default: { value: '' },
 | 
			
		||||
        bind: { placeholder: '请输入订单号' }
 | 
			
		||||
          default: { value: "" },
 | 
			
		||||
          bind: { placeholder: "请输入订单号" },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // 时间段
 | 
			
		||||
          timerange: true,
 | 
			
		||||
        prop: 'timerange',
 | 
			
		||||
          prop: "timerange",
 | 
			
		||||
          label: "时间段",
 | 
			
		||||
          bind: {
 | 
			
		||||
            placeholder: "选择日期时间",
 | 
			
		||||
@@ -117,12 +119,12 @@ export default function () {
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      ],
 | 
			
		||||
    'pending': [
 | 
			
		||||
      pending: [
 | 
			
		||||
        {
 | 
			
		||||
        label: '订单号',
 | 
			
		||||
        prop: 'code',
 | 
			
		||||
          label: "订单号",
 | 
			
		||||
          prop: "code",
 | 
			
		||||
          input: true,
 | 
			
		||||
        bind: { placeholder: '请输入订单号' }
 | 
			
		||||
          bind: { placeholder: "请输入订单号" },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // 查询
 | 
			
		||||
@@ -149,17 +151,16 @@ export default function () {
 | 
			
		||||
            name: "导入订单",
 | 
			
		||||
          },
 | 
			
		||||
          bind: {
 | 
			
		||||
          plain: true
 | 
			
		||||
        }
 | 
			
		||||
            plain: true,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
      ],
 | 
			
		||||
    'finished': [
 | 
			
		||||
      finished: [
 | 
			
		||||
        {
 | 
			
		||||
        label: '订单号',
 | 
			
		||||
        prop: 'code',
 | 
			
		||||
          label: "订单号",
 | 
			
		||||
          prop: "code",
 | 
			
		||||
          input: true,
 | 
			
		||||
        bind: { placeholder: '请输入订单号' }
 | 
			
		||||
          bind: { placeholder: "请输入订单号" },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          // 查询
 | 
			
		||||
@@ -168,43 +169,48 @@ export default function () {
 | 
			
		||||
            name: "查询",
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
    ]
 | 
			
		||||
  })[type]
 | 
			
		||||
 | 
			
		||||
      ],
 | 
			
		||||
    }[type]);
 | 
			
		||||
 | 
			
		||||
  const textOnlyComponent = {
 | 
			
		||||
    props: {
 | 
			
		||||
      modelValue: {
 | 
			
		||||
        type: String,
 | 
			
		||||
        required: true
 | 
			
		||||
      }
 | 
			
		||||
        type: String | Number,
 | 
			
		||||
        required: true,
 | 
			
		||||
      },
 | 
			
		||||
      useBuiltin: {
 | 
			
		||||
        type: Boolean,
 | 
			
		||||
        default: true,
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    data() {
 | 
			
		||||
      return {
 | 
			
		||||
        orderStatusMap: [
 | 
			
		||||
          '等待', '确认', '生产', '暂停', '结束', '接受', '拒绝'
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
        orderStatusMap: ["等待", "确认", "生产", "暂停", "结束", "接受", "拒绝"],
 | 
			
		||||
      };
 | 
			
		||||
    },
 | 
			
		||||
    methods: {},
 | 
			
		||||
    mounted() {
 | 
			
		||||
      console.log('this.modelValue', this.modelValue)
 | 
			
		||||
      console.log("this.modelValue", this.modelValue);
 | 
			
		||||
    },
 | 
			
		||||
    render: function (h) {
 | 
			
		||||
      return h('span', { style: { display: 'block', marginTop: '0' } }, this.orderStatusMap[this.modelValue] ?? '-')
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
      return h(
 | 
			
		||||
        "span",
 | 
			
		||||
        { style: { display: "block", marginTop: "0" } },
 | 
			
		||||
        this.useBuiltin ? this.orderStatusMap[this.modelValue] ?? "-" : this.modelValue.toString().trim() === "" ? "-" : this.modelValue.toString()
 | 
			
		||||
      );
 | 
			
		||||
    },
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const dictList = JSON.parse(localStorage.getItem("dictList"));
 | 
			
		||||
  const dialogConfigs = {
 | 
			
		||||
    form: {
 | 
			
		||||
      rows: [
 | 
			
		||||
        // 订单号
 | 
			
		||||
        // 订单子号 int
 | 
			
		||||
        // 订单状态
 | 
			
		||||
        // 生产订单类型 
 | 
			
		||||
        // 物料 - 产品 select fitler
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            label: "订单状态",
 | 
			
		||||
            prop: "statusDictValue",
 | 
			
		||||
            component: textOnlyComponent,
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "订单号",
 | 
			
		||||
@@ -212,22 +218,16 @@ export default function () {
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入订单号" },
 | 
			
		||||
          },
 | 
			
		||||
          {},
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "订单子号",
 | 
			
		||||
            prop: "cate",
 | 
			
		||||
            rules: [
 | 
			
		||||
              { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
              { type: 'number', message: "请输入正确的数字类型", trigger: "blur", transform: val => Number(val) },
 | 
			
		||||
              { type: "number", message: "请输入正确的数字类型", trigger: "blur", transform: (val) => Number(val) },
 | 
			
		||||
            ],
 | 
			
		||||
            elparams: { placeholder: "请输入订单子号" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            label: "订单状态",
 | 
			
		||||
            prop: "statusDictValue",
 | 
			
		||||
            component: textOnlyComponent
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "生产订单类型",
 | 
			
		||||
@@ -237,22 +237,32 @@ export default function () {
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "物料",
 | 
			
		||||
            prop: "productCode",
 | 
			
		||||
            label: "物料编号",
 | 
			
		||||
            prop: "productId",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/product/page', { params: { limit: 999, page: 1, key: '' } }),
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            // optionValue: 'code',
 | 
			
		||||
            // fetchedDataIdConvertTo: 'productId',
 | 
			
		||||
            // optionValue: 'id',
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/product/page", { params: { limit: 999, page: 1, key: "" } }),
 | 
			
		||||
            // label: "单位",
 | 
			
		||||
            // prop: "unitDictValue",
 | 
			
		||||
            // options: dictList["unit"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
 | 
			
		||||
            elparams: { placeholder: "请选择物料", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "包装代码",
 | 
			
		||||
            prop: "packTech",
 | 
			
		||||
            options: [],
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            fetchData: () => this.$http.post("/pms/equipmentTech/pageView", { limit: 999, page: 1, key: "", shape: "", wsId: 5 }),
 | 
			
		||||
            // label: "单位",
 | 
			
		||||
            // prop: "unitDictValue",
 | 
			
		||||
            // options: dictList["unit"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
 | 
			
		||||
            elparams: { placeholder: "请选择物料", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
        // 生产订单数 int 
 | 
			
		||||
        // 已生产数 int uneditable 
 | 
			
		||||
        // 托盘码放砖数
 | 
			
		||||
        // 包装代码 - 包装工艺 s f
 | 
			
		||||
        // addon
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
@@ -282,121 +292,103 @@ export default function () {
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入addon" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "包装代码",
 | 
			
		||||
            prop: "packTechCode",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.post('/pms/equipmentTech/pageView', { limit: 999, page: 1, key: '', shape: '', wsId: 5 }),
 | 
			
		||||
            // label: "单位",
 | 
			
		||||
            // prop: "unitDictValue",
 | 
			
		||||
            // options: dictList["unit"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
 | 
			
		||||
            elparams: { placeholder: "请选择物料", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // 砖型 select fitler
 | 
			
		||||
        // 牌号 select f
 | 
			
		||||
        // 压机号 - 设备 s f
 | 
			
		||||
        // 混料机号 - 设备 s f
 | 
			
		||||
        // 隧道窑号 - 设备 s f
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "砖型",
 | 
			
		||||
            prop: "shapeCode",
 | 
			
		||||
            prop: "shape",
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/shape/page', { params: { limit: 999, page: 1, key: '' } }),
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/shape/page", { params: { limit: 999, page: 1, key: "" } }),
 | 
			
		||||
            // label: "单位",
 | 
			
		||||
            // prop: "unitDictValue",
 | 
			
		||||
            // options: dictList["unit"].map((u) => ({ label: u.dictLabel, value: u.dictValue })),
 | 
			
		||||
            elparams: { placeholder: "请选择砖型", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "压机",
 | 
			
		||||
            prop: "press",
 | 
			
		||||
            options: [],
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/equipment/page", { params: { limit: 999, page: 1, name: "" } }),
 | 
			
		||||
            elparams: { placeholder: "请选择压机号", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "牌号",
 | 
			
		||||
            prop: "brand",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/bom/page', { params: { limit: 999, page: 1, key: '' } }),
 | 
			
		||||
            // optionLabel: '',
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/bom/page", { params: { limit: 999, page: 1, key: "" } }),
 | 
			
		||||
            elparams: { placeholder: "请选择牌号", filterable: true },
 | 
			
		||||
            // TODO: 选择后,需要带出一些数据
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "压机号",
 | 
			
		||||
            prop: "pressCode",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/equipment/page', { params: { limit: 999, page: 1, name: '' } }),
 | 
			
		||||
            elparams: { placeholder: "请选择压机号", filterable: true },
 | 
			
		||||
            // input: true,
 | 
			
		||||
            // select: true,
 | 
			
		||||
            label: "配方号代码",
 | 
			
		||||
            prop: "bomCode",
 | 
			
		||||
            // options: [],
 | 
			
		||||
            // optionLabel: 'code',
 | 
			
		||||
            // fetchData: () => this.$http.get("/pms/bom/page", { params: { limit: 999, page: 1, key: "" } }),
 | 
			
		||||
            // rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            // elparams: { placeholder: "请选择配方" },
 | 
			
		||||
            component: textOnlyComponent,
 | 
			
		||||
            bind: {
 | 
			
		||||
              useBuiltin: false,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            label: "版本号",
 | 
			
		||||
            prop: "ai",
 | 
			
		||||
            component: textOnlyComponent,
 | 
			
		||||
            bind: {
 | 
			
		||||
              useBuiltin: false,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "混料机号",
 | 
			
		||||
            prop: "blenderCode",
 | 
			
		||||
            prop: "blender",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/equipment/page', { params: { limit: 999, page: 1, name: '' } }),
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/equipment/page", { params: { limit: 999, page: 1, name: "" } }),
 | 
			
		||||
            elparams: { placeholder: "请选择混料机号", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "隧道窑号",
 | 
			
		||||
            prop: "kilnCode",
 | 
			
		||||
            prop: "kiln",
 | 
			
		||||
            options: [],
 | 
			
		||||
            fetchData: () => this.$http.get('/pms/equipment/page', { params: { limit: 999, page: 1, name: '' } }),
 | 
			
		||||
            optionLabel: "code",
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/equipment/page", { params: { limit: 999, page: 1, name: "" } }),
 | 
			
		||||
            elparams: { placeholder: "请选择隧道窑号", filterable: true },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
        // 烧成温度
 | 
			
		||||
        // 烧成时间
 | 
			
		||||
        // ai 随配方自动带出
 | 
			
		||||
        // 配方号代码 随配方自动带出
 | 
			
		||||
        // 物料号销售文本 随配方自动带出
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "烧成温度",
 | 
			
		||||
            label: "烧成温度 ℃",
 | 
			
		||||
            prop: "ktmp",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入烧成温度" },
 | 
			
		||||
          },
 | 
			
		||||
          // {
 | 
			
		||||
            //   input: true,
 | 
			
		||||
          //   label: "版本号",
 | 
			
		||||
          //   prop: "ai",
 | 
			
		||||
          //   rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
          //   elparams: { placeholder: "请输入版本号" },
 | 
			
		||||
          // },
 | 
			
		||||
        ],
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "烧成时间",
 | 
			
		||||
            label: "烧成时间 H",
 | 
			
		||||
            prop: "tt",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入烧成时间" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "版本号",
 | 
			
		||||
            prop: "ai",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入版本号" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "配方号代码",
 | 
			
		||||
            prop: "bomCode",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入配方号代码" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "物料号销售文本",
 | 
			
		||||
            prop: "shortDesc",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入物料号销售文本" },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
        
 | 
			
		||||
        // 销售订单号 
 | 
			
		||||
        // 销售订单item号 
 | 
			
		||||
        // 销售订单砖数 int 
 | 
			
		||||
        // 销售时间
 | 
			
		||||
        // 客户名
 | 
			
		||||
        [
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "销售订单号",
 | 
			
		||||
@@ -408,7 +400,7 @@ export default function () {
 | 
			
		||||
            input: true,
 | 
			
		||||
            label: "销售订单item号",
 | 
			
		||||
            prop: "saleOrderItem",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            // rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入销售订单item号" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
@@ -420,20 +412,39 @@ export default function () {
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            // time
 | 
			
		||||
            input: true,
 | 
			
		||||
            datetime: true,
 | 
			
		||||
            label: "销售时间",
 | 
			
		||||
            prop: "deliveryTime",
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入销售时间" },
 | 
			
		||||
            elparams: { placeholder: "请选择销售时间" },
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            input: true,
 | 
			
		||||
            select: true,
 | 
			
		||||
            label: "客户",
 | 
			
		||||
            prop: "customerCode",
 | 
			
		||||
            prop: "customerId",
 | 
			
		||||
            option: [],
 | 
			
		||||
            optionLabel: "name",
 | 
			
		||||
            fetchData: () => this.$http.get("/pms/customer/page", { params: { limit: 999, page: 1, name: "" } }),
 | 
			
		||||
            rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
            elparams: { placeholder: "请输入客户" },
 | 
			
		||||
            elparams: { placeholder: "请选择客户" },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
        [
 | 
			
		||||
          // {
 | 
			
		||||
          //   input: true,
 | 
			
		||||
          //   label: "物料号销售文本",
 | 
			
		||||
          //   prop: "shortDesc",
 | 
			
		||||
          //   rules: { required: true, message: "必填项不能为空", trigger: "blur" },
 | 
			
		||||
          //   elparams: { placeholder: "请输入物料号销售文本" },
 | 
			
		||||
          // },
 | 
			
		||||
          {
 | 
			
		||||
            label: "物料号销售文本",
 | 
			
		||||
            prop: "shortDesc",
 | 
			
		||||
            component: textOnlyComponent,
 | 
			
		||||
            bind: {
 | 
			
		||||
              useBuiltin: false,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
        // 备注
 | 
			
		||||
@@ -448,8 +459,8 @@ export default function () {
 | 
			
		||||
        // },
 | 
			
		||||
      ],
 | 
			
		||||
      operations: [
 | 
			
		||||
        { name: "add", label: "保存", type: "primary", permission: "pms:material:save", showOnEdit: false },
 | 
			
		||||
        { name: "update", label: "更新", type: "primary", permission: "pms:material:save", showOnEdit: true },
 | 
			
		||||
        { name: "add", label: "保存", type: "primary", permission: "", showOnEdit: false },
 | 
			
		||||
        { name: "update", label: "更新", type: "primary", permission: "", showOnEdit: true },
 | 
			
		||||
        { name: "reset", label: "重置", type: "warning", showAlways: true },
 | 
			
		||||
      ],
 | 
			
		||||
    },
 | 
			
		||||
@@ -458,19 +469,20 @@ export default function () {
 | 
			
		||||
  return {
 | 
			
		||||
    dialogConfigs,
 | 
			
		||||
    tableConfigs: {
 | 
			
		||||
      ongoingTable: genTableProps('ongoing'),
 | 
			
		||||
      pendingTable: genTableProps('pending'),
 | 
			
		||||
      finishedTable: genTableProps('finished'),
 | 
			
		||||
      ongoingTable: genTableProps("ongoing"),
 | 
			
		||||
      pendingTable: genTableProps("pending"),
 | 
			
		||||
      finishedTable: genTableProps("finished"),
 | 
			
		||||
    },
 | 
			
		||||
    headFormConfigs: {
 | 
			
		||||
      ongoingTableSearch: genHeadFormFields('ongoing'),
 | 
			
		||||
      pendingTableSearch: genHeadFormFields('pending'),
 | 
			
		||||
      finishedTableSearch: genHeadFormFields('finished')
 | 
			
		||||
      ongoingTableSearch: genHeadFormFields("ongoing"),
 | 
			
		||||
      pendingTableSearch: genHeadFormFields("pending"),
 | 
			
		||||
      finishedTableSearch: genHeadFormFields("finished"),
 | 
			
		||||
    },
 | 
			
		||||
    urls: {
 | 
			
		||||
      confirmedOrder: '/pms/order/pageCom',
 | 
			
		||||
      finishedOrder: '/pms/order/pageEnd',
 | 
			
		||||
      unConfirmedOrder: '/pms/order/pageUnCom',
 | 
			
		||||
      confirmedOrder: "/pms/order/pageCom",
 | 
			
		||||
      finishedOrder: "/pms/order/pageEnd",
 | 
			
		||||
      unConfirmedOrder: "/pms/order/pageUnCom",
 | 
			
		||||
      base: "/pms/order",
 | 
			
		||||
      // base: "/pms/material",
 | 
			
		||||
      // page: "/pms/material/page",
 | 
			
		||||
      // tree: "/pms/material/tree",
 | 
			
		||||
@@ -481,71 +493,69 @@ export default function () {
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  // const headFormFields = [
 | 
			
		||||
  //   {
 | 
			
		||||
  //     label: '订单号',
 | 
			
		||||
  //     prop: 'code',
 | 
			
		||||
  //     input: true,
 | 
			
		||||
  //     bind: { placeholder: '请输入订单号' }
 | 
			
		||||
  //   },
 | 
			
		||||
  //   // {
 | 
			
		||||
  //   //   label: '子订单号',
 | 
			
		||||
  //   //   prop: 'cate',
 | 
			
		||||
  //   //   input: true,
 | 
			
		||||
  //   //   bind: { placeholder: '请输入子订单号', rules: [{ type: 'number', message: '请输入整数', trigger: 'blur', transform: val => Number(val) }] }
 | 
			
		||||
  //   // },
 | 
			
		||||
  //   // {
 | 
			
		||||
  //   //   label: "配方",
 | 
			
		||||
  //   //   prop: "bomId",
 | 
			
		||||
  //   //   select: [],
 | 
			
		||||
  //   //   fn: () => this.$http.get('/pms/bom/page', { params: { key: '', limit: 999, page: 1 } }),
 | 
			
		||||
  //   //   bind: { placeholder: "请选择配方" },
 | 
			
		||||
  //   // },
 | 
			
		||||
  //   // {
 | 
			
		||||
  //   //   label: '砖型',
 | 
			
		||||
  //   //   prop: 'shapeId',
 | 
			
		||||
  //   //   select: [],
 | 
			
		||||
  //   //   fn: () => this.$http.get('/pms/shape/page', { params: { key: '', limit: 999, page: 1 } }),
 | 
			
		||||
  //   //   bind: { placeholder: "请选择砖型" },
 | 
			
		||||
  //   // },
 | 
			
		||||
  //   // {
 | 
			
		||||
  //   //   label: '工艺',
 | 
			
		||||
  //   //   prop: 'techId',
 | 
			
		||||
  //   //   select: [],
 | 
			
		||||
  //   //   fn: () => this.$http.post('/pms/equipmentTech/pageView', { key: '', shape: '', wsId: 0, limit: 999, page: 1 }),
 | 
			
		||||
  //   //   bind: { placeholder: "请选择砖型" },
 | 
			
		||||
  //   // },
 | 
			
		||||
  //   // {
 | 
			
		||||
  //   //   label: '订单状态',
 | 
			
		||||
  //   //   prop: 'types', // 0等待, 1确认, 2生产,3暂停, 4结束, 5接受, 6拒绝
 | 
			
		||||
  //   //   select: [
 | 
			
		||||
  //   //     {label: '等待', value: 0},
 | 
			
		||||
  //   //     {label: '确认', value: 1},
 | 
			
		||||
  //   //     {label: '生产', value: 2},
 | 
			
		||||
  //   //     {label: '暂停', value: 3},
 | 
			
		||||
  //   //     {label: '结束', value: 4},
 | 
			
		||||
  //   //     {label: '接受', value: 5},
 | 
			
		||||
  //   //     {label: '拒绝', value: 6},
 | 
			
		||||
  //   //   ],
 | 
			
		||||
  //   //   // fn: () => this.$http.post('/pms/equipmentTech/pageView', { key: '', shape: '', wsId: 0, limit: 999, page: 1 }),
 | 
			
		||||
  //   //   bind: { placeholder: "请选择订单状态" },
 | 
			
		||||
  //   // },
 | 
			
		||||
  //   {
 | 
			
		||||
  //     button: {
 | 
			
		||||
  //       type: "primary",
 | 
			
		||||
  //       name: "查询",
 | 
			
		||||
  //     },
 | 
			
		||||
  //   },
 | 
			
		||||
  //   {
 | 
			
		||||
  //     button: {
 | 
			
		||||
  //       type: "primary",
 | 
			
		||||
  //       name: "新增",
 | 
			
		||||
  //       permission: "",
 | 
			
		||||
  //     },
 | 
			
		||||
  //     bind: {
 | 
			
		||||
  //       plain: true,
 | 
			
		||||
  //     },
 | 
			
		||||
  //   },
 | 
			
		||||
  // ];
 | 
			
		||||
// const headFormFields = [
 | 
			
		||||
//   {
 | 
			
		||||
//     label: '订单号',
 | 
			
		||||
//     prop: 'code',
 | 
			
		||||
//     input: true,
 | 
			
		||||
//     bind: { placeholder: '请输入订单号' }
 | 
			
		||||
//   },
 | 
			
		||||
//   // {
 | 
			
		||||
//   //   label: '子订单号',
 | 
			
		||||
//   //   prop: 'cate',
 | 
			
		||||
//   //   input: true,
 | 
			
		||||
//   //   bind: { placeholder: '请输入子订单号', rules: [{ type: 'number', message: '请输入整数', trigger: 'blur', transform: val => Number(val) }] }
 | 
			
		||||
//   // },
 | 
			
		||||
//   // {
 | 
			
		||||
//   //   label: "配方",
 | 
			
		||||
//   //   prop: "bomId",
 | 
			
		||||
//   //   select: [],
 | 
			
		||||
//   //   fn: () => this.$http.get('/pms/bom/page', { params: { key: '', limit: 999, page: 1 } }),
 | 
			
		||||
//   //   bind: { placeholder: "请选择配方" },
 | 
			
		||||
//   // },
 | 
			
		||||
//   // {
 | 
			
		||||
//   //   label: '砖型',
 | 
			
		||||
//   //   prop: 'shapeId',
 | 
			
		||||
//   //   select: [],
 | 
			
		||||
//   //   fn: () => this.$http.get('/pms/shape/page', { params: { key: '', limit: 999, page: 1 } }),
 | 
			
		||||
//   //   bind: { placeholder: "请选择砖型" },
 | 
			
		||||
//   // },
 | 
			
		||||
//   // {
 | 
			
		||||
//   //   label: '工艺',
 | 
			
		||||
//   //   prop: 'techId',
 | 
			
		||||
//   //   select: [],
 | 
			
		||||
//   //   fn: () => this.$http.post('/pms/equipmentTech/pageView', { key: '', shape: '', wsId: 0, limit: 999, page: 1 }),
 | 
			
		||||
//   //   bind: { placeholder: "请选择砖型" },
 | 
			
		||||
//   // },
 | 
			
		||||
//   // {
 | 
			
		||||
//   //   label: '订单状态',
 | 
			
		||||
//   //   prop: 'types', // 0等待, 1确认, 2生产,3暂停, 4结束, 5接受, 6拒绝
 | 
			
		||||
//   //   select: [
 | 
			
		||||
//   //     {label: '等待', value: 0},
 | 
			
		||||
//   //     {label: '确认', value: 1},
 | 
			
		||||
//   //     {label: '生产', value: 2},
 | 
			
		||||
//   //     {label: '暂停', value: 3},
 | 
			
		||||
//   //     {label: '结束', value: 4},
 | 
			
		||||
//   //     {label: '接受', value: 5},
 | 
			
		||||
//   //     {label: '拒绝', value: 6},
 | 
			
		||||
//   //   ],
 | 
			
		||||
//   //   // fn: () => this.$http.post('/pms/equipmentTech/pageView', { key: '', shape: '', wsId: 0, limit: 999, page: 1 }),
 | 
			
		||||
//   //   bind: { placeholder: "请选择订单状态" },
 | 
			
		||||
//   // },
 | 
			
		||||
//   {
 | 
			
		||||
//     button: {
 | 
			
		||||
//       type: "primary",
 | 
			
		||||
//       name: "查询",
 | 
			
		||||
//     },
 | 
			
		||||
//   },
 | 
			
		||||
//   {
 | 
			
		||||
//     button: {
 | 
			
		||||
//       type: "primary",
 | 
			
		||||
//       name: "新增",
 | 
			
		||||
//       permission: "",
 | 
			
		||||
//     },
 | 
			
		||||
//     bind: {
 | 
			
		||||
//       plain: true,
 | 
			
		||||
//     },
 | 
			
		||||
//   },
 | 
			
		||||
// ];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user