Просмотр исходного кода

Merge branch 'xf_dev' of http://192.168.101.4:3000/jiaxiaoqiang/JG-ADMIN-TEMP into xf_dev

qinhb 10 месяцев назад
Родитель
Сommit
d6e7cd2471

+ 8 - 3
src/views/base/information/index.vue

@@ -7,7 +7,7 @@
       :data="data"
       :option="option"
       v-model:page="page"
-      @row-save="createRow"
+      @row-save="addRow"
       @row-update="updateRow"
       @row-del="deleteRow"
       @search-change="searchChange"
@@ -130,10 +130,15 @@ onMounted?.(() => {
   // console.log("crudRef", crudRef)
   dataEditList();
 });
-
+const addRow = (form2, done) => {
+  createRow(form, done, done);
+  pdfUrlList.value = [];
+  srcList.value = [];
+  fileNameList.value = [];
+};
 const onSelectedFinish = (selectedValue) => {
   form.value.associationCode = selectedValue.materialCode;
-  form.value.associationName = selectedValue.materialCode;
+  form.value.associationName = selectedValue.materialName;
   form.value.materialCode = selectedValue.materialCode;
 };
 

+ 76 - 73
src/views/base/materials/components/drawing-page.vue

@@ -20,7 +20,7 @@
       :data="data"
       :option="option"
       v-model:page="page"
-      @row-save="createRow"
+      @row-save="addRow"
       @row-update="updateRow"
       @row-del="deleteRow"
       @search-change="searchChange"
@@ -39,7 +39,12 @@
           @click="multipleDelete"
           >删除</el-button
         >
-        <el-select v-model="version" placeholder="请选择BOM版本" style="width:150px;margin-left:15px" @change="getVersionDrawing">
+        <el-select
+          v-model="version"
+          placeholder="请选择BOM版本"
+          style="width: 150px; margin-left: 15px"
+          @change="getVersionDrawing"
+        >
           <el-option
             v-for="item in options"
             :key="item"
@@ -49,7 +54,7 @@
           </el-option>
         </el-select>
       </template>
-      <template #menu="{row,index,type}">
+      <template #menu="{ row, index, type }">
         <PDFView
           :need-to-show-pdf="true"
           content-type="button"
@@ -69,25 +74,31 @@ import { useCommonStoreHook } from "@/store";
 
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 import { useDictionaryStore } from "@/store";
-import { addDrawing,getDrawing } from "@/api/drawing";
+import { addDrawing, getDrawing } from "@/api/drawing";
 const { dicts } = useDictionaryStore();
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const testFiles =()=>{
+const addRow = (form2, done) => {
+  createRow(form, done, done);
+  pdfUrlList.value = [];
+  srcList.value = [];
+  fileNameList.value = [];
+};
+const testFiles = () => {
   form.value.pdfPathList = pdfUrlList.value;
   form.value.drawingPathList = srcList.value;
   form.value.drawingPath = srcList.value[0];
-  form.value.fileNameList=fileNameList.value;
-}
+  form.value.fileNameList = fileNameList.value;
+};
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/base/drawing",
   });
-const { dataList} = Methords; //增删改查
+const { dataList } = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -97,73 +108,65 @@ const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等
 //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
 //   menu: true,
 // });
