From 019ca95f9f4191a2b3b34f9035c784a8b439ad7e Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期四, 13 十一月 2025 14:13:15 +0800
Subject: [PATCH] 修改

---
 src/views/work/sealManagement/apply/index.vue                 |    5 +
 src/views/work/sealManagement/apply/components/editDialog.vue |   11 +
 src/views/work/sealManagement/proces/index.vue                |  281 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 289 insertions(+), 8 deletions(-)

diff --git a/src/views/work/sealManagement/apply/components/editDialog.vue b/src/views/work/sealManagement/apply/components/editDialog.vue
index 4d92244..eb678f2 100644
--- a/src/views/work/sealManagement/apply/components/editDialog.vue
+++ b/src/views/work/sealManagement/apply/components/editDialog.vue
@@ -197,6 +197,7 @@
 })
 
 const openDialog = async (type, value,companyList) => {
+  title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
   const userInfo = JSON.parse(Cookies.get('userInfo'))
   state.isAdmin = userInfo.userType === 0;
   state.form.companyName = userInfo.companyName
@@ -221,6 +222,11 @@
       status: null
     }
     state.form.flows[0]=obj
+    if(!state.form.applyDeptId){
+      ElMessage.warning('该用户无所属部门!')
+      return
+
+    }
     //部门负责人信息
     await getLeaderInfo()
     await getFlowList()
@@ -229,7 +235,7 @@
     state.companyList = companyList
     state.form.companyId = null
   }
-  title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
+
   if(type === 'edit' || type === 'review') {
     state.form = JSON.parse(JSON.stringify(value));
     state.form.compilationBy = state.form.compilationId
@@ -294,10 +300,12 @@
     pageSize: 999,
     companyId: state.form.companyId
   }
