Prechádzať zdrojové kódy

工序添加字段 添加报废流程

qinhb 8 mesiacov pred
rodič
commit
e665bf4e4d

+ 7 - 0
src/api/order/index.ts

@@ -228,6 +228,13 @@ export function lockWorkOrder(params: any) {
     data: params,
   });
 }
+export function frockState(params: any) {
+  return request({
+    url: "/api/v1/plan/prepare/frockState",
+    method: "post",
+    data: params,
+  });
+}
 export function prepareCheckInfo(workOrderCode: string): AxiosPromise<any> {
   return request({
     url: "/api/v1/plan/prepare/checkInfo/" + workOrderCode,

+ 10 - 2
src/views/base/craftManagement/process/index.vue

@@ -105,11 +105,11 @@ const importExcelData = () => {
 // 设置表格列或者其他自定义的option
 const switchOp = [
   {
-    label: "",
+    label: "",
     value: 0,
   },
   {
-    label: "",
+    label: "",
     value: 1,
   },
 ];
@@ -298,6 +298,14 @@ option.value = Object.assign(option.value, {
       value: 0,
     },
     {
+      label: "是否关键工序",
+      prop: "keyProcesses",
+      span: 8,
+      type: "switch",
+      dicData: switchOp,
+      value: 0,
+    },
+    {
       label: "是否禁用",
       prop: "enabled",
       hide: true,

+ 1 - 0
src/views/device/disable/index.vue

@@ -372,6 +372,7 @@ const rowSelectable = (row, index) => {
 
 onMounted(() => {
   // console.log("crudRef", crudRef)
+  search.value.tag = "0"
   dataList();
 });
 const ctableRef = ref(null);

+ 347 - 0
src/views/device/scrap/components/proWorkOrderExcel.vue

@@ -0,0 +1,347 @@
+<template>
+  <div class="dialogBody">
+    <!-- 生产随工单 -->
+    <div class="exView" :key="excelKey1">
+      <ExcelView
+        ref="excelViewRef"
+        :option="options"
+        @confirm="confirm"
+        v-model:data="exceldata"
+        :checkStatus="true"
+        :verifications="setting"
+      />
+    </div>
+    <div class="btns" v-if="options.edit !== false">
+      <!-- <el-button class="btn" type="success" @click="submit">确 定 </el-button>
+      <el-button class="btn" type="info" @click="cancel">取 消 </el-button> -->
+    </div>
+    <div class="btns" v-else>
+      <el-button class="btn" type="info" @click="cancel">返 回 </el-button>
+    </div>
+  </div>
+</template>
+<script setup lang="ts">
+import { ref } from "vue";
+import { updateProExcel } from "@/api/excel/index.ts";
+import ExcelView from "@/components/ExcelView/index.vue";
+const setting = ref([]);
+const props = defineProps({
+  data: {
+    type: Object,
+  },
+});
+const rowData = ref({});
+const emits = defineEmits(["update:modelValue", "close", "refresh"]);
+const excelKey1 = ref(false);
+const submit = async () => {
+  //@ts-ignore
+  excelViewRef.value.confirm();
+  const { data, code } = await updateProExcel({
+    excelData: JSON.stringify(exceldata.value),
+    id: rowData.value.id,
+  });
+  if (code == "200") {
+    ElMessage.success("修改成功!");
+    cancel();
+  }
+};
+const cancel = () => {
+  excelKey1.value = !excelKey1.value;
+  emits("close");
+};
+// 存放操作表格相关业务代码
+const useAddTemplateHook = () => {
+  //excelView 组件实例
+  const excelViewRef = ref(null);
+  //表格配置项
+  const options = ref({
+    //头部操作区域
+    opreaState: true,
+    //导入按钮展示
+    in: false,
+    //导出按钮展示
+    out: true,
+    print: true,
+    //编辑状态 false:为查看状态
+    edit: true,
+    //当前操作表格名称
+    inName: "",
+    opreaTitle: false,
+  });
+  //双向绑定表格data变量
+  const exceldata = ref(null);
+  //控制表格组件展示界面变量(包括表格展示页面和操作页面)
+  const excelStatus = ref(true);
+
+  //获取组件内实时数据赋值到外层
+  const confirm = (data: any) => {
+    exceldata.value = data;
+  };
+  return {
+    excelStatus,
+    options,
+    confirm,
+    exceldata,
+    excelViewRef,
+  };
+};
+const { options, confirm, exceldata, excelViewRef } = useAddTemplateHook();
+const useFormHook = () => {
+  //KEY告知组件刷新
+  const excelKey = ref(1);
+  //表单data
+  const formVlaue = reactive({ formType: null, formName: null, state: null });
+  //表单是否为编辑状态变量
+  const operaEditStatus = ref(false);
+  //选中的行id
+  const selectId = ref(null);
+  //表单ref实例
+  const formRef = ref(null);
+  //表单校验规则
+  const rules = reactive({
+    formName: [
+      {
+        required: true,
+        trigger: "blur",
+      },
+    ],
+    formType: [
+      {
+        required: true,
+        trigger: "blur",
+      },
+    ],
+    state: [
+      {
+        required: true,
+        trigger: "blur",
+      },
+    ],
+  });
+  //新增模版
+  const submitForm = async (formEl: any) => {
+    //@ts-ignore;
+    excelViewRef.value.confirm();
+    if (exceldata.value == null) return ElMessage.error("请提供表格数据!");
+    if (!formEl) return;
+    await formEl.validate(async (valid: any, fields: any) => {
+      if (valid) {
+        const { data, code } = await addExcel({
+          ...formVlaue,
+          excelData: exceldata.value,
+        });
+        if (code == "200") {
+          ElMessage.success("添加成功!");
+          resetData();
+          dataEditList();
+          editTep(data);
+        }
+      }
+    });
+  };
+  //更新行内信息
+  const updateExForm = async (formEl: any) => {
+    //@ts-ignore;
+    excelViewRef.value.saveCellData();
+    //@ts-ignore;
+    excelViewRef.value.confirm();
+    if (exceldata.value == null) return ElMessage.error("请提供表格数据!");
+    if (!formEl) return;
+    await formEl.validate(async (valid: any, fields: any) => {
+      if (valid) {
+        const { data, code } = await updateExcel({
+          ...formVlaue,
+          excelData: exceldata.value,
+          id: selectId.value,
+          settings: settings.value,
+        });
+        if (code == "200") {
+          ElMessage.success("修改成功!");
+          resetData();
+          dataEditList();
+        }
+      }
+    });
+  };
+  //表达数据重置
+  const resetForm = (formEl: any) => {
+    if (!formEl) return;
+    formEl.resetFields();
+  };
+  return {
+    formVlaue,
+    formRef,
+    rules,
+    selectId,
+    excelKey,
+    operaEditStatus,
+    submitForm,
+    resetForm,
+    updateExForm,
+  };
+};
+
+const {
+  formVlaue,
+  formRef,
+  rules,
+  selectId,
+  excelKey,
+  operaEditStatus,
+  submitForm,
+  resetForm,
+  updateExForm,
+} = useFormHook();
+//表格新增 分页
+const useAddFormHook = () => {
+  const formRef1 = ref(null);
+  const settings = ref([]);
+  const searchForm = ref({
+    pageNo: 1,
+    pageSize: 5,
+    totalPages: 0,
+  });
+  const addForm = ref({
+    paramName: "",
+    position: "",
+  });
+  const addPage = () => {
+    searchForm.value.pageNo = searchForm.value.pageNo + 1;
+    getSettingData();
+  };
+  const deletePage = () => {
+    searchForm.value.pageNo = searchForm.value.pageNo - 1;
+    getSettingData();
+  };
+  const getSettingData = async () => {
+    const { data } = await getSettingsData({
+      excelFormId: selectId.value,
+      ...searchForm.value,
+    });
+    settings.value = data.records;
+    if (settings.value.length == 0 && searchForm.value.pageNo > 1) {
+      deletePage();
+    }
+    searchForm.value.totalPages = data.totalPages;
+  };
+  const addSettings = async () => {
+    const { data, code } = await addSettingsData({
+      excelFormId: selectId.value,
+      ...addForm.value,
+    });
+    if (code == "200") {
+      ElMessage.success("添加成功");
+      resetAddForm();
+      getSettingData();
+    }
+  };
+  const deleteSettings = async (id: any) => {
+    const { data, code } = await deleteSettingsData({ id: id });
+    if (code == "200") {
+      ElMessage.success("删除成功");
+      getSettingData();
+    }
+  };
+
+  const resetAddForm = () => {
+    addForm.value = {
+      paramName: "",
+      position: "",
+    };
+    searchForm.value = {
+      pageNo: 1,
+      pageSize: 5,
+      totalPages: 0,
+    };
+    settings.value = [];
+  };
+  const creatAddForm = async () => {
+    await formRef1.value.validate(async (valid: any, fields: any) => {
+      if (valid) {
+        addSettings();
+      }
+    });
+  };
+  const addRules = reactive({
+    paramName: [
+      {
+        required: true,
+        trigger: "blur",
+      },
+    ],
+    position: [
+      {
+        required: true,
+        trigger: "blur",
+      },
+    ],
+  });
+  return {
+    formRef1,
+    addForm,
+    searchForm,
+    settings,
+    addRules,
+    creatAddForm,
+    resetAddForm,
+    getSettingData,
+    addSettings,
+    addPage,
+    deleteSettings,
+    deletePage,
+  };
+};
+
+const {
+  formRef1,
+  addForm,
+  searchForm,
+  settings,
+  addRules,
+  creatAddForm,
+  deletePage,
+  addPage,
+  resetAddForm,
+  getSettingData,
+  deleteSettings,
+} = useAddFormHook();
+watch(
+  () => props.data,
+  () => {
+    //@ts-ignore
+    rowData.value = props.data;
+    exceldata.value = JSON.parse(rowData.value.excelData);
+    excelKey1.value = !excelKey1.value;
+    if (rowData.value.lookStatus == true) {
+      options.value.edit = false;
+    }
+    setting.value = rowData.value.settings;
+  },
+  { immediate: true }
+);
+</script>
+<style lang="scss" scoped>
+.dialogBody {
+  width: 1560px;
+  height: 560px;
+  display: flex;
+  .exView {
+    width: 1330px;
+    height: 560px;
+    display: flex;
+    position: relative;
+  }
+  .btns {
+    width: 200px;
+    height: 560px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding: 40px 0 0 20px;
+    .btn {
+      width: 100%;
+      margin: 10px;
+    }
+  }
+}
+</style>

+ 599 - 0
src/views/device/scrap/index.vue

@@ -0,0 +1,599 @@
+<template>
+  <div class="mainContentBox">
+    <avue-crud
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
+    >
+      <template #menu-left="{ size }">
+        <el-button
+          :disabled="toDeleteIds.length < 1"
+          type="danger"
+          icon="el-icon-delete"
+          :size="size"
+          @click="multipleDelete"
+          >删除</el-button
+        >
+      </template>
+      <template #menu="{ size, row, index }">
+        <el-button
+          @click="doEdit(row, index)"
+          icon="el-icon-edit"
+          text
+          type="primary"
+          :size="size"
+          >编辑</el-button
+        >
+        <el-button
+          @click="maintenance(row)"
+          icon="el-icon-check"
+          text
+          v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.disable_process]"
+          type="primary"
+          :size="size"
+          >流程</el-button
+        >
+        <el-button
+          v-if="row.state === 0"
+          @click="deleteRow(row)"
+          icon="el-icon-delete"
+          type="danger"
+          size="small"
+          >删除</el-button
+        >
+        <el-button
+          icon="el-icon-setting"
+          text
+          @click="showProExcel('153')"
+          type="primary"
+          >表格填充</el-button
+        >
+      </template>
+    </avue-crud>
+    <el-dialog
+      v-model="workOderShow"
+      :title="updateTitle"
+      @close="workOderShow = false"
+      width="1600"
+    >
+      <proWorkOrderExcel :data="ExDataObj" @close="closeShow" />
+    </el-dialog>
+    <el-dialog
+      v-model="dialog1.visible"
+      :title="dialog1.title"
+      width="750px"
+      height="80%"
+      @close="dialog1.visible = false"
+    >
+      <el-timeline style="max-width: 500px; margin-left: 100px">
+        <el-timeline-item center type="success" placement="top">
+          <el-card>
+            <h4>设备报废申请</h4>
+            <p>统一编码: {{ maintenanceInfo.deviceNo }}</p>
+            <p>设备名称: {{ maintenanceInfo.deviceName }}</p>
+            <p>使用年限: {{ maintenanceInfo.deviceLife }}</p>
+            <p>报废时间: {{ maintenanceInfo.disableTime }}</p>
+
+            <!--            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>-->
+            <p>报废理由: {{ maintenanceInfo.remark }}</p>
+            <p>申请人员: {{ maintenanceInfo.creator }}</p>
+            <p>申请时间: {{ maintenanceInfo.created }}</p>
+          </el-card>
+        </el-timeline-item>
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 0
+              ? 'primary'
+              : maintenanceInfo.state === 0
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>使用经办人</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser
+                  ? maintenanceInfo.auditResult === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>使用经办人</h4>
+            <el-form
+              ref="maintenanceInfoForm"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditUser"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditResult"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 0"
+                  @click="maintenanceSubmit"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 2
+              ? 'primary'
+              : maintenanceInfo.state < 2
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>使用部门负责人</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser1 }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser1
+                  ? maintenanceInfo.auditResult1 === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime1 }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>使用部门负责人</h4>
+            <el-form
+              ref="maintenanceInfoForm1"
+              v-if="maintenanceInfo.state >= 2"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion1">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 2"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion1"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser1">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 2"
+                  v-model="maintenanceInfo.auditUser1"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 2"
+                  v-model="maintenanceInfo.auditResult1"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 2"
+                  @click="maintenanceSubmit1"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 4
+              ? 'primary'
+              : maintenanceInfo.state < 4
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>科研生产部</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser1 }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser1
+                  ? maintenanceInfo.auditResult1 === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime1 }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>科研生产部</h4>
+            <el-form
+              ref="maintenanceInfoForm2"
+              v-if="maintenanceInfo.state >= 4"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion2">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 4"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion2"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser2">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 4"
+                  v-model="maintenanceInfo.auditUser2"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 4"
+                  v-model="maintenanceInfo.auditResult2"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 4"
+                  @click="maintenanceSubmit2"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </el-dialog>
+  </div>
+  <CommonTable
+    ref="ctableRef"
+    tableTitle="设备选择"
+    tableType="DEVICE"
+    @selected-sure="onSelectedFinish"
+  />
+</template>
+<script setup>
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
+import { disableAudit } from "@/api/device";
+import { getProExcel } from "@/api/excel";
+import proWorkOrderExcel from "./components/proWorkOrderExcel.vue";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+const ExDataObj = ref({});
+const workOderShow = ref(false);
+const closeShow = () => {
+  workOderShow.value = false;
+};
+const showProExcel = async (id) => {
+  const { data, code } = await getProExcel(id);
+  if (code == "200") {
+    ExDataObj.value = data;
+    workOderShow.value = true;
+  } else {
+    ExDataObj.value = {};
+    workOderShow.value = false;
+  }
+};
+const dialog1 = reactive({
+  title: "设备报废申请",
+  visible: false,
+});
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
+const doEdit = (row, index) => {
+  row.deviceName2 = row.deviceName;
+  crudRef.value && crudRef.value.rowEdit(row, index);
+};
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/device/disable",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+
+const maintenanceInfoForm = ref("maintenanceInfoForm");
+const maintenanceInfoForm1 = ref("maintenanceInfoForm1");
+const maintenanceInfoForm2 = ref("maintenanceInfoForm2");
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+
+const rowSelectable = (row, index) => {
+  return row.state === 0;
+};
+
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  search.value.tag = "1"
+  dataList();
+});
+const ctableRef = ref(null);
+const onSelectedFinish = (selectedValue) => {
+  form.value.deviceName = selectedValue.deviceName;
+  form.value.deviceName2 = selectedValue.deviceName;
+  form.value.deviceNo = selectedValue.deviceNo;
+  form.value.specifications = selectedValue.specifications;
+  form.value.manufacturer = selectedValue.brand;
+  form.value.originalValue = selectedValue.originalValue;
+};
+const maintenanceInfo = ref({});
+const maintenance = (row) => {
+  maintenanceInfo.value = row;
+  if (null == maintenanceInfo.value.auditResult) {
+    maintenanceInfo.value.auditResult = 0;
+  }
+  if (null == maintenanceInfo.value.auditResult1) {
+    maintenanceInfo.value.auditResult1 = 0;
+  }
+  if (null == maintenanceInfo.value.auditResult2) {
+    maintenanceInfo.value.auditResult2 = 0;
+  }
+  dialog1.visible = true;
+};
+const maintenanceSubmit = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
+
+const maintenanceSubmit1 = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult1;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser1;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
+
+const maintenanceSubmit2 = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult2;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser2;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  delBtn: false,
+  editBtn: false,
+  selectable: rowSelectable,
+  column: [
+    {
+      label: "名称",
+      prop: "deviceName",
+      search: true,
+      overHidden: true,
+      editDisplay: false,
+      addDisplay: false,
+      rules: [
+        {
+          required: true,
+          message: "请输入名称",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "名称",
+      prop: "deviceName2",
+      overHidden: true,
+      hide: true,
+      viewDisplay: false,
+      rules: [
+        {
+          required: true,
+          message: "请输入名称",
+          trigger: "blur",
+        },
+      ],
+      click: () => {
+        ctableRef.value.startSelect();
+      },
+    },
+    {
+      label: "统一编码",
+      prop: "deviceNo",
+      search: true,
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "型号",
+      prop: "specifications",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "使用年限",
+      prop: "deviceLife",
+      overHidden: true,
+    },
+    {
+      label: "厂家",
+      prop: "manufacturer",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "净值",
+      prop: "netWorth",
+      overHidden: true,
+    },
+    {
+      label: "原值",
+      prop: "originalValue",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "报废时间",
+      prop: "disableTime",
+      type: "date",
+      width: 100,
+      overHidden: true,
+      format: "YYYY-MM-DD", //前端展示格式
+      valueFormat: "YYYY-MM-DD", //设置后端接收的日期格式
+      rules: [
+        {
+          required: true,
+          message: "请选择报废日期",
+          trigger: "trigger",
+        },
+      ],
+    },
+    {
+      label: "报废理由",
+      prop: "remark",
+      span: 24,
+      type: "textarea",
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请输入报废理由",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "申请人",
+      prop: "creator",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "申请时间",
+      prop: "created",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "类型",
+      prop: "tag",
+      overHidden: true,
+      display: false,
+      hide: true,
+      value: "1"
+    },
+    {
+      label: "状态",
+      prop: "state",
+      display: false,
+      overHidden: true,
+      width: 160,
+      type: "select",
+      dicData: [
+        { label: "待使用部门经办人审核", value: 0 },
+        { label: "驳回", value: 1 },
+        { label: "待使用部门负责人审核", value: 2 },
+        { label: "驳回", value: 3 },
+        { label: "待科研生产部审核", value: 4 },
+        { label: "驳回", value: 5 },
+        { label: "已完成", value: 6 },
+      ],
+    },
+  ],
+});
+</script>