-const formRef=ref(null);
-const version=ref({
-  value: '0',
-  label: '请选择图纸版本',
+const formRef = ref(null);
+const version = ref({
+  value: "0",
+  label: "请选择图纸版本",
 });
-const options=ref([]);
+const options = ref([]);
 const fileUrl = ref(""); //单文件
 const pdfUrlList = ref([]);
 const srcList = ref([]);
 const fileNameList = ref([]);
 import dictDataUtil from "@/common/configs/dictDataUtil";
-const getVersionDrawing=()=>{
-  if(version.value.value!="0"){
+const getVersionDrawing = () => {
+  if (version.value.value != "0") {
     search.value.materialCode = props.materialCode;
-    search.value.drawingVersion=version.value;
+    search.value.drawingVersion = version.value;
     dataList();
   }
-}
-function rowSave(form,done) {
+};
+function rowSave(form, done) {
   form.associationCode = props.materialCode;
-  form.associationName=props.materialName;
-  console.info("formRef.value",done);
-  addDrawing(form).then(
-    (data)=>{
-      if(data.code==="200") {
-        ElMessage({
-          message: data.msg,
-          type: "success",
-        });
-
-        formRef.value.resetForm();
-        dataList();
-      } else {
-        ElMessage({
-          message: data.msg,
-          type: "error",
-        });
+  form.associationName = props.materialName;
+  console.info("formRef.value", done);
+  addDrawing(form).then((data) => {
+    if (data.code === "200") {
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
 
-      }
+      formRef.value.resetForm();
+      dataList();
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
     }
-  )
+  });
   done();
 }
 
-
 onMounted(() => {
   // console.log("crudRef", crudRef)
-  getDrawing(props.materialCode).then(
-    (data)=>{
-      if(data.code==="200") {
-        options.value=Array.from(data.data);
-      } else {
-        ElMessage({
-          message: data.msg,
-          type: "error",
-        });
-      }
+  getDrawing(props.materialCode).then((data) => {
+    if (data.code === "200") {
+      options.value = Array.from(data.data);
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
     }
-  )
+  });
   search.value.materialCode = props.materialCode;
   dataList();
 });
 
-
 const ctableRef = ref(null);
 
-
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   selection: true,
@@ -209,38 +212,40 @@ option.value = Object.assign(option.value, {
       label: "图纸类型",
       prop: "drawingDictValue",
       filterable: true,
-      type: 'select',
-      width: 100,overHidden: true,
+      type: "select",
+      width: 100,
+      overHidden: true,
       dicUrl: dictDataUtil.request_url + "drawing_type",
       props: { label: "dictLabel", value: "dictValue" },
-      rules: [{
-        required: true,
-        message: "请选择物料属性",
-        trigger: "blur"
-      }],
+      rules: [
+        {
+          required: true,
+          message: "请选择物料属性",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件名称",
       prop: "fileName",
       span: 24,
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
     {
       label: "文件数组",
       prop: "drawingPathList",
       span: 24,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     {
       label: "pdf数组",
       prop: "pdfPathList",
       span: 24,
-      hide:true,
-      display:false,
-
+      hide: true,
+      display: false,
     },
 
     {
@@ -248,8 +253,8 @@ option.value = Object.assign(option.value, {
       prop: "fileNameList",
       span: 24,
       slot: true,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     {
       label: "版本",
@@ -263,9 +268,9 @@ option.value = Object.assign(option.value, {
           trigger: "blur",
         },
       ],
-      click(){
-        dialog1.visible=true;
-      }
+      click() {
+        dialog1.visible = true;
+      },
     },
     {
       label: "图纸上传",
@@ -286,7 +291,6 @@ option.value = Object.assign(option.value, {
         }
 */
     },
-
   ],
   delBtn: false,
   editBtn: false,
@@ -313,5 +317,4 @@ const props = defineProps({
     },
   },
 });
-
 </script>

+ 201 - 161
src/views/base/skill/components/user-skill.vue

@@ -14,8 +14,7 @@
       @size-change="dataList"
       @current-change="dataList"
       @selection-change="selectionChange"
-    >
-    </avue-form>
+    />
     <avue-crud
       ref="crudRef"
       v-model="form"
@@ -26,26 +25,24 @@
       @row-update="updateRow"
       @row-del="deleteRow"
     >
-      <template #skillDictValue="{row,index,type}">
-        <el-select v-model="skillValue" placeholder="请选择技能" @click="getPostSkills()" @change="skillChange(row)">
+      <template #skillDictValue="{ row, index, type }">
+        <el-select
+          v-model="row.skillValue"
+          placeholder="请选择技能"
+          @click="getPostSkills()"
+          @change="skillChange(row)"
+        >
           <el-option
             v-for="item in optionSkill"
             :key="item.value"
             :label="item.skillDictLabel"
             :value="item.skillDictValue"
-          >
-          </el-option>
+          />
         </el-select>
       </template>
       <template #menu-left="{ size }">
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          circle
-          @click="addSkill"
-        ></el-button
-        ></template>
-
+        <el-button type="primary" icon="el-icon-plus" circle @click="addSkill"
+      /></template>
     </avue-crud>
     <CommonTable
       ref="ctableRef"
@@ -56,17 +53,18 @@
     <div class="detail-footer">
       <el-button type="primary" @click="onHandle"> 确定 </el-button>
       <el-button @click="cancelWindow">取消</el-button>
-
     </div>
   </div>
 </template>
 <script setup>
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
 import { useCommonStoreHook, useDictionaryStore } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
+import SingleUpload from "@/components/Upload/SingleUpload.vue";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-import {getPostSkill,addEmployeeSkill} from "@/api/system/skill";
+import { getPostSkill, addEmployeeSkill } from "@/api/system/skill";
 // 数据字典相关
 const { dicts } = useDictionaryStore();
 
@@ -74,14 +72,20 @@ const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const data2=ref(null);
+const data2 = ref(null);
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/sys/skillScore",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, dataNoPageList } =
-  Methords; //增删改查
+const {
+  dataList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  dataNoPageList,
+} = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -91,236 +95,272 @@ const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等
 //   editBtn: checkPerm(buttonPermission.PLAN.BTNS.order_edit),
 //   menu: true,
 // });
-const option2=ref(null);
+const option2 = ref(null);
 const ctableRef = ref(null); //crudRef.value 获取avue-crud对象
 const router = useRouter();
 
 onMounted(() => {
   // console.log("crudRef", crudRef)
   //dataNoPageList();
-
 });
-const skillChange=(row)=>{
-  if(skillValue.value!==undefined&&skillValue.value!==null&&skillValue.value!==""){
-    data.value[row.$index].skillDictValue=skillValue.value;
+const skillChange = (row) => {
+  if (
+    row.skillValue !== undefined &&
+    row.skillValue !== null &&
+    row.skillValue !== ""
+  ) {
+    data.value[row.$index].skillDictValue = row.skillValue;
   }
-}
-const cancelWindow=()=>{
-  props.dialog.visible=false;
-}
+  console.log(data.value);
+};
+const cancelWindow = () => {
+  props.dialog.visible = false;
+};
 const addSkill = () => {
-  const bom=ref({
-    $cellEdit:true,
+  const bom = ref({
+    $cellEdit: true,
   });
   data.value.push(bom.value);
 };
-const employeeSkill=ref({});
-const onHandle=()=>{
+const employeeSkill = ref({});
+const onHandle = () => {
   console.info(form.value);
-  if(form.value.userId===null||form.value.userId===undefined||form.value.userId===""){
+  if (
+    form.value.userId === null ||
+    form.value.userId === undefined ||
+    form.value.userId === ""
+  ) {
     ElMessage({
       message: "未选择打分用户",
       type: "error",
     });
     return false;
   }
-  if(form.value.postId===null||form.value.postId===undefined||form.value.postId===""){
+  if (
+    form.value.postId === null ||
+    form.value.postId === undefined ||
+    form.value.postId === ""
+  ) {
     ElMessage({
       message: "未选择岗位",
       type: "error",
     });
     return false;
   }
-  console.info("data",data.value);
-  if(data.value.length===0){
+  console.info("data", data.value);
+  if (data.value.length === 0) {
     ElMessage({
       message: "没有要保存的打分项",
       type: "error",
     });
     return false;
   }
-  if(data.value.length>0){
-    for(let i=0;i<data.value.length;i++){
-      if(data.value[i].skillDictValue===undefined||data.value[i].skillDictValue===null||data.value[i].skillDictValue===""){
+  if (data.value.length > 0) {
+    for (let i = 0; i < data.value.length; i++) {
+      if (
+        data.value[i].skillDictValue === undefined ||
+        data.value[i].skillDictValue === null ||
+        data.value[i].skillDictValue === ""
+      ) {
         ElMessage({
-          message: "第"+(i+1)+"项没有选择技能",
+          message: "第" + (i + 1) + "项没有选择技能",
           type: "error",
         });
         return false;
       }
-      if(data.value[i].score===undefined||data.value[i].score===null||data.value[i].score===""){
+      if (
+        data.value[i].score === undefined ||
+        data.value[i].score === null ||
+        data.value[i].score === ""
+      ) {
         ElMessage({
-          message: "第"+(i+1)+"项没有打分",
+          message: "第" + (i + 1) + "项没有打分",
           type: "error",
         });
         return false;
       }
     }
   }
-  employeeSkill.value.userId=form.value.userId;
-  employeeSkill.value.postId=form.value.postId;
-  employeeSkill.value.skillList=Array.from(data.value);
-  console.info("11",employeeSkill.value)
-  addEmployeeSkill(employeeSkill.value).then(
-    (data)=>{
-      if(data.code==="200") {
-        ElMessage({
-          message: data.msg,
-          type: "success",
-        });
-        props.dialog.visible=false;
-      }
-      else {
-        ElMessage({
-          message: data.msg,
-          type: "error",
-        });
-      }
+  employeeSkill.value.userId = form.value.userId;
+  employeeSkill.value.postId = form.value.postId;
+  employeeSkill.value.skillList = Array.from(data.value);
+  console.info("11", employeeSkill.value);
+  addEmployeeSkill(employeeSkill.value).then((data) => {
+    if (data.code === "200") {
+      ElMessage({
+        message: data.msg,
+        type: "success",
+      });
+      props.dialog.visible = false;
+    } else {
+      ElMessage({
+        message: data.msg,
+        type: "error",
+      });
     }
-  )
-
-}
+  });
+};
 
-const postIdValue=ref(null);
+const postIdValue = ref(null);
 // 设置表格列或者其他自定义的option
 option2.value = {
   selection: true,
-  submitBtn:false,
-  clearAbleBtn:false,
-  emptyBtn:false,
+  submitBtn: false,
+  clearAbleBtn: false,
+  emptyBtn: false,
   column: [
-
-    { label: "用户id", prop: "userId", width: 130,overHidden: true,search: true ,
+    {
+      label: "用户id",
+      prop: "userId",
+      width: 130,
+      overHidden: true,
+      search: true,
       filterable: true,
-      disabled:true,
-      display:false,
+      disabled: true,
+      display: false,
     },
-    { label: "用户名", prop: "userName", width: 140,overHidden: true,search: true ,rules: [{
-        required: true,
-        search: true,
-        message: "请选择员工姓名",
-        trigger: "blur"
-      }],
+    {
+      label: "用户名",
+      prop: "userName",
+      width: 140,
+      overHidden: true,
+      search: true,
+      rules: [
+        {
+          required: true,
+          search: true,
+          message: "请选择员工姓名",
+          trigger: "blur",
+        },
+      ],
       click: ({ value, column }) => {
         ctableRef.value.startSelect();
-      },},
-    { label: "所属机构", prop: "deptName", width: 130,overHidden: true,search: true ,
-      filterable: true,
-      disabled:true,
+      },
     },
+    /*{
+          label: "所属机构",
+          prop: "institution",
+          width: 130,
+          overHidden: true,
+          search: true,
+          filterable: true,
+          disabled: true,
+        },*/
     {
       label: "员工编号",
       prop: "employeeCode",
       search: true,
-      disabled:true,
+      disabled: true,
     },
-    { label: "岗位", prop: "postId",
+    {
+      label: "岗位",
+      prop: "postId",
       search: true,
       filterable: true,
       type: "select",
       overHidden: true,
-      dicUrl:dictDataUtil.post_list_url,
-      dicMethod:"post",
-      change:({ value, column })=>{
-       if(value!==undefined) {
-         postIdValue.value = value;
-         skillValue.value=null;
-         optionSkill.value=null;
-       }
+      dicUrl: dictDataUtil.post_list_url,
+      dicMethod: "post",
+      change: ({ value, column }) => {
+        if (value !== undefined) {
+          postIdValue.value = value;
+          data.value = [];
+          optionSkill.value = null;
+        }
       },
       props: { label: "postName", value: "id" },
-
     },
-  /*  { label: "部门", prop: "deptName", overHidden: true,
-      disabled:true, },*/
+    { label: "部门", prop: "deptName", overHidden: true, disabled: true },
   ],
 };
 
 const props = defineProps({
-  dialog:{
-    type:Object,
-    default:()=>{
+  dialog: {
+    type: Object,
+    default: () => {
       return {};
-    }
-  }
-})
+    },
+  },
+});
 // 设置表格列或者其他自定义的option
-option.value = Object.assign(option.value,{
+option.value = Object.assign(option.value, {
   selection: false,
   addBtn: false,
   viewBtn: false,
-  editBtn:false,
-  saveBtn:false,
+  editBtn: false,
+  saveBtn: false,
+
   cellBtn: true,
-  column: [{
-    label: "技能",
-    prop: "skillDictValue",
-    align: 'center',
-    headerAlign: 'center',
-    span:24,
-    type: 'select',
-    dicData:dicts.skill_type,
-    props: { label: "dictLabel", value: "dictValue" },
-  },
+  column: [
+    {
+      label: "技能",
+      prop: "skillDictValue",
+      align: "center",
+      headerAlign: "center",
+      span: 24,
+      type: "select",
+      dicData: dicts.skill_type,
+      props: { label: "dictLabel", value: "dictValue" },
+    },
     {
       label: "分数",
       prop: "score",
-      align: 'center',
-      headerAlign: 'center',
+      align: "center",
+      headerAlign: "center",
       cell: true,
-      type:"number",
+      type: "number",
       precision: 2,
-      max:100,
-      min:0,
-      span:24,
-    },],
+      max: 100,
+      min: 0,
+      span: 24,
+    },
+  ],
 });
-const onSelectedFinish=(selectedValue)=>{
-  form.value.userId=selectedValue.id;
-  form.value.userName=selectedValue.userName;
-  form.value.deptName=selectedValue.deptName;
-  form.value.employeeCode=selectedValue.employeeCode;
-  form.value.institution=selectedValue.institution;
-}
-const skillValue=ref(null);
-const optionSkill=ref([]);
-const getPostSkills=()=>{
-  if(postIdValue.value===undefined||postIdValue.value===null||postIdValue.value===""){
+const onSelectedFinish = (selectedValue) => {
+  form.value.userId = selectedValue.id;
+  form.value.userName = selectedValue.userName;
+  form.value.deptName = selectedValue.deptName;
+  form.value.employeeCode = selectedValue.employeeCode;
+  //form.value.institution = selectedValue.institution;
+};
+const optionSkill = ref([]);
+const getPostSkills = () => {
+  if (
+    postIdValue.value === undefined ||
+    postIdValue.value === null ||
+    postIdValue.value === ""
+  ) {
     ElMessage({
       message: "未选择岗位",
       type: "error",
     });
     return false;
   }
-  getPostSkill(postIdValue.value).then(
-    (data)=>{
-      optionSkill.value=Array.from(data.data);
-    }
-  )
-}
-
+  getPostSkill(postIdValue.value).then((data) => {
+    optionSkill.value = Array.from(data.data);
+  });
+};
 </script>
 <style type="text/css">
-  .title-detail{
-    width: 30%;
-    height: 50px;
-    line-height: 50px;
-    margin: 25px 20px 25px 0;
-    float: left;
-  }
-  .detail{
-    margin: 0 auto;
-    width: 100%;
-  }
-  .avue-crud{
-    float: left;
-  }
-  .detail-footer{
-    float: right;
-    margin-top:15px;
-  }
-  .el-select__selection{
-    width: 150px;
-  }
-
+.title-detail {
+  width: 30%;
+  height: 50px;
+  line-height: 50px;
+  margin: 25px 20px 25px 0;
+  float: left;
+}
+.detail {
+  margin: 0 auto;
+  width: 100%;
+}
+.avue-crud {
+  float: left;
+}
+.detail-footer {
+  float: right;
+  margin-top: 15px;
+}
+.el-select__selection {
+  width: 150px;
+}
 </style>