+
   const res = await getSealFlow(param)
   if(res.code === 200){
     res.data.forEach(item => {
       item.approveDeptName = item.deptName
+      item.approveDeptId = item.deptId
     })
     if(title.value == '新增'){
       state.form.flows = state.form.flows.concat(res.data)
@@ -314,7 +322,6 @@
     if(title.value === '新增'){
       console.log('sta',state.form)
       state.form.flows[0].approveTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
-      debugger
       const {id, ...data} = JSON.parse(JSON.stringify(state.form))
       const res = await addSealApply(data)
       if(res.code === 200){
diff --git a/src/views/work/sealManagement/apply/index.vue b/src/views/work/sealManagement/apply/index.vue
index 4fab369..e37873c 100644
--- a/src/views/work/sealManagement/apply/index.vue
+++ b/src/views/work/sealManagement/apply/index.vue
@@ -39,6 +39,11 @@
       <el-table-column label="用章事由" prop="useSealCause" align="center"  />
       <el-table-column label="申请人" prop="applyUserName" align="center"  />
       <el-table-column label="用章时间" prop="useSealTime" align="center"  />
+      <el-table-column label="状态" prop="status" align="center"  >
+        <template #default="scope">
+          <span>{{scope.row.status == 1 ? '审批中' :scope.row.status == 2 ?'已审批' : ''}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160" >
         <template #default="scope">
           <div v-if="data.tabName === 'apply'">
diff --git a/src/views/work/sealManagement/proces/index.vue b/src/views/work/sealManagement/proces/index.vue
index c3826a4..1bbac22 100644
--- a/src/views/work/sealManagement/proces/index.vue
+++ b/src/views/work/sealManagement/proces/index.vue
@@ -1,11 +1,280 @@
-<script setup>
-
-</script>
-
 <template>
-流程
+  <div class="app-container">
+    <div style="margin-bottom: 10px">
+      <el-form style="display: flex;flex-wrap: wrap;">
+        <el-form-item>
+          <el-button
+              type="primary"
+              plain
+              icon="Plus"
+              @click="addFlow()"
+              v-hasPermi="['sealFlow:list:add']"
+          >新增</el-button>
+        </el-form-item>
+        <el-form-item label="单位名称:" v-if="data.isAdmin" style="margin-left: 20px">
+          <el-select v-model="data.queryParams.companyId" placeholder="请选择" filterable clearable>
+            <el-option
+                v-for="item in data.companyList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="data.isAdmin">
+          <el-button type="primary" style="margin-left: 30px" @click="searchClick">查询</el-button>
+          <el-button plain @click="reset">重置</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div style="display: flex;width:100%;flex-wrap: wrap; ">
+      <div v-for="(item,index) in dataList" :key="item.id">
+        <el-card style="width: 400px;margin-right: 50px;margin-bottom: 30px">
+          <span style="font-size: 18px;font-weight: 700">{{index+1}}</span>
+          <el-form :model="dataList[index]" size="default" ref="busRef" :rules="data.rules" label-width="100" >
+            <div style="display: flex">
+              <el-form-item label="流程名称:" prop="flowName" style="flex: 1">
+                <el-input  v-model="dataList[index].flowName" placeholder="流程名称" style="width: 100%"></el-input>
+              </el-form-item>
+              <el-button type="danger" plain style="margin-left: 10px;" @click="delFlow(item,index)">删除</el-button>
+            </div>
+            <div style="display: flex">
+              <el-form-item label="审批人员:" prop="approveUserId" style="flex: 1">
+                <el-select clearable v-model="dataList[index].approveUserId"  filterable  style="width: 100%">
+                  <el-option
+                      v-for="item in data.peopleList"
+                      :key="item.id"
+                      :label="item.name"
+                      :value="item.id"
+                  />
+                </el-select>
+
+              </el-form-item>
+              <el-button type="primary"  style="margin-left: 10px;" @click="saveFlow(item,index)">保存</el-button>
+            </div>
+          </el-form>
+
+        </el-card>
+      </div>
+    </div>
+
+
+
+  </div>
 </template>
 
-<style scoped lang="scss">
+<script setup>
+import {getCurrentInstance, onMounted, reactive, ref, toRefs} from "vue";
+import {ElMessage, ElMessageBox} from "element-plus";
+import {getCompany} from "@/api/onlineEducation/company";
+import Cookies from "js-cookie";
+import {addSealApply, delSealApply, getSealApply, reviewApply} from "@/api/sealManage/apply";
+import {addSealFlow, delSealFlow, editSealFlow, getSealFlow} from "@/api/sealManage/process";
+import {getUser} from "@/api/onlineEducation/user";
+import moment from "moment/moment";
+const { proxy } = getCurrentInstance();
+const loading = ref(false);
+const noticeRef = ref();
+const loadingCompany = ref(false)
+const choosedData = ref([])
+const busRef = ref();
+const data = reactive({
+  queryParams: {
+    companyId: null,
+  },
 
+  peopleList:[],
+  rules:{
+    companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
+    flowName: [{ required: true, message: '请输入流程名称', trigger: 'blur' }],
+    approveUserId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
+  },
+  companyList: [],
+  isAdmin: false,
+  userId: null,
+});
+const dataList = ref([]);
+const { queryParams } = toRefs(data);
+
+onMounted(async () => {
+  const userInfo = JSON.parse(Cookies.get('userInfo'))
+  console.log("userInfo",userInfo)
+  data.isAdmin = userInfo.userType === 0;
+  if(data.isAdmin){
+    data.queryParams.companyId = null
+  }else {
+    data.queryParams.companyId = userInfo.companyId
+  }
+  if(data.isAdmin){
+   await getCompanyList()
+  }
+  await getList();
+  await getPeopleList()
+
+});
+const getList = async () => {
+  loading.value = true;
+  const res = await getSealFlow(data.queryParams);
+  if(res.code === 200){
+    dataList.value = res.data
+  }else{
+    ElMessage.warning(res.message)
+  }
+  loading.value = false;
+
+}
+
+const searchClick = () => {
+  getList();
+  getPeopleList()
+}
+const openDialog = (type, value) => {
+  noticeRef.value.openDialog(type, value,data.companyList);
+}
+const selectValue = (val) => {
+  data.companyList.forEach(item => {
+    if(item.name === val){
+      data.queryParams.companyId = item.id
+    }
+  })
+}
+
+const getCompanyList = async ()=>{
+  const queryParams = {
+    pageNum: 1,
+    pageSize: 999
+  }
+  const res = await getCompany(queryParams)
+  if (res.code == 200) {
+    data.companyList = res.data.list?res.data.list:[]
+    data.queryParams.companyId = data.companyList[0].id
+  } else {
+    ElMessage.warning(res.message)
+  }
+}
+
+/** 重置新增的表单以及其他数据  */
+function reset() {
+  if(data.isAdmin){
+    data.queryParams = {
+      companyId: '',
+      pageNum: 1,
+      pageSize: 10,
+      nextCheck:null,
+      applyUserId: null
+    }
+    choosedData.value = []
+    data.companyList = [];
+    getCompanyList()
+  }else {
+    data.queryParams = {
+      companyId: data.queryParams.companyId,
+      pageNum: 1,
+      pageSize: 10,
+      nextCheck:null,
+      applyUserId: null
+    }
+  }
+  getList();
+   getPeopleList()
+
+}
+const getPeopleList = async ()=> {
+  if(data.isAdmin && (data.queryParams.companyId == 0 || data.queryParams.companyId == null)){
+    return
+  }
+  const queryParams = {
+    pageNum: 1,
+    pageSize: 9999,
+    companyId: data.queryParams.companyId
+  }
+  const res = await getUser(queryParams)
+  if(res.code == 200){
+    data.peopleList = res.data.list?res.data.list:[]
+  }else{
+    ElMessage.warning(res.message)
+  }
+};
+const addFlow = () => {
+  const obj = {
+    companyId: data.queryParams.companyId,
+    flowName: "",
+    approveUserId: null
+  }
+  dataList.value.push(obj)
+}
+
+const handleSelectionChange = (val) => {
+  choosedData.value = val
+}
+const delFlow = (item,index) => {
+  if(item.id){
+    ElMessageBox.confirm(
+        '确定删除此条数据?',
+        '提示',
+        {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning',
+        })
+        .then( async() => {
+          const res = await delSealFlow(item.id);
+          if(res.code === 200){
+            ElMessage({
+              type: 'success',
+              message: '删除成功'
+            });
+            await getList();
+          }else{
+            ElMessage.warning(res.message)
+          }
+        })
+  }
+  else{
+    dataList.value =  dataList.value.filter((i,oldIndex)=> index !== oldIndex )
+  }
+
+}
+
+const saveFlow = async (item,index) => {
+  const valid = await busRef.value[index].validate();
+  if(valid){
+    if(item.id){
+      const { ...data} = JSON.parse(JSON.stringify(dataList.value[index]))
+      const res = await editSealFlow(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '编辑成功'
+        });
+        await getList()
+      }else{
+        ElMessage.warning(res.message)
+      }
+      busRef.value[index].clearValidate();
+
+    }else{
+      const {id, ...data} = JSON.parse(JSON.stringify(dataList.value[index]))
+      const res = await addSealFlow(data)
+      if(res.code === 200){
+        ElMessage({
+          type: 'success',
+          message: '新增成功'
+        });
+       await getList()
+      }else{
+        ElMessage.warning(res.message)
+      }
+      busRef.value[index].clearValidate();
+    }
+  }
+
+
+}
+</script>
+<style lang="scss">
+.pag-container{
+  float: right;
+  margin-top: 10px;
+}
 </style>

--
Gitblit v1.9.2