瀏覽代碼

feauture/打印功能一版

dy 11 月之前
父節點
當前提交
a7868ab5ac

+ 24 - 0
src/api/excel/index.ts

@@ -38,3 +38,27 @@ export function updateExcel(data: any) {
     data,
   });
 }
+//获取列表
+export function getForm(data: any) {
+  return request({
+    url: "/api/v1/excelForm/page",
+    method: "post",
+    data,
+  });
+}
+//新增工序绑定模版
+export function add(data: any) {
+  return request({
+    url: "/api/v1/opExcelForm/add",
+    method: "post",
+    data,
+  });
+}
+//删除工序绑定模版
+export function deleteTemp(data: any) {
+  return request({
+    url: "/api/v1/opExcelForm/del",
+    method: "post",
+    data,
+  });
+}

+ 1 - 1
src/components/ExcelView/index.vue

@@ -138,7 +138,7 @@ const leadingExcel = (item, fileList) => {
 };
 //导出
 const downloadExcel = () => {
-  exportExcel(luckysheet.getAllSheets(), "TDM-excel");
+  exportExcel(luckysheet.getAllSheets(), "导出表格");
 };
 //获取此时表格数据
 const confirm = () => emits("confirm", luckysheet.getAllSheets());

+ 13 - 35
src/views/base/craftManagement/route/components/configs.ts