+ 37 - 1
src/views/plan/prepare/index.vue

@@ -47,11 +47,20 @@
         <el-button
             type="primary"
             link
+            v-if="row.frockState === '0'"
+            size="small"
+            @click="frockStateChange(row)"
+        ><i-ep-edit />工装齐套
+        </el-button>
+        <el-button
+            type="primary"
+            link
             v-if="row.deviceState === '0' || row.bom === '-' || row.craftFile === '-' || row.materialState === '0'"
             size="small"
             @click="handleRefresh(row.workOrderCode)"
         ><i-ep-edit />刷新
         </el-button>
+
 <!--        <el-button
             type="primary"
             link
@@ -86,7 +95,7 @@
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
-import {prepareCheckInfo,refreshPrepareCheckInfo} from "@/api/order"
+import {prepareCheckInfo,refreshPrepareCheckInfo,frockState} from "@/api/order"
 import {queryChildrenInfo} from "@/api/process"
 import { useCommonStoreHook } from "@/store";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -156,6 +165,17 @@ const handleRefresh =(code)=>{
     }
   })
 }
+const frockStateChange =(code)=>{
+  code.frockState = 1;
+  frockState(code).then((data)=>{
+    if(data.code === '200'){
+      ElMessage.success("刷新成功")
+      dataList()
+    }else{
+      ElMessage.error(data.msg)
+    }
+  })
+}
 const orderInfo = (value) => {
   form.value.workOrderCode = value.workOrderCode
   form.value.orderCode = value.orderCode
@@ -173,6 +193,7 @@ option.value = Object.assign(option.value, {
   tree: true,
   viewBtn: false,
   lazy: true,
+  menuBtn:false,
   menuWidth: 100,
   rowKey: 'workOrderCode',
   addBtn: false,
@@ -362,6 +383,21 @@ option.value = Object.assign(option.value, {
       },
     },
     {
+      label: "工装状态",
+      prop: 'frockStr',
+      disabled: true,
+      width: 200,
+      overHidden: true,
+      span: 24,
+      html: true,
+      formatter: (val) => {
+        if (val.frockState === '1') {
+          return '<b class="el-tag el-tag--success el-tag--light">已齐套</b>';
+        }
+        return '<b class="el-tag el-tag--danger el-tag--light">'+val.frockStr+'</b>';
+      },
+    },
+    {
       label: "创建时间",
       prop: "created",
       width: 200,