Kaynağa Gözat

流程接口调试

zhangjie 3 yıl önce
ebeveyn
işleme
c7b41d7be2

+ 2 - 2
README.md

@@ -1,6 +1,6 @@
 # teachcloud-platform-web
 
-**教务处平台前端系统**
+**知学知考前端系统**
 
 ## 项目操作
 
@@ -114,4 +114,4 @@ yarn run lint
 ## TODO
 
 - 暂无
-- 
+-

+ 1 - 1
card/previewTemp.js

@@ -12,7 +12,7 @@ export default domeStr => {
         maximum-scale=1.0,minimum-scale=1.0, user-scalable=no" "="">
         <meta name=" renderer" content="webkit|ie-comp|ie-stand" />
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
-        <title>教务处平台题卡</title>
+        <title>知学知考题卡</title>
 
       </head>
       <style>${resetCss}${previewCss}</style>

+ 1 - 1
public/index.html

@@ -9,7 +9,7 @@
     <meta name="apple-mobile-web-app-capable" content="yes" />
     <meta name="apple-mobile-web-app-status-bar-style" content="black" />
     <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
-    <title>逸教云</title>
+    <title>知学知考</title>
   </head>
 
   <body>

BIN
src/assets/images/login-theme.png


+ 11 - 0
src/assets/styles/login.scss

@@ -31,6 +31,17 @@
   background-image: url(../images/login-theme.png);
   background-size: 100% 100%;
   float: left;
+  position: relative;
+
+  > h2 {
+    position: absolute;
+    width: 100%;
+    top: 60px;
+    left: 0;
+    text-align: center;
+    font-size: 25px;
+    color: #fff;
+  }
 }
 .login-body {
   margin-left: 420px;

+ 4 - 3
src/constants/enumerate.js

@@ -109,9 +109,9 @@ export const EXAM_MODE_TYPE = {
 };
 
 export const FLOW_TYPE = {
-  ONE: "电子交卷审核",
-  TWO: "题库试题提交审核",
-  THREE: "题库试卷审核"
+  ELECTRON_FLOW: "电子交卷审核",
+  QUESTION_ELECTRON_FLOW: "题库试题提交审核",
+  PAPER_ELECTRON_FLOW: "题库试卷审核"
 };
 
 // 命题 -------------->
@@ -225,6 +225,7 @@ export const FLOW_STATUS = {
   START: "已开始",
   AUDITING: "审核中",
   REJECT: "已驳回",
+  CANCEL: "已撤回",
   END: "已终止",
   FINISH: "已结束"
 };

+ 1 - 1
src/modules/admin/views/Admin.vue

@@ -21,7 +21,7 @@
     <div class="home-navs">
       <div class="head-logo">
         <div class="head-logo-content">
-          <h1>分布式印刷</h1>
+          <h1>知学知考</h1>
         </div>
       </div>
       <el-menu

+ 14 - 77
src/modules/base/api.js

@@ -167,100 +167,37 @@ export const updateCourseSimple = datas => {
 };
 // flow-manage
 export const flowListPage = datas => {
-  return $postParam("/api/admin/flow/list", datas);
+  return $postParam("/api/admin/custom/flow/list", datas);
 };
 export const flowPublish = id => {
-  return $post("/api/admin/flow/publish", { id });
+  return $post("/api/admin/custom/flow/publish", { id });
 };
 export const flowEnd = flowId => {
-  return $post("/api/admin/flow/end", { flowId });
+  return $post("/api/admin/custom/flow/end", { flowId });
 };
-export const flowDelete = id => {
-  return $post("/api/admin/flow/enable", { id });
+export const flowDelete = ({ id, enable }) => {
+  return $post("/api/admin/custom/flow/enable", { id, enable });
 };
 export const flowRegister = (datas, headers) => {
-  return $post("/api/admin/flow/register", datas, { headers });
+  return $post("/api/admin/custom/flow/register", datas, { headers });
 };
 export const updateFlow = datas => {
-  return $post("/api/admin/flow/update", datas);
+  // TODO:接口暂时没有
+  return $post("/api/admin/custom/flow/update", datas);
 };
 export const updateFlowDetail = datas => {
-  return $post("/api/admin/flow/update-detail", datas);
-};
-export const flowNodeList = flowId => {
-  // return $post("/api/admin/flow/nodes", { flowId });
-  return Promise.resolve([
-    {
-      id: 1,
-      type: "START",
-      content: "开始流程",
-      w: 200,
-      h: 45,
-      x: 562,
-      y: 40,
-      property: null
-    },
-    {
-      id: 2,
-      type: "PROCESS",
-      content: "",
-      w: 200,
-      h: 95,
-      x: 562,
-      y: 145,
-      property: {
-        approveUserType: "USER",
-        approveUsers: [{ id: 5, name: "李四 2-1" }],
-        approveRoles: [],
-        copyForUsers: [{ id: 6, name: "李四 2-2" }],
-        multipleUserApproveType: "ORDER",
-        rejectType: "PREV",
-        rejectResubmitType: "NORMAL"
-      }
-    },
-    {
-      id: 3,
-      type: "PROCESS",
-      content: "",
-      w: 200,
-      h: 95,
-      x: 562,
-      y: 301,
-      property: {
-        approveUserType: "USER",
-        approveUsers: [
-          { id: 9, name: "张三 1-1-1" },
-          { id: 10, name: "张三 1-1-2" }
-        ],
-        approveRoles: [],
-        copyForUsers: [
-          { id: 7, name: "李四 3-1" },
-          { id: 8, name: "李四 3-2" }
-        ],
-        multipleUserApproveType: "ORDER",
-        rejectType: "PREV",
-        rejectResubmitType: "NORMAL"
-      }
-    },
-    {
-      id: 4,
-      type: "END",
-      content: "结束流程",
-      w: 200,
-      h: 45,
-      x: 562,
-      y: 455,
-      property: null
-    }
-  ]);
+  return $post("/api/admin/custom/flow/save", datas);
+};
+export const flowDetail = id => {
+  return $postParam("/api/admin/custom/flow/edit", { id });
 };
 
 // approve-record
 export const approveRecordListPage = datas => {
-  return $postParam("/api/admin/flow/approve/list", datas);
+  return $postParam("/api/admin/custom/flow/approve/list", datas);
 };
 export const deleteApproveRecord = datas => {
-  return $post("/api/admin/flow/approve/enable", datas);
+  return $post("/api/admin/custom/flow/approve/enable", datas);
 };
 
 // dict --------------------------------->

+ 3 - 3
src/modules/base/components/ModifyFlow.vue

@@ -51,12 +51,12 @@
 
 <script>
 import { FLOW_TYPE } from "../../../constants/enumerate";
-import { updateFlow } from "../api";
+import { updateFlowDetail } from "../api";
 
 const initModalForm = {
   id: null,
   name: "",
-  type: ""
+  type: "ELECTRON_FLOW"
 };
 
 export default {
@@ -135,7 +135,7 @@ export default {
 
       if (this.isSubmit) return;
       this.isSubmit = true;
-      const data = await updateFlow(this.modalForm).catch(() => {
+      const data = await updateFlowDetail(this.modalForm).catch(() => {
         this.isSubmit = false;
       });
 

+ 15 - 5
src/modules/base/components/ModifyFlowDetail.vue

@@ -271,7 +271,7 @@
 
 <script>
 import { deepCopy } from "../../../plugins/utils";
-import { flowNodeList, updateFlowDetail } from "../api";
+import { flowDetail, updateFlowDetail } from "../api";
 import SelectUserDialog from "./SelectUserDialog";
 import SelectRoleDialog from "./SelectRoleDialog";
 
@@ -364,8 +364,8 @@ export default {
   methods: {
     async initData(val) {
       if (val.id) {
-        const data = await flowNodeList(val.id);
-        this.nodes = data;
+        const data = await flowDetail(val.id);
+        this.nodes = data.customFlowLists;
         this.toSelectNode(this.nodes[1]);
       } else {
         this.nodes = deepCopy(this.initNodes);
@@ -493,6 +493,15 @@ export default {
     },
     async submit() {
       if (this.isSubmit) return;
+      const result = await this.$confirm(
+        `确定要发布流程【${this.instance.name}】吗?`,
+        "提示",
+        {
+          type: "warning"
+        }
+      ).catch(() => {});
+      if (result !== "confirm") return;
+
       if (!this.checkData()) return;
 
       this.nodes.forEach(node => {
@@ -521,10 +530,11 @@ export default {
       this.isSubmit = true;
 
       const res = await updateFlowDetail({
-        id: this.instance.id,
+        customFlowId: this.instance.id,
         name: this.instance.name,
         type: this.instance.type,
-        nodes: nodes
+        publish: true,
+        customFlowLists: nodes
       }).catch(() => {});
       this.isSubmit = false;
       if (!res) return;

+ 3 - 3
src/modules/base/components/ResetPwd.vue

@@ -87,7 +87,7 @@
 
 <script>
 import { updatePwd } from "../api";
-import { getSmsCode } from "@/modules/login/api";
+import { getSmsCodeForBind } from "@/modules/login/api";
 import { password, phone, smscode } from "@/plugins/formRules";
 import { Base64 } from "@/plugins/crypto";
 import fetchSmsMixins from "@/modules/login/fetchSmsMixins";
@@ -204,7 +204,7 @@ export default {
       });
     },
     async fetchSmsCode() {
-      console.log("111");
+      // console.log("111");
       let result = true;
       await this.checkField("mobileNumber").catch(() => {
         result = false;
@@ -213,7 +213,7 @@ export default {
       if (!result) return;
 
       this.isFetchingCode = true;
-      const data = await getSmsCode({
+      const data = await getSmsCodeForBind({
         loginName: this.userInfo.loginName,
         schoolCode: this.userInfo.schoolCode,
         password: Base64(this.modalForm.oldPassword),

+ 35 - 54
src/modules/base/components/SelectUserDialog.vue

@@ -64,7 +64,7 @@
 </template>
 
 <script>
-// import { roleUserTree } from "../api";
+import { organizationList } from "../api";
 
 export default {
   name: "select-user-dialog",
@@ -100,58 +100,31 @@ export default {
   },
   methods: {
     async getOrgUser() {
-      // const data = await roleUserTree();
-      // this.orgUsers = data;
-      this.orgUsers = [
-        {
-          id: 1,
-          name: "一级 1",
-          children: [
-            {
-              id: 4,
-              name: "二级 1-1",
-              children: [
-                {
-                  id: 9,
-                  name: "张三 1-1-1"
-                },
-                {
-                  id: 10,
-                  name: "张三 1-1-2"
-                }
-              ]
-            }
-          ]
-        },
-        {
-          id: 2,
-          name: "一级 2",
-          children: [
-            {
-              id: 5,
-              name: "李四 2-1"
-            },
-            {
-              id: 6,
-              name: "李四 2-2"
-            }
-          ]
-        },
-        {
-          id: 3,
-          name: "一级 3",
-          children: [
-            {
-              id: 7,
-              name: "李四 3-1"
-            },
-            {
-              id: 8,
-              name: "李四 3-2"
-            }
-          ]
-        }
-      ];
+      const data = await organizationList();
+      const parseUser = list => {
+        return list.map(item => {
+          let nitem = {
+            id: item.id,
+            name: item.name,
+            isOrg: true,
+            children: []
+          };
+          if (item["sysUserList"] && item["sysUserList"].length) {
+            nitem.children = item.sysUserList.map(user => {
+              return {
+                id: user.id,
+                name: user.realName,
+                isUser: true
+              };
+            });
+          }
+          if (item["children"] && item["children"].length) {
+            nitem.children = [...nitem.children, ...parseUser(item.children)];
+          }
+          return nitem;
+        });
+      };
+      this.orgUsers = parseUser(data);
       this.userTree = this.orgUsers;
       this.getUserList();
     },
@@ -215,7 +188,15 @@ export default {
         return;
       }
 
-      this.$emit("modified", this.selectedUsers);
+      this.$emit(
+        "modified",
+        this.selectedUsers.map(item => {
+          return {
+            id: item.id,
+            name: item.name
+          };
+        })
+      );
       this.cancel();
     }
   }

+ 21 - 9
src/modules/base/views/ApproveRecordManage.vue

@@ -28,7 +28,7 @@
           <el-form-item label="提交人:">
             <el-input
               style="width: 142px;"
-              v-model.trim="filter.startName"
+              v-model.trim="filter.teacherUserName"
               placeholder="请输入提交人"
               clearable
             ></el-input>
@@ -47,6 +47,14 @@
             >
             </el-date-picker>
           </el-form-item>
+          <el-form-item label="当前处理人:">
+            <el-input
+              style="width: 142px;"
+              v-model.trim="filter.pendApproveUserName"
+              placeholder="请输入当前处理人"
+              clearable
+            ></el-input>
+          </el-form-item>
         </template>
         <el-form-item label-width="0px">
           <el-button
@@ -67,7 +75,10 @@
           width="70"
           :index="indexMethod"
         ></el-table-column>
-        <el-table-column prop="startName" label="提交人"></el-table-column>
+        <el-table-column
+          prop="teacherUserName"
+          label="提交人"
+        ></el-table-column>
         <el-table-column prop="createTime" label="提交时间">
           <span slot-scope="scope">{{
             scope.row.createTime | timestampFilter
@@ -75,7 +86,7 @@
         </el-table-column>
         <el-table-column prop="statusStr" label="流程状态"></el-table-column>
         <el-table-column prop="setupStr" label="当前节点"></el-table-column>
-        <el-table-column prop="currentApproveUserName" label="当前处理人">
+        <el-table-column prop="pendApproveUserName" label="当前处理人">
         </el-table-column>
         <el-table-column class-name="action-column" label="操作" width="120px">
           <template slot-scope="scope">
@@ -133,9 +144,10 @@ export default {
       filter: {
         status: "",
         teachingRoomId: "",
-        startName: "",
-        createStartTime: null,
-        createEndTime: null
+        teacherUserName: "",
+        pendApproveUserName: "",
+        startTime: null,
+        endTime: null
       },
       current: 1,
       size: this.GLOBAL.pageSize,
@@ -161,8 +173,8 @@ export default {
         pageSize: this.size
       };
       if (this.createTime) {
-        datas.createStartTime = this.createTime[0];
-        datas.createEndTime = this.createTime[1];
+        datas.startTime = this.createTime[0];
+        datas.endTime = this.createTime[1];
       }
       const data = await approveRecordListPage(datas);
       this.dataList = data.records;
@@ -183,7 +195,7 @@ export default {
         .then(async () => {
           await deleteApproveRecord({
             flowId: row.flowId,
-            enable: false
+            enable: 0
           });
           this.$message.success("操作成功!");
           this.getList();

+ 5 - 17
src/modules/base/views/FlowManage.vue

@@ -43,14 +43,14 @@
         <el-table-column class-name="action-column" label="操作" width="160">
           <template slot-scope="scope">
             <el-button
-              v-if="!checkPrivilege('link', 'edit')"
+              v-if="checkPrivilege('link', 'edit')"
               class="btn-primary"
               type="text"
               @click="toEditDetail(scope.row)"
               >编辑</el-button
             >
             <el-button
-              v-if="!checkPrivilege('link', 'edit')"
+              v-if="checkPrivilege('link', 'edit')"
               class="btn-primary"
               type="text"
               @click="toEdit(scope.row)"
@@ -88,6 +88,7 @@
     <modify-flow-detail
       ref="ModifyFlowDetail"
       :instance="curFlow"
+      :modified="getList"
     ></modify-flow-detail>
     <!-- RegistFlowDialog -->
     <regist-flow-dialog
@@ -98,7 +99,7 @@
 </template>
 
 <script>
-import { flowListPage, flowPublish, flowDelete } from "../api";
+import { flowListPage, flowDelete } from "../api";
 import RegistFlowDialog from "../components/RegistFlowDialog";
 import ModifyFlow from "../components/ModifyFlow";
 import ModifyFlowDetail from "../components/ModifyFlowDetail";
@@ -162,25 +163,12 @@ export default {
       }
       this.getList();
     },
-    toPublish(row) {
-      if (row.publish) return;
-
-      this.$confirm(`确定要发布流程【${row.name}】吗?`, "提示", {
-        type: "warning"
-      })
-        .then(async () => {
-          await flowPublish(row.id);
-          this.$message.success("操作成功!");
-          row.publish = !row.publish;
-        })
-        .catch(() => {});
-    },
     toDelete(row) {
       this.$confirm(`确定要删除流程【${row.name}】吗?`, "提示", {
         type: "warning"
       })
         .then(async () => {
-          await flowDelete(row.id);
+          await flowDelete({ id: row.id, enable: 0 });
           this.$message.success("操作成功!");
           this.getList();
         })

+ 3 - 0
src/modules/login/api.js

@@ -6,6 +6,9 @@ export const login = datas => {
 export const getSmsCode = datas => {
   return $post("/api/admin/common/get_verify_code", datas);
 };
+export const getSmsCodeForBind = datas => {
+  return $post("/api/admin/common/get_verify_code_for_bind", datas);
+};
 export const logout = () => {
   return $post("/api/admin/common/logout", {});
 };

+ 2 - 2
src/modules/login/views/Login.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="login login-box">
-    <div class="login-theme"></div>
+    <div class="login-theme"><h2>知学知考</h2></div>
     <div class="login-body" @keyup.enter="submit('loginForm')">
       <div class="login-title">
         <img v-if="schoolLogo" :src="schoolLogo" alt="学校logo" />
-        <h1 v-else>教务处平台</h1>
+        <h1 v-else>知学知考</h1>
       </div>
       <div class="login-form">
         <el-form

+ 1 - 1
src/modules/login/views/Login2.vue

@@ -4,7 +4,7 @@
     <div class="login-body" @keyup.enter="submit('loginForm')">
       <div class="login-title">
         <img v-if="schoolLogo" :src="schoolLogo" alt="学校logo" />
-        <h1 v-else>教务处平台</h1>
+        <h1 v-else>知学知考</h1>
       </div>
       <div class="login-form">
         <el-form ref="loginForm" :model="loginModel" :rules="loginRules">

+ 2 - 2
src/views/Home.vue

@@ -44,8 +44,8 @@
     <div class="home-navs">
       <div class="head-logo">
         <div class="head-logo-content">
-          <img v-if="schoolLogo" :src="schoolLogo" alt="分布式印刷" />
-          <h1 v-else>分布式印刷</h1>
+          <img v-if="schoolLogo" :src="schoolLogo" alt="知学知考" />
+          <h1 v-else>知学知考</h1>
         </div>
       </div>