@@ -264,7 +264,7 @@ export const getTableConfig = (id: string) => {
       ],
     },
     operationExcel: {
-      url: "/api/v1/op/esop",
+      url: "/api/v1/opExcelForm",
       column: [
         {
           label: "工序id",
@@ -274,57 +274,35 @@ export const getTableConfig = (id: string) => {
           value: id,
         },
 
-        { label: "标题", prop: "title", addDisabled: true, editDisabled: true },
-        { label: "展示页数", prop: "showAppointPageNum", type: "number" },
-        {
-          label: "总页数",
-          prop: "pageNum",
-          type: "number",
-          hide: true,
-          display: false,
-        },
         {
-          label: "版本号",
-          prop: "recordVersion",
-          type: "number",
+          label: "模版名称",
+          prop: "formName",
           addDisabled: true,
           editDisabled: true,
-          rules: [
-            {
-              required: true,
-              message: "版本号",
-              trigger: "blur",
-            },
-          ],
         },
         {
-          label: "图纸编码",
-          prop: "drawingCode",
-          hide: true,
+          label: "模版类型",
+          prop: "formType",
           addDisabled: true,
           editDisabled: true,
+          dicData: dicts.excel_type,
+          props: { label: "dictLabel", value: "dictValue" },
         },
         {
-          label: "内容",
-          prop: "content",
-          hide: true,
+          label: "模版数据",
+          prop: "pageNum",
           addDisabled: true,
           editDisabled: true,
         },
         {
-          label: "排序",
-          prop: "sortNum",
-          hide: true,
+          label: "修改时间",
+          prop: "updated",
           addDisabled: true,
           editDisabled: true,
         },
         {
-          label: "文件",
-          prop: "filePath",
-          span: 24,
-          type: "img",
-          slot: true,
-          viewDisplay: false,
+          label: "操作人",
+          prop: "updator",
           addDisabled: true,
           editDisabled: true,
         },

+ 7 - 1
src/views/base/craftManagement/route/components/processComponent.vue

@@ -66,7 +66,7 @@
       <div v-if="isChanged || selectIndex === -1 || isNoneedEdit">
         <el-empty :image-size="200" :description="getTipContent()" />
       </div>
-      <div v-else>
+      <div v-else-if="tipTitle !== '编辑工序表格'">
         <div class="tipTitle">{{ tipTitle }}</div>
         <el-button
           type="primary"
@@ -82,6 +82,11 @@
         >
         <BottomTable ref="bottomTableRef" :tableType="tableType" />
       </div>
+      <div v-else>
+        <div class="tipTitle">{{ tipTitle }}</div>
+
+        <SetExcel />
+      </div>
     </div>
   </div>
 </template>
@@ -89,6 +94,7 @@
 import { Back, Document, CirclePlus, Delete } from "@element-plus/icons-vue";
 import { VueDraggable } from "vue-draggable-plus";
 import BottomTable from "@/views/base/craftManagement/route/components/bottomTable.vue";
+import SetExcel from "./setExcel/index.vue";
 import { comTypes } from "@/views/base/craftManagement/route/components/configs";
 import { saveCompoents, getCompoentsList } from "@/api/craft/process/index";
 

+ 210 - 0
src/views/base/craftManagement/route/components/setExcel/index.vue

@@ -0,0 +1,210 @@
+<template>
+  <div>
+    <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-right="{}">
+        <el-button
+          class="ml-3"
+          @click="exportData('/api/v1/plan/order/export')"
+        >
+          <template #icon> <i-ep-download /> </template>导出
+        </el-button>
+      </template> -->
+      <template #menu-left="{}">
+        <el-button
+          type="primary"
+          @click="editDialog.visible = true"
+          style="margin-bottom: 15px"
+          >新增 / 编辑</el-button
+        >
+      </template>
+      <template #menu="{ row, index, type }">
+        <el-button @click="deleteTep(row.id)" text type="primary"
+          >删除</el-button
+        >
+      </template>
+    </avue-crud>
+    <el-dialog
+      v-model="editDialog.visible"
+      :title="editDialog.title"
+      width="1200px"
+      @close="handleClose"
+    >
+      <div class="dialog">
+        <div>
+          请选择Excel模板:
+          <el-select v-model="value1" multiple placeholder="Select">
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </div>
+
+        <div class="btns">
+          <el-button @click="handleClose">取消</el-button>
+          <el-button type="primary" @click="onSelected"> 确定 </el-button>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+<script setup>
+import { ref } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import { useDictionaryStore } from "@/store";
+import { useRoute } from "vue-router";
+import { getForm, add, deleteTemp } from "@/api/excel";
+const value1 = ref([]);
+const options = ref([]);
+const route = useRoute();
+//删除
+const deleteTep = async (id) => {
+  const { data, code } = await deleteTemp({
+    id,
+  });
+  if (code == "200") {
+    ElMessage.success("删除成功!");
+    dataList();
+    setValue1();
+  }
+};
+//新增
+const onSelected = async () => {
+  const { data, code } = await add({
+    baseFormIds: value1.value,
+    operationId: route.params.id,
+  });
+  if (code == "200") {
+    ElMessage.success("添加成功!");
+    dataList();
+    handleClose();
+  }
+};
+//关闭弹窗
+const handleClose = () => {
+  editDialog.value.visible = false;
+  value1.value = [];
+};
+// 数据字典相关
+const { dicts } = useDictionaryStore();
+
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/opExcelForm",
+  });
+// const setValue1 = () => {
+//   value1.value = [];
+//   data.value.forEach((el) => {
+//     value1.value.push(el.id);
+//   });
+// };
+search.value = { ...search.value, operationId: route.params.id };
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+const editDialog = ref({ visible: false, title: "绑定模版" });
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+//获取Excel模版列表
+const getTemplate = async () => {
+  const { data } = await getForm({
+    pageNo: 1,
+    pageSize: 9999999,
+  });
+  options.value = [];
+  data.records.forEach((element) => {
+    options.value.push({
+      value: element.id,
+      label: element.formName,
+    });
+  });
+};
+onMounted(() => {
+  getTemplate();
+  dataList();
+});
+// watch(
+//   () => data.value,
+//   (val) => {
+//     setValue1();
+//   },
+//   {
+//     immediately: true,
+//   }
+// );
+
+option.value = Object.assign(option.value, {
+  selection: false,
+  addBtn: false,
+  menu: true,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  addBtn: false,
+  searchMenuSpan: 8,
+  column: [
+    {
+      label: "工序id",
+      prop: "operationId",
+      display: false,
+      hide: true,
+    },
+    {
+      label: "模版名称",
+      prop: "formName",
+      addDisabled: true,
+      editDisabled: true,
+    },
+    {
+      label: "模版类型",
+      prop: "formType",
+      addDisabled: true,
+      editDisabled: true,
+      dicData: dicts.excel_type,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
+    {
+      label: "修改时间",
+      prop: "updated",
+      addDisabled: true,
+      editDisabled: true,
+    },
+    {
+      label: "操作人",
+      prop: "updator",
+      addDisabled: true,
+      editDisabled: true,
+    },
+  ],
+});
+</script>
+<style lang="scss" scoped>
+.dialog {
+  width: 100%;
+  height: 120px;
+  position: relative;
+  .btns {
+    position: absolute;
+    right: 0;
+    bottom: 0;
+  }
+}
+</style>