Browse Source

资费工单

yangbifan 2 years ago
parent
commit
645eb4eeca

+ 3 - 3
config/dev.env.js

@@ -7,9 +7,9 @@ module.exports = merge(prodEnv, {
   ENV_CONFIG: '"dev"',
   ctx:'"http://127.0.0.1:8080"',
   // ctxForm: '"http://10.149.85.91:8000"',//dev
-  // ctxForm: '"http://43.138.50.94:8880"',//test
-  // ctxForm: '"http://192.168.2.44:8880"',//test
-  ctxForm: '"http://10.230.26.15:8000"',//生产
+  ctxForm: '"http://43.138.50.94:8880"',//test
+  // ctxForm: '"http://192.168.2.69:8880"',//test
+  // ctxForm: '"http://10.230.26.15:8000"',//生产
 
   excludeMeWhenSelectNextHandler:false,
   excludeFormerHanlder:false,

+ 2 - 2
public/index.html

@@ -31,10 +31,10 @@
   <div id="app"></div>
   <!-- built files will be auto injected -->
   <script type="text/javascript">
-    window.staticHost = 'http://10.230.26.15:8000/mkt'; // 正式
+    // window.staticHost = 'http://10.230.26.15:8000/mkt'; // 正式
     // window.staticHost = 'http://10.149.85.91:8000/spfm'; // 测试
     // window.staticHost = 'http://192.168.0.103:9600/';
-    // window.staticHost = 'http://43.138.50.94:9600/';
+    window.staticHost = 'http://43.138.50.94:9600/';
 
     // document.title = "hello";
   </script>

+ 10 - 10
src/assets/js/common.js

@@ -263,16 +263,16 @@ let common = {
                     if (!obj.disableLoading) {
                         loading.close()
                     }
-                    if (response.data.code === 1 ||response.data.code == '1') {
-                        bus.$message.success(response.data.data.message)
-                         loading.close()
-                         success(response.data.data)
-                         return response
-                        // if (response.code === 1 ||response.code == '1') {
-                        //     bus.$message.success(response.data.message)
-                        //      loading.close()
-                        //      success(response.data)
-                        //      return response
+                    // if (response.data.code === 1 ||response.data.code == '1') {
+                    //     bus.$message.success(response.data.data.message)
+                    //      loading.close()
+                    //      success(response.data.data)
+                    //      return response
+                        if (response.code === 1 ||response.code == '1') {
+                            bus.$message.success(response.data.message)
+                             loading.close()
+                             success(response.data)
+                             return response
                     } else {
                         if (obj.printMsg) {
                             if (response.message) {

+ 165 - 0
src/components/el-forms.vue

@@ -0,0 +1,165 @@
+<template>
+  <div>
+    <slot :name="list.name"></slot>
+    <el-table
+      ref="table"
+      style="width: 100%"
+      :data="list.data"
+      :height="list.height + 'px'"
+      :max-height="list.height + 'px'"
+      @row-click="getRowData"
+      @selection-change="selectionChange"
+      empty-text="暂无数据"
+      @cell-click="getRowList"
+      :cell-style="columnbackgroundStyle"
+      row-key="id"
+      :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
+    >
+      <!-- 是否多选 -->
+      <el-table-column
+        v-if="list.isSelection"
+        :selecttable="list"
+        type="selection"
+        :width="list.width || 50"
+        align="center"
+      />
+
+      <!-- 是否需要序号 -->
+      <el-table-column
+        v-if="list.isIndex"
+        type="index"
+        label="序号"
+        width="55"
+        align="center"
+      />
+      <template v-for="item in list.titledata">
+        <el-table-column
+          :key="item.prop"
+          :prop="item.prop"
+          :label="item.label"
+          align="center"
+          show-overflow-tooltip
+          :width="item.width || 100"
+        />
+      </template>
+      <!-- 操作列 -->
+      <el-table-column
+        v-if="list.isOperation"
+        v-bind="list.data && list.data.length ? { fixed: 'right' } : null"
+        style="margin-right: 20px"
+        class-name="handle-td"
+        label-class-name="tc"
+        :label="list.operation.label"
+        align="center"
+      >
+        <!-- UI统一一排放3个,4个以上出现更多 -->
+        <template slot-scope="scope">
+          <!-- 三个一排的情况,去掉隐藏的按钮后的长度 -->
+          <template v-if="list.operation.data.length > 0">
+            <div class="btn">
+              <div v-for="item in list.operation.data" :key="item.label">
+                <template v-if="item.type !== 'icon'">
+                  <el-button
+                    v-bind="item"
+                    :type="item.type ? item.type : ''"
+                    size="mini"
+                    @click.native.prevent="
+                      item.handleRow(scope.$index, scope.row, item.label)
+                    "
+                  >
+                    {{ item.label }}
+                  </el-button>
+                </template>
+                <template v-else>
+                  <i
+                    :class="[icon, item.icon]"
+                    v-bind="item"
+                    @click="item.handleRow(scope.$index, scope.row, item.label)"
+                  />
+                </template>
+              </div>
+            </div>
+          </template>
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="page">
+      <el-pagination
+        style="display: flex; flex-direction: row-reverse"
+        v-if="list.pageData.total > 0"
+        :current-page.sync="page"
+        :page-sizes="
+          list.pageData.pageSizes ? list.pageData.pageSizes : [5, 10, 15, 20]
+        "
+        :page-size="list.pageData.pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="list.pageData.total"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data(){
+    return{
+     page:1
+    }
+  },
+  props: {
+    //  表格数据和表格部分属性的对象
+    // eslint-disable-next-line vue/require-default-prop
+    list: {
+      type: Object,
+    },
+  },
+  created() {
+
+  },
+  methods: {
+    columnbackgroundStyle({ row, column, rowIndex, columnIndex }) {
+      if (column.type == "default") {
+        if (column.label === "文件标题") {
+          return "color:#0682CD;";
+        }
+      }
+    },
+    selectionChange(val) {
+
+      //多选数字回调
+      this.$emit("num", val);
+    },
+    handleAdd(name) {
+     
+      this.$emit("toolMsg", name);
+    },
+    handleRow(index, row, lable) {
+     
+    },
+    handleSizeChange(val) {
+      this.$emit("changeSize", val);
+      console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.$emit("changeNum", val);
+      console.log(`当前页: ${val}`);
+    },
+    // 点击行即可选中
+    getRowData(row) {
+      this.$refs.table.toggleRowSelection(row);
+    },
+    getRowList(row, column, event, cell) {
+      this.$emit("clickDemand", column.label, row);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.btn{
+  display: flex;
+  justify-content: center;
+}
+</style>

+ 0 - 3
src/components/workflow.vue

@@ -271,9 +271,6 @@ export default {
       }
     },
     submitWork() {
-      console.log(this.nodes);
-      //多人转派环节
-
       //多人会签处理环节
       let list = {
         userId: JSON.parse(window.sessionStorage.userInfo).loginNo, //人员id

+ 130 - 43
src/components/workflowBase.vue

@@ -8,10 +8,27 @@
               选择路径
 
               <div class="flex-path-list">
-                <div v-if="transferStatus" @click="clickTransfer(1)">转派</div>
+                <div
+                  v-if="manyReassignment"
+                  :class="actives"
+                  @click="clickManyTransfer(1)"
+                >
+                  转派
+                </div>
+                <div
+                  v-if="transferStatus"
+                  :class="active"
+                  @click="clickTransfer(1)"
+                >
+                  转派
+                </div>
                 <div v-if="copyStatus" @click="clickTransfer(2)">抄送</div>
-                <div v-for="(item, index) in node.nextShapes" :key="index" :class="seleIndex == index ? 'active' : ''"
-                  @click="clickGetTree(item, index)">
+                <div
+                  v-for="(item, index) in node.nextShapes"
+                  :key="index"
+                  :class="seleIndex == index ? 'active' : ''"
+                  @click="clickGetTree(item, index)"
+                >
                   {{ item.properties.name }}
                 </div>
               </div>
@@ -20,11 +37,18 @@
           <div class="flex-commons">
             <div class="flex-left-header-text">
               常用意见
-              <span @click="clickEdit" class="flex-icon"><i class="el-icon-edit"></i>修改</span>
+              <span @click="clickEdit" class="flex-icon"
+                ><i class="el-icon-edit"></i>修改</span
+              >
             </div>
             <div class="flex-slide">
-              <div v-for="(item, index) in commonlyList" :key="index" ref="common" class="flex-common"
-                @click="clickCommonly($event)">
+              <div
+                v-for="(item, index) in commonlyList"
+                :key="index"
+                ref="common"
+                class="flex-common"
+                @click="clickCommonly($event)"
+              >
                 {{ item.dataName }}
               </div>
             </div>
@@ -32,17 +56,30 @@
         </div>
         <div class="flex-opinion">
           <div class="flex-left-header-text">意见内容</div>
-          <el-input type="textarea" autosize placeholder="请输入内容" v-model="textarea">
+          <el-input
+            type="textarea"
+            autosize
+            placeholder="请输入内容"
+            v-model="textarea"
+          >
           </el-input>
         </div>
       </div>
       <div class="flex-right" :class="{ copyClass: CopyStatus }">
-        <div class="flex-left-header-text" :class="{ 'flex-right-text': CopyStatus }">
+        <div
+          class="flex-left-header-text"
+          :class="{ 'flex-right-text': CopyStatus }"
+        >
           本部门人员办理
           <div style="display: flex">
             <div class="flex-header-text-tree">
               候选人
-              <deptTree ref="defTree" class="flex-slide" :treeList="treeList" @changeTree="changeTree" />
+              <deptTree
+                ref="defTree"
+                class="flex-slide"
+                :treeList="treeList"
+                @changeTree="changeTree"
+              />
             </div>
             <div class="flex-header-text-tree">
               已选人员
@@ -58,7 +95,12 @@
           <div style="display: flex">
             <div class="flex-header-text-tree">
               抄送人
-              <deptTree ref="defTrees" class="flex-slide" :treeList="treeCopyList" @changeTree="changeTreeCopy" />
+              <deptTree
+                ref="defTrees"
+                class="flex-slide"
+                :treeList="treeCopyList"
+                @changeTree="changeTreeCopy"
+              />
             </div>
             <div class="flex-header-text-tree">
               已选人员
@@ -73,12 +115,23 @@
         <el-button type="primary" @click="submitWork()">提交</el-button>
       </div>
     </div>
-    <el-dialog title="修改常用意见" :visible.sync="editStatus" width="100%" :before-close="editCloses" :modal="false"
-      :destroy-on-close="true">
+    <el-dialog
+      title="修改常用意见"
+      :visible.sync="editStatus"
+      width="100%"
+      :before-close="editCloses"
+      :modal="false"
+      :destroy-on-close="true"
+    >
       <div style="overflow-y: scroll; overflow-x: hidden; height: 240px">
-        <div v-for="(item, index) in commonlyList" :key="index" ref="common" class="flex-common">
+        <div
+          v-for="(item, index) in commonlyList"
+          :key="index"
+          ref="common"
+          class="flex-common"
+        >
           {{ item.dataName
-}}<i class="el-icon-circle-close" @click="deleStatus(item)"></i>
+          }}<i class="el-icon-circle-close" @click="deleStatus(item)"></i>
         </div>
         <div class="flex-common">
           <i class="el-icon-circle-plus-outline" @click="addStatus()"></i>
@@ -97,6 +150,7 @@ export default {
   name: "workflow",
   data() {
     return {
+      active: "",
       manyPeopleStatus: false, //多人处理下发任务
       editStatus: false, //常用意见控制
       transferStatus: false, //转派按钮控制
@@ -104,7 +158,7 @@ export default {
       copyStatus: false, //抄送按钮控制
       CopyStatus: false, //是否点击抄送状态
       node: [], //路径列表
-      seleIndex: "", //点击路径下标
+      seleIndex: "1099", //点击路径下标
       commonlyList: [], //常用意见数组
       textarea: "未填写意见", //意见内容字段
       copyUser: "", //抄送人员列表
@@ -119,6 +173,8 @@ export default {
       demand: "",
       nextDealManList: "",
       isLastManStatus: false,
+      manyReassignment: false,
+      actives: "",
     };
   },
   props: {
@@ -130,30 +186,75 @@ export default {
     requestForm: {
       type: Object,
     },
+    adminResourceId: {
+      type: String,
+    },
   },
   created() {
+    console.log(this.list);
     this.getNextPath(this.list.resourceId, 1);
     this.getMetirialType();
   },
   methods: {
-    async nextWorks(lists, list) {
+    //多人转派
+    clickManyTransfer() {
+      (this.actives = this.actives != "" ? "" : "active"),
+        (this.seleIndex = "1099");
+      this.getNextPath(this.adminResourceId, 3);
+    },
+    async getLastManList(e) {
       let _this = this;
       let obj = {
-        url: _this.$url.formList.nextWork, //下一步工作流接口
-        data: lists,
-        status: "form",
+        url: _this.$url.formList.getComplateLastMan, //开始工作流接口
+        data: e,
+        // status: "form",
+        headers: {
+          "Content-Type": "application/json",
+        },
       };
-      await this.common.httpPost(obj, success);
-      function success(data) {
-        let updateList = {
-          taskId: data.taskid,
-          id: _this.list.id,
-          resourceId: _this.nodes.currentShape[0].resourceId,
-          tableName: _this.requestForm.processDefinitionKey,
+
+      let res = await this.common.httpPost(obj, success);
+      function success(data) {}
+    },
+    async nextWorks(lists, list) {
+      let listss = {
+        userId: this.nextDealManList, //人员id
+        taskId: this.list.taskId, //表单标识
+        loginstr: JSON.parse(window.sessionStorage.userInfo).loginNoStr,
+        // taskName: this.clicknextName, //流程节点
+        content: this.textarea, //意见内容
+      };
+      if (this.manyReassignment == true) {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.getNewTransferTask + _this.list.taskId, //下一步工作流接口
+          data: listss,
+          status: "form",
+        };
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          _this.$emit("beforeClose", true);
+        }
+      } else {
+        let _this = this;
+        let obj = {
+          url: _this.$url.formList.nextWork, //下一步工作流接口
+          data: lists,
+          status: "form",
         };
-        list.taskId = data.taskid;
-        _this.setUpdate(updateList);
-        _this.getLastManList(list);
+        await this.common.httpPost(obj, success);
+        function success(data) {
+          console.log(data);
+          let updateList = {
+            taskId: data.taskid,
+            id: _this.list.id,
+            resourceId: _this.nodes.currentShape[0].resourceId,
+            tableName: _this.requestForm.processDefinitionKey,
+          };
+          list.taskId = data.taskid;
+          _this.setUpdate(updateList);
+          _this.getLastManList(list);
+        }
       }
     },
     submitWork() {
@@ -253,20 +354,6 @@ export default {
         this.demand = res.data;
       });
     },
-    async getLastManList(e) {
-      let _this = this;
-      let obj = {
-        url: _this.$url.formList.getComplateLastMan, //开始工作流接口
-        data: e,
-        // status: "form",
-        headers: {
-          "Content-Type": "application/json",
-        },
-      };
-
-      let res = await this.common.httpPost(obj, success);
-      function success(data) { }
-    },
     async nextWork(list) {
       //e:yes||no,list:传入数组,title:结束标签,res:驳回标签,id:工单更新id
       let _this = this;

+ 2 - 0
src/pages/main/leader/demand/demandHome.vue

@@ -1303,6 +1303,8 @@ export default {
       this.dialogTitle = "新建";
       this.lables.data = [];
       this.disabled = false;
+      this.saveStatus = false;
+      this.startStatus = false
       await this.getDepartmentName();
     },
     //获取用户部门名称

+ 551 - 0
src/pages/main/postage/formTable.vue

@@ -0,0 +1,551 @@
+<template>
+  <div>
+    <div>
+      <div class="flex-title">资费配置工单</div>
+      <el-form
+        ref="form"
+        :model="form"
+        :rules="rule"
+        :disabled="disabled"
+        label-width="200px"
+      >
+        <div class="flex-header">
+          <el-form-item
+            style="width: 42%"
+            label="需求名称:"
+            prop="needName"
+            label-width="140px"
+          >
+            <el-input v-model="form.needName"></el-input>
+          </el-form-item>
+          <el-form-item label="申请部门:" prop="applydept">
+            <el-input v-model="form.applydept" :disabled="true"></el-input>
+          </el-form-item>
+          <el-form-item label="申请科室:" prop="applydepartment">
+            <el-input
+              v-model="form.applydepartment"
+              :disabled="true"
+            ></el-input>
+          </el-form-item>
+        </div>
+        <div class="flex-header">
+          <el-form-item label="拟稿时间:">
+            <el-date-picker
+              type="date"
+              :disabled="true"
+              placeholder="选择日期"
+              v-model="form.proposerTime"
+              :picker-options="pickerOptions"
+              value-format="yyyy-MM-dd"
+              style="width: 100%"
+            ></el-date-picker>
+          </el-form-item>
+          <el-form-item label="拟稿人:" prop="proposer">
+            <el-input v-model="form.proposer" :disabled="true"></el-input>
+          </el-form-item>
+          <el-form-item label="编号:" prop="fileno">
+            <el-input v-model="form.fileno" :disabled="true"></el-input>
+          </el-form-item>
+
+          <el-form-item label="联系电话" prop="phone">
+            <el-input v-model="form.phone" :disabled="true"></el-input>
+          </el-form-item>
+        </div>
+
+        <div class="flex-header">
+          <el-form-item label="操作类型:" prop="operationType">
+            <el-select v-model="form.operationType" placeholder="请选择">
+              <el-option label="新资费配置" value="新资费配置"></el-option>
+              <el-option label="资费修改" value="资费修改"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="业务线条:"
+            prop="businessLine"
+            label-width="200px"
+          >
+            <el-select v-model="form.businessLine" placeholder="请选择">
+              <el-option label="市场线条" value="是"></el-option>
+              <el-option label="政企线条" value="否"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="宽带配置选项:"
+            prop="isSevenProject"
+            label-width="220px"
+          >
+            <el-select v-model="form.broadband" placeholder="请选择">
+              <el-option label="是" value="是"></el-option>
+              <el-option label="无" value="否"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="资费价格:" prop="proposer">
+            <el-input v-model="form.tariffPrice"></el-input>
+          </el-form-item>
+        </div>
+        <!-- 新资费配置显示表单 -->
+        <div v-if="newPostAge">
+          <div class="flex-header">
+            <el-form-item label="需求时限:">
+              <el-date-picker
+                type="date"
+                :disabled="timeStatus"
+                placeholder="选择日期"
+                v-model="form.demandTime"
+                :picker-options="pickerOptions"
+                value-format="yyyy-MM-dd"
+                style="width: 100%"
+              ></el-date-picker>
+            </el-form-item>
+            <el-form-item label="资费名称:" prop="proposer">
+              <el-input v-model="form.tariffName"></el-input>
+            </el-form-item>
+          </div>
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="资费描述" prop="tariffDesc">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.tariffDesc"
+              ></el-input>
+            </el-form-item>
+          </div>
+          <div class="flex-header">
+            <el-form-item
+              label="费用收取方式:"
+              prop="costPayWay"
+              label-width="220px"
+            >
+              <el-select v-model="form.costPayWay" placeholder="请选择">
+                <el-option
+                  label="费用一次性收取"
+                  value="费用一次性收取"
+                ></el-option>
+                <el-option label="按日分摊" value="按日分摊"></el-option>
+                <el-option
+                  label="区分上下半月"
+                  value="区分上下半月"
+                ></el-option>
+                <el-option
+                  label="不区分上下半月"
+                  value="不区分上下半月"
+                ></el-option>
+                <el-option label="月租日计" value="月租日计"></el-option>
+                <el-option label="其他" value="其他"></el-option>
+              </el-select>
+            </el-form-item>
+            <div class="flex-textarea">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.costPayWayInput"
+              ></el-input>
+            </div>
+          </div>
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="办理场景" prop="handleWay">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.handleWay"
+              ></el-input>
+            </el-form-item>
+          </div>
+          <div class="flex-header">
+            <el-form-item
+              label="提醒短信:"
+              prop="remindMmsg"
+              label-width="220px"
+            >
+              <el-select v-model="form.remindMsg" placeholder="请选择">
+                <el-option label="无" value="无"></el-option>
+                <el-option label="办理成功" value="办理成功"></el-option>
+                <el-option label="退订成功" value="退订成功"></el-option>
+                <el-option label="到期提醒" value="到期提醒"></el-option>
+                <el-option label="限速提醒" value="限速提醒"></el-option>
+                <el-option label="余额提醒" value="余额提醒"></el-option>
+                <el-option label="用尽失效" value="用尽失效"></el-option>
+                <el-option
+                  label="优惠到期提醒"
+                  value="优惠到期提醒"
+                ></el-option>
+              </el-select>
+            </el-form-item>
+            <div class="flex-textarea">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.remindMsgInput"
+              ></el-input>
+            </div>
+          </div>
+          <div class="flex-header">
+            <el-form-item label="酬金要求:" prop="gratuity" label-width="220px">
+              <el-select v-model="form.gratuity" placeholder="请选择">
+                <el-option label="无" value="无"></el-option>
+                <el-option label="有" value="有"></el-option>
+              </el-select>
+            </el-form-item>
+            <div class="flex-textarea">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.gratuityInput"
+              ></el-input>
+            </div>
+          </div>
+          <div class="flex-header">
+            <el-form-item
+              label="报表要求:"
+              prop="reportForm"
+              label-width="220px"
+            >
+              <el-select v-model="form.reportForm" placeholder="请选择">
+                <el-option label="无" value="无"></el-option>
+                <el-option label="有" value="有"></el-option>
+              </el-select>
+            </el-form-item>
+            <div class="flex-textarea">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.reportFormInput"
+              ></el-input>
+            </div>
+          </div>
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="工单协议条款内容调整" prop="clause">
+              <el-input
+                type="textarea"
+                maxlength="500"
+                show-word-limit
+                v-model="form.clause"
+              ></el-input>
+            </el-form-item>
+          </div>
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="备注/内容" prop="needBackdrop">
+              <el-input
+                type="textarea"
+                maxlength="500"
+                show-word-limit
+                v-model="form.content"
+              ></el-input>
+            </el-form-item>
+          </div>
+        </div>
+        <div v-if="postEdit">
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="内容" prop="count">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.count"
+              ></el-input>
+            </el-form-item>
+          </div>
+          <div class="flex-input-tare flex-header">
+            <el-form-item label="资费工单协议条款内容调整" prop="clause">
+              <el-input
+                type="textarea"
+                maxlength="300"
+                show-word-limit
+                v-model="form.clause"
+              ></el-input>
+            </el-form-item>
+          </div>
+        </div>
+        <el-form-item
+          label="附件:"
+          prop="mkFileShareAttachList"
+          label-width="120px"
+        >
+          <my-upload
+            ref="upload"
+            @uploadBack="uploadBack"
+            @delloadBack="delloadBack"
+            @clickDownload="download"
+            :fileInfo="fileInfo"
+            :fileList="list.mkFileShareAttachList"
+          ></my-upload>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div></div>
+    <div></div>
+  </div>
+</template>
+
+<script>
+import myUpload from "../../../components/workflowUpload";
+
+export default {
+  components: {
+    myUpload,
+  },
+  data() {
+    return {
+      fileInfo: {
+        type: "bt1n",
+        typename: "上传文件",
+        limit: 5,
+        url: "/market/waf/upload",
+        fileList: [],
+      },
+      postEdit: false,
+      newPostAge: false,
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() < Date.now() - 8.64e7;
+        },
+      },
+      oneList: [],
+      childrenList: [],
+      twoList: [],
+      twoStatus: false,
+      threeList: [],
+      threeStatus: false,
+      fourList: [],
+      fourStatus: false,
+      fiveList: [],
+      fiveStatus: false,
+      isSensitiveDataStatus: false,
+      timeStatus: false,
+      functionStatus: false,
+      reportStatus: false,
+      Length: "",
+      form: {},
+      rules: {},
+      rule: {},
+      copyRule: {},
+      isList: [],
+    };
+  },
+  props: {
+    list: {
+      type: Object,
+      default: () => {},
+    },
+    disabled: {
+      type: Boolean,
+      default: () => {},
+    },
+  },
+  mounted() {
+    console.log(this.$refs.upload);
+    if (this.list.mkFileShareAttachList) {
+      this.$refs.upload.attList = this.list.mkFileShareAttachList;
+      this.list.mkFileShareAttachList.map((item) => {
+        item.name = item.fileName;
+      });
+    }
+  },
+  created() {
+    this.form = this.list;
+  },
+
+  methods: {
+    uploadBack(v) {
+      if (this.form.mkFileShareAttachList) {
+        this.form.mkFileShareAttachList = [];
+        this.form.mkFileShareAttachList = v;
+      } else {
+        let mkFileShareAttachList = [];
+        mkFileShareAttachList = v;
+        this.$set(this.form, "mkFileShareAttachList", mkFileShareAttachList);
+      }
+    },
+    delloadBack(v) {
+      this.form.mkFileShareAttachList = v;
+      this.$http({
+        url: "/market/zfpzProcess/update",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: this.form,
+      }).then((res) => {
+        console.log(res);
+        // if (res.data.result === 0) {
+        //   this.$message.success("工作流更新成功");
+        // }
+      });
+    },
+    download() {
+      if (this.form.mkFileShareAttachList.length > 1) {
+        this.$http({
+          url: "/market/CMKFile/downAllFile",
+          method: "post",
+          headers: {
+            "Content-Type": "application/json",
+          },
+          responseType: "blob",
+          data: { mkFileShareAttachList: this.form.mkFileShareAttachList },
+        }).then((response) => {
+          if (window.navigator && window.navigator.msSaveOrOpenBlob) {
+            let blob = new Blob([response.data], {
+              type: "application/vnd.ms-excel",
+            });
+            window.navigator.msSaveOrOpenBlob(
+              blob,
+              new Date().getTime().toString() + ".zip"
+            );
+          } else {
+            /* 火狐谷歌的文件下载方式 */
+            var blob = new Blob([response.data]);
+            var downloadElement = document.createElement("a");
+            var href = window.URL.createObjectURL(blob);
+            downloadElement.href = href;
+            downloadElement.download = this.form.needName + ".zip";
+            document.body.appendChild(downloadElement);
+            downloadElement.click();
+            document.body.removeChild(downloadElement);
+            window.URL.revokeObjectURL(href);
+          }
+          if (this.infolist.authType === "3") {
+            this.dialogCli(10);
+          }
+        });
+      } else {
+        let list = {
+          id: this.form.mkFileShareAttachList[0].fileCode,
+          fileName: this.form.mkFileShareAttachList[0].fileName,
+        };
+        this.$http({
+          url: "/market/waf/downFile",
+          method: "post",
+          headers: {
+            "Content-Type": "application/json",
+          },
+          responseType: "blob",
+          data: list,
+        }).then((response) => {
+          console.log(response);
+          if (window.navigator && window.navigator.msSaveOrOpenBlob) {
+            let blob = new Blob([response.data], {
+              type: "application/vnd.ms-excel",
+            });
+            //window.navigator.msSaveOrOpenBlob(blob, this.form.needName);
+            window.navigator.msSaveOrOpenBlob(
+              blob,
+              this.form.mkFileShareAttachList[0].fileName
+            );
+          } else {
+            /* 火狐谷歌的文件下载方式 */
+            var blob = new Blob([response.data]);
+            var downloadElement = document.createElement("a");
+            var href = window.URL.createObjectURL(blob);
+            downloadElement.href = href;
+            downloadElement.download =
+              this.form.mkFileShareAttachList[0].fileName;
+            document.body.appendChild(downloadElement);
+            downloadElement.click();
+            document.body.removeChild(downloadElement);
+            window.URL.revokeObjectURL(href);
+          }
+        });
+      }
+    },
+    download() {},
+  },
+  watch: {
+    "form.operationType": {
+      handler(newVal) {
+        console.log(newVal);
+        if (newVal === "资费修改") {
+          this.newPostAge = false;
+          this.postEdit = true;
+        } else {
+          this.postEdit = false;
+          this.newPostAge = true;
+        }
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+a {
+  text-decoration: none;
+}
+::v-deep .el-upload-list {
+  width: 23rem;
+}
+.flex-title {
+  text-align: center;
+  font-size: 24px;
+  line-height: 60px;
+
+  font-weight: bold;
+}
+.flex-header {
+  margin-top: 20px;
+  display: flex;
+  //   justify-content: space-between;
+
+  ::v-deep .el-form-item {
+    width: 20%;
+    margin-right: 60px;
+  }
+}
+.flex-upload {
+  ::v-deep .el-form-item {
+    width: 100%;
+  }
+}
+.flex-input-tare {
+  ::v-deep .el-form-item {
+    width: 100%;
+    margin-right: 5%;
+  }
+  ::v-deep .el-form-item__label {
+    width: 9rem !important;
+  }
+}
+.flex-textarea {
+  width: 72.7%;
+}
+.el-upload__tip {
+  color: red;
+}
+// ::v-deep .el-input--suffix .el-input__inner {
+//   width: 119% !important;
+// }
+::v-deep .el-input__inner {
+  color: black !important;
+}
+::v-deep .el-textarea.is-disabled .el-textarea__inner {
+  color: black !important;
+}
+::v-deep .el-form-item {
+  display: flex;
+}
+::v-deep .el-form-item__label {
+  // width:100%;
+  height: 50px;
+  line-height: 40px !important;
+  width: 130px;
+  font-size: 0.5rem;
+}
+::v-deep .el-form-item__content {
+  width: 100%;
+  margin-left: 0% !important;
+}
+.el-select,
+::v-deep.el-input_inner {
+  width: 100%;
+}
+::v-deep.el-form-item.foldLabel .el-form-item__label {
+  white-space: pre-line; /*换行显示*/
+  height: 10px; /*设置lable高度,input高度一样*/
+  line-height: 30px !important;
+}
+</style>

+ 927 - 0
src/pages/main/postage/index.vue

@@ -0,0 +1,927 @@
+<template>
+  <div class="flex-box">
+    <!-- v-show="lable.name === 'first'" -->
+    <div class="flex-header" :span="24">
+      <Tabs :tabList="tabList" @status="clickTabTops" />
+      <el-button type="primary" @click="clickNewTag">+新建</el-button>
+    </div>
+    <div class="flex-count">
+      <Table
+        @clickDemand="clickDemand"
+        :list="lableTable"
+        ref="TableList"
+        @num="getNum"
+        @changeNum="changeNum"
+      >
+      </Table>
+    </div>
+    <el-dialog
+      :title="'需求'"
+      :visible.sync="dialogStatus"
+      width="100%"
+      :before-close="handleClose"
+      :modal="false"
+      v-if="dialogStatus"
+      style="display: flex; flex-direction: column"
+      :destroy-on-close="true"
+    >
+      <!-- 后期维护 -->
+      <div style="position: fixed; z-index: 10000">
+        <el-button type="primary" v-if="startStatus" @click="clickHandles"
+          >处理</el-button
+        >
+        <el-button type="primary" @click="handleClose">关闭</el-button>
+        <el-button type="primary" @click="clickSave" v-if="saveStatus"
+          >保存</el-button
+        >
+      </div>
+
+      <FormTable
+        :list="fromList"
+        :disabled="disabled"
+        class="flex-form"
+        ref="formTable"
+      />
+      <div>
+        <div class="table-title">流程追踪</div>
+        <div v-if="abc == true">
+          <Tables :list="lables"></Tables>
+        </div>
+      </div>
+      <div>
+        <!-- <div class="table-title">流程追踪</div>
+        <div v-if="abc == true">
+          <Tables :list="lables"></Tables>
+        </div> -->
+      </div>
+    </el-dialog>
+    <div v-if="destroy">
+      <el-dialog
+        title="处理操作"
+        width="100%"
+        :visible.sync="handleStatus"
+        :before-close="handleCloses"
+        :modal="false"
+        v-if="handleStatus"
+        :destroy-on-close="true"
+      >
+        <Workflow
+          ref="workflow"
+          :list="fromList"
+          v-if="isWorkflowStatus == true"
+          @updateForm="beforeClose"
+          :requestForm="requestForm"
+          :adminResourceId="adminResourceId"
+        />
+        <WorkflowEntrance
+          :list="fromList"
+          v-else
+          :lastManList="lastManList"
+          @beforeClose="beforeClose"
+          :requestForm="requestForm"
+        />
+
+        <!-- 后期维护 -->
+      </el-dialog>
+    </div>
+  </div>
+</template>
+
+<script>
+import Workflow from "../../../components/workflowBase";
+import WorkflowEntrance from "../../../components/workflowEntrance";
+import Tabs from "../../../components/el-tabs.vue";
+import Table from "../../../components/el-form.vue";
+import Tables from "../../../components/el-forms.vue";
+import FormTable from "./formTable.vue";
+import { updateBase } from "../../../http/api.js";
+import {
+  getTodoBase,
+  getDoneBase,
+  getInitiateBase,
+} from "../../../http/api.js";
+export default {
+  components: {
+    Tabs,
+    Table,
+    Tables,
+    FormTable,
+    Workflow,
+    WorkflowEntrance,
+  },
+  data() {
+    return {
+      abc: true,
+      disabled: false,
+      total: "",
+      lableTable: {}, //传给子组件table
+      pageSize: "1",
+      requestForm: {
+        fresourceId: "91e8c4fd-33ed-11ed-a6ed-02427ba2d388", // 本地环境
+        // fresourceId: "bf79721c-33f3-11ed-ba0b-00505687dcd3", //测试环境
+        // fresourceId:'81455799-600d-11ed-b399-e00084564cce',//生产环境
+        processDefinitionKey: "zfpz_pro_process",
+      },
+      adminResourceId: "", //多人处理最后人id
+      isWorkflowStatus: true, //真假工作流权限
+      destroy: false, //工作流组件
+      phone: "", //用户电话号
+      disabled: false, //表单权限控制
+      saveStatus: true, //保存按钮权限
+      startStatus: true, // 处理按钮权限
+      fromList: {}, //表单数据
+      dialogStatus: false, //表单状态控制
+      tabList: [
+        {
+          index: "first",
+          label: "我的待办",
+          number: "",
+          name: "prosss_key",
+        },
+        {
+          index: "two",
+          label: "我的已办",
+          number: "",
+        },
+        {
+          index: "three",
+          label: "我发起的",
+          number: "",
+        },
+      ],
+      firstTable: {
+        name: "first",
+        height: "600",
+        titledata: [
+          {
+            label: "文件标题",
+            prop: "need_name",
+            width: 300,
+            color: "#0682CD",
+          },
+          {
+            label: "发起部门",
+            prop: "applydept",
+            width: 200,
+          },
+          {
+            label: "发起科室",
+            prop: "applydepartment",
+            width: 200,
+          },
+          {
+            label: "发起人",
+            prop: "proposer",
+            width: 200,
+          },
+
+          {
+            label: "发起时间",
+            prop: "proposer_time",
+            width: 250,
+          },
+          {
+            label: "上一步处理人",
+            prop: "predealman",
+            width: 200,
+          },
+          {
+            label: "状态",
+            prop: "taskName",
+            width: 200,
+          },
+        ], //表格头
+        data: [], //内容数据
+        loading: true,
+        pageData: {
+          total: 100, // 总条数
+          pageSize: 10, // 每页数量
+          pageNum: 1, // 页码
+        },
+        isSelection: true, // 表格有多选时设置
+        isOperation: false, // 表格有操作列时设置
+        isIndex: false, // 列表序号
+        operation: {
+          // 表格有操作列时设置
+          label: "操作", // 列名
+          width: "50", // 根据实际情况给宽度
+          data: [
+            {
+              label: "操作", // 操作名称
+              type: "", //按钮类型
+              handleRow: (e, r, o) => {}, // 自定义事件
+            },
+          ],
+        },
+      },
+      twoTable: {
+        name: "two",
+        height: "600",
+        titledata: [
+          {
+            label: "文件标题",
+            prop: "need_name",
+            width: 300,
+            color: "#0682CD",
+          },
+          {
+            label: "发起部门",
+            prop: "applydept",
+            width: 200,
+          },
+          {
+            label: "发起科室",
+            prop: "applydepartment",
+            width: 200,
+          },
+          {
+            label: "发起人",
+            prop: "proposer",
+            width: 200,
+          },
+
+          {
+            label: "发起时间",
+            prop: "proposer_time",
+            width: 250,
+          },
+          {
+            label: "上一步处理人",
+            prop: "predealman",
+            width: 200,
+          },
+          {
+            label: "状态",
+            prop: "taskName",
+            width: 200,
+          },
+        ], //表格头
+        data: [], //内容数据
+        loading: true,
+        pageData: {
+          total: 100, // 总条数
+          pageSize: 10, // 每页数量
+          pageNum: 1, // 页码
+        },
+        isSelection: true, // 表格有多选时设置
+        isOperation: false, // 表格有操作列时设置
+        isIndex: false, // 列表序号
+        operation: {
+          // 表格有操作列时设置
+          label: "操作", // 列名
+          width: "50", // 根据实际情况给宽度
+          data: [
+            {
+              label: "操作", // 操作名称
+              type: "", //按钮类型
+              handleRow: (e, r, o) => {}, // 自定义事件
+            },
+          ],
+        },
+      },
+      threeTable: {
+        name: "three",
+        height: "600",
+        titledata: [
+          {
+            label: "文件标题",
+            prop: "need_name",
+            width: 300,
+            color: "#0682CD",
+          },
+          {
+            label: "发起部门",
+            prop: "applydept",
+            width: 200,
+          },
+          {
+            label: "发起科室",
+            prop: "applydepartment",
+            width: 200,
+          },
+          {
+            label: "发起人",
+            prop: "proposer",
+            width: 200,
+          },
+          {
+            label: "发起时间",
+            prop: "proposer_time",
+            width: 250,
+          },
+          {
+            label: "状态",
+            prop: "taskName",
+            width: 200,
+          },
+        ], //表格头
+        data: [], //内容数据
+        loading: true,
+        pageData: {
+          total: 100, // 总条数
+          pageSize: 10, // 每页数量
+          pageNum: 1, // 页码
+        },
+        isSelection: true, // 表格有多选时设置
+        isOperation: false, // 表格有操作列时设置
+        isIndex: false, // 列表序号
+        operation: {
+          // 表格有操作列时设置
+          label: "操作", // 列名
+          width: "50", // 根据实际情况给宽度
+          data: [
+            {
+              label: "操作", // 操作名称
+              type: "", //按钮类型
+              handleRow: (e, r, o) => {}, // 自定义事件
+            },
+          ],
+        },
+      },
+      request_form: {
+        userId: "",
+        userName: "",
+        path: this.$router.currentRoute.name,
+        userCode: JSON.parse(window.sessionStorage.userInfo).loginNo,
+        title: "title",
+        businessKey: "288",
+        processDefinitionKey: "zfpz_pro_process",
+      },
+      lables: {
+        height: "400",
+        titledata: [
+          {
+            id: 1,
+            label: "环节名称",
+            prop: "taskName",
+            width: 300,
+          },
+          {
+            id: 2,
+            label: "处理人",
+            prop: "assignee",
+            width: 300,
+          },
+          {
+            id: 3,
+            label: "到达时间",
+            prop: "startTime",
+            width: 300,
+          },
+          {
+            id: 4,
+            label: "处理时间",
+            prop: "endTime",
+            width: 300,
+          },
+          {
+            id: 5,
+            label: "回复意见",
+            prop: "content",
+            width: 300,
+          },
+        ], //表格头
+        data: [], //内容数据
+        loading: true,
+        pageData: {
+          total: 0, // 总条数
+          pageSize: 10, // 每页数量
+          pageNum: 1, // 页码
+        },
+        isSelection: false, // 表格有多选时设置
+        isOperation: false, // 表格有操作列时设置
+        isIndex: true, // 列表序号
+        operation: {
+          // 表格有操作列时设置
+          label: "操作", // 列名
+          width: "50", // 根据实际情况给宽度
+          data: [
+            {
+              label: "操作", // 操作名称
+              type: "", //按钮类型
+              handleRow: function () {}, // 自定义事件
+            },
+          ],
+        },
+      },
+      clickTagNameTop: "",
+      totalPage: "1",
+    };
+  },
+  created() {
+    this.getQueryList();
+    this.getMeLaunch();
+    this.getQueryDone();
+    this.lableTable = this.firstTable;
+  },
+  mounted() {
+    this.getUserPhone();
+  },
+  methods: {
+    clickTabTops(e) {
+      console.log(e);
+      this.$refs.TableList.page = 1;
+      this.totalPage = "1";
+      this.clickTagNameTop = e;
+      // this.pageNo = 1
+      // this.$refs.TableList.page = 1;
+      if (this.clickTagNameTop == "first") {
+        this.lableTable = this.firstTable;
+        this.getQueryList();
+      } else if (this.clickTagNameTop == "two") {
+        this.lableTable = this.twoTable;
+        this.getQueryDone();
+      } else {
+        this.lableTable = this.threeTable;
+        this.getMeLaunch();
+      }
+    },
+    //我的待办
+    getQueryList() {
+      let list = {
+        tableName: this.request_form.processDefinitionKey,
+      };
+      getTodoBase(this.totalPage, "", list).then((res) => {
+        this.lableTable.data = res.data.data;
+        // this.tableData.map((item) => {
+        //   item.status = "1";
+        // });
+        this.tabList[0].number = res.data.totalRecord;
+        this.lableTable.pageData.total = res.data.totalRecord;
+        // this.loading = false;
+      });
+    },
+    getQueryDone() {
+      let list = {
+        tableName: this.request_form.processDefinitionKey,
+      };
+      getDoneBase(this.totalPage, "", list).then((res) => {
+        this.lableTable.data = res.data.data;
+        this.lableTable.pageData.total = res.data.totalRecord;
+        // this.tableData.map((item) => {
+        //   item.status = "2";
+        // });
+        this.tabList[1].number = res.data.totalRecord;
+        this.total = res.data.totalRecord;
+        this.loading = false;
+      });
+    },
+    getMeLaunch() {
+      let list = {
+        tableName: this.request_form.processDefinitionKey,
+      };
+      getInitiateBase(this.totalPage, "", list).then((res) => {
+        this.lableTable.data = res.data.data;
+        this.lableTable.pageData.total = res.data.totalRecord;
+        this.tabList[2].number = res.data.totalRecord;
+        // this.tableData.map((item) => {
+        //   if (item.taskName === "起草") {
+        //     item.status = "1";
+        //   } else {
+        //     item.status = "2";
+        //   }
+        // });
+        this.total = res.data.totalRecord;
+        this.loading = false;
+      });
+    },
+    async getLastName() {
+      console.log(this.fromList);
+      let list = {
+        procinstid: this.fromList.processId,
+        taskid: this.fromList.taskId,
+
+        // taskId:e.taskId
+      };
+      let _this = this;
+      let obj = {
+        url: this.$url.formList.getLastName, //流程追踪接口
+        data: list,
+        // status: "form",
+        headers: {
+          "Content-Type": "application/json",
+        },
+      };
+
+      let res = await this.common.httpPost(obj, success);
+      function success(data) {
+        console.log(data);
+        if (data.lastMan == true) {
+          _this.adminResourceId = data.adminResourceId;
+        }
+        _this.destroy = true;
+        _this.handleStatus = true;
+        _this.isWorkflowStatus = data.lastMan == false ? false : true;
+        _this.lastManList = data;
+
+        // console.log(_this.isWorkflowStatus);
+      }
+    },
+    //生成随机编号
+    getProjectNum() {
+      const time = new Date();
+      const year = time.getFullYear();
+      const Mouth = time.getMonth() + 1;
+      const Day = time.getDate();
+      let currentDate = year;
+      if (Mouth >= 10) {
+        currentDate += Mouth;
+      } else {
+        currentDate += "0" + Mouth;
+      }
+      if (Day >= 10) {
+        currentDate += Day;
+      } else {
+        currentDate += "0" + Day;
+      }
+      return currentDate;
+    },
+    getUserPhone() {
+      this.$http({
+        url: "/market/tygdProProcess/getPhone",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        this.phone = res.data;
+      });
+    },
+    //获取用户部门名称
+    getDepartmentName() {
+      this.$http({
+        url: "/market/waf/queryDept",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {},
+      }).then((res) => {
+        let list = {
+          applydept: res.data,
+          applydepartment: JSON.parse(window.sessionStorage.userInfo).groupName,
+          proposer: JSON.parse(window.sessionStorage.userInfo).loginName,
+          fileno: this.getProjectNum() + Math.floor(Math.random() * 100000),
+          proposerTime: new Date(),
+          phone: this.phone,
+        };
+        this.fromList = list;
+        if (this.$refs.formTable) {
+          this.$refs.formTable.form = list;
+        }
+      });
+    },
+    setForm(e) {
+      this.request_form.title = this.$refs.formTable.form.needName;
+      this.$http({
+        url: "/market/zfpzProcess/add",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: this.$refs.formTable.form,
+      }).then((res) => {
+        console.log(res);
+        this.request_form.businessKey = res.data.body;
+        this.clickHandle(res.data.body);
+      });
+    },
+    getUserIds() {
+      this.$http({
+        url: "/market/waf/queryRoleByName",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: {
+          userCode: JSON.parse(window.sessionStorage.userInfo).loginNo,
+        },
+      }).then((res) => {
+        console.log(res);
+        this.request_form.userName = res.data.data.rows[0].name;
+        this.request_form.userId = res.data.data.rows[0].userCode;
+      });
+    },
+    async clickHandle(e) {
+      let _this = this;
+      let obj = {
+        url: this.$url.formList.startWork, //开始工作流接口
+        data: _this.request_form,
+        status: "form",
+        headers: {
+          "Content-Type": "application/x-www-form-urlencoded",
+        },
+      };
+
+      let res = await this.common.httpPost(obj, success);
+      function success(data) {
+        console.log(data);
+        _this.fromList.processId = data.data;
+        _this.taskId = data.data;
+        let list = {
+          id: e,
+          // taskId:_this.formId,
+          tableName: _this.request_form.processDefinitionKey,
+          processId: _this.fromList.processId,
+          // resourceId: _this.nextPath.currentShape[0].resourceId,
+        };
+        _this.setUpdate(list);
+      }
+    },
+    setUpdate(e) {
+      updateBase(e).then((res) => {
+        console.log(res);
+        this.fromList = res.data.body[0];
+        // this.fromList = concat;
+      });
+    },
+    //点击保存
+    clickSave() {
+      this.getUserIds();
+      this.setForm();
+      // this.$refs.formTable.$refs.form.validate((valid) => {
+      //   if (valid) {
+      //     if (this.fromList.id) {
+      //       this.setUpdate(this.$refs.formTable.form);
+      //     } else {
+      //       this.getUserIds();
+      //       this.setForm();
+      //     }
+      //   } else {
+      //     this.$message.error("请完善表单信息");
+      //     return false;
+      //   }
+      // });
+    },
+    //点击新建
+    async clickNewTag() {
+      this.dialogStatus = true;
+      this.lables.data = [];
+      this.disabled = false;
+      this.saveStatus = true;
+      this.startStatus = true;
+      await this.getDepartmentName();
+    },
+    //处理按钮,开始工作流接口
+    clickHandles() {
+      this.getNextPath(this.fromList.resourceId || "");
+    },
+    //查询form表单数据
+    getFromQuery(e) {
+      this.$http({
+        url: "/market/zfpzProcess/query",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: { id: e.id },
+      }).then((res) => {
+        // this.dialogStatus = true;
+        this.fromList.mkFileShareAttachList = res.data.mkFileShareAttachList;
+        this.dialogStatus = true;
+      });
+    },
+    getNextPath(e) {
+      let list = {
+        fresourceId: this.requestForm.fresourceId, // 本地环境
+        processId: this.requestForm.processDefinitionKey,
+      };
+      if (e) {
+        list.resourceId = e;
+      }
+      this.$http({
+        url: "/market/waf/queryPath",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: list,
+      }).then((res) => {
+        if (res.data.body.nextShapes[0].multi) {
+          if (res.data.body.nextShapes[0].multi.multi === "true") {
+            this.getLastName();
+          } else {
+            this.adminResourceId = "";
+
+            this.destroy = true;
+            this.handleStatus = true;
+          }
+        } else {
+          this.adminResourceId = "";
+
+          this.destroy = true;
+          this.handleStatus = true;
+        }
+        if (this.fromList.taskId) {
+        } else {
+          this.$message.error("请先点击保存按钮");
+        }
+      });
+    },
+    async clickForm(e) {
+      console.log(e);
+      let list = {
+        processInstanceId: e.process_id,
+        // taskId:e.taskId
+      };
+      let _this = this;
+      let obj = {
+        url: this.$url.formList.getCommentsByProcessId, //流程追踪接口
+        data: list,
+        headers: {
+          "Content-Type": "application/json",
+        },
+      };
+
+      let res = await this.common.httpPost(obj, success);
+      function success(data) {
+        console.log("[ 接口返回值第一曾 ] >", data);
+        let list = [];
+        list = data.data.data;
+        if (data.data.lastmandata.length != 0) {
+          data.data.lastmandata.map((item, index) => {
+            item.id = index + 22;
+          });
+        }
+        list.map((item, index) => {
+          item.startTime = _this.$util.datetimeFormat(item.startTime);
+          item.endTime = _this.$util.datetimeFormat(item.endTime);
+          item.id = index + 1;
+          item.children = [];
+          if (data.data.lastmandata.length != 0) {
+            let indexs = data.data.lastmandata.findIndex((items) => {
+              if (items.taskId == item.taskId) {
+                item.children.push(items);
+              }
+            });
+          }
+        });
+
+        _this.lables.data = list;
+        console.log("[ _this.lables.data ] >", _this.lables.data);
+        _this.abc = true;
+      }
+    },
+    clickDemand(e, res) {
+      if (e === "工单状态" || e === "文件标题") {
+        if (this.clickTagNameTop === "first") {
+          // this.disabled = true;
+          // this.dialogTitle = "查看";
+          if (res.taskName === "起草") {
+            this.disabled = false;
+            this.saveStatus = true;
+          } else {
+            this.disabled = true;
+            this.saveStatus = false;
+          }
+          // setTimeout(() => {
+          //   // this.getBtnStatus(res);
+          // }, 500);
+        }
+        if (this.clickTagNameTop === "two") {
+          this.disabled = true;
+          this.startStatus = false;
+          this.saveStatus = false;
+          // this.forwardStatus = false;
+          // this.exportBtnStatus = false;
+        }
+        if (this.clickTagNameTop === "three") {
+          if (res.taskName === "起草") {
+            this.startStatus = true;
+            this.disabled = false;
+            this.saveStatus = true;
+          } else {
+            this.startStatus = false;
+            this.disabled = true;
+            this.saveStatus = false;
+          }
+        }
+        res.needName = res.need_name;
+        this.fromList = res;
+
+        console.log(res);
+        // this.disabled = true
+
+        this.clickForm(res);
+        this.getFromQuery(res);
+      }
+    },
+    getNum() {},
+    getCurrentPageList(e) {
+      this.totalPage = Math.ceil(e.length / this.pageSize);
+      this.totalPage = this.totalPage == 0 ? 1 : this.totalPage;
+      let begin = (this.currentPage - 1) * this.pageSize;
+      let end = this.currentPage * this.pageSize;
+      this.currentPageList = e.slice(begin, end);
+      return this.currentPageList;
+    },
+    //获取页码
+    changeNum(e) {
+      console.log(e);
+      this.totalPage = e;
+      if (this.clickTagNameTop === "first") {
+        this.getQueryList();
+      } else if (this.clickTagNameTop === "two") {
+        this.etQueryDone();
+      } else if (this.clickTagNameTop === "three") {
+        this.getMeLaunch();
+      }
+    },
+    //表单详情状态控制
+    handleClose() {
+      this.handleCloses();
+      // console.log(123);
+      // this.dialogStatus = false;
+      // this.forwardStatus = false;
+      // // this.exportBtnStatus = false;
+      // this.saveStatus = false;
+      // this.startStatus = true;
+      // this.closeStatus = true;
+      // this.abc = false;
+      // this.handleCloses();
+      // this.getQueryList();
+      // this.getMeLaunch();
+      // this.getQueryDone();
+    },
+    handleCloses() {
+      this.treeList = [];
+      this.textarea = "";
+      this.handleStatus = false;
+      this.destroy = false;
+      this.dialogStatus = false;
+      this.saveStatus = false;
+      this.startStatus = true;
+      // this.closeStatus = true;
+    },
+    beforeClose() {
+      this.dialogStatus = false;
+      this.handleCloses();
+      this.getQueryList();
+      this.getMeLaunch();
+      this.getQueryDone();
+    },
+  },
+  watch: {
+    fromList: {
+      handler(newVal) {
+        console.log(newVal);
+      },
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+//设置子组件样式
+::v-deep .el-tabs__item {
+  padding: 0;
+  margin-right: 20px;
+  width: 166px;
+  text-align: center;
+  background-color: #d8eaf6;
+  color: black;
+}
+::v-deep .is-active {
+  color: #fff;
+  background-color: #0583cd;
+}
+::v-deep .el-tabs__active-bar {
+  display: none;
+}
+::v-deep .el-tabs__nav-wrap::after {
+  display: none !important;
+}
+.flex-form {
+  margin-top: 50px;
+}
+.flex-box {
+  display: flex;
+  // overflow: auto;
+  overflow-y: auto;
+  overflow-x: hidden;
+  width: calc(100% - 40px);
+  border-radius: 20px;
+  background-color: #fff;
+  margin: 0 auto;
+  margin-top: 20px;
+  position: relative;
+  flex-direction: column;
+  // height: 100%;
+  .flex-header {
+    display: flex;
+    width: 100%;
+    position: relative;
+    height: 60px;
+    margin: 1%;
+    border-bottom: 1px solid #e1e1e1;
+    justify-content: space-between;
+    .el-button {
+      width: 150px;
+      float: right;
+      height: 40px !important;
+      margin-right: 30px;
+    }
+  }
+}
+</style>

+ 6 - 0
src/router/index.js

@@ -2174,6 +2174,12 @@ const routes = [{
             name: 'riskManagement',
             component: (resolve) => require( /* webpackChunkName: "system" */
                 ['../pages/main/leader/risk/riskManagement.vue'], resolve)
+        },{
+            meta: { name: '资费管理', keepAlive: false },
+            path: '/postage',
+            name: 'postage',
+            component: (resolve) => require( /* webpackChunkName: "system" */
+                ['../pages/main/postage/index.vue'], resolve)
         },
     ]
 },

+ 1 - 1
vue.config.js

@@ -133,7 +133,7 @@ module.exports = {
                 // target: 'http://192.168.1.9:9600/spfm',
                 // target: 'http://127.0.0.1:9600/',
                 // target: 'http://192.168.0.156:9600/',
-                target: 'http://192.168.2.44:9600/',
+                target: 'http://192.168.2.69:9600/',
                 // target: 'http://192.168.2.124:9600/',
                 // target: "http://124.223.66.248:9600",
                 // target: "http://43.138.50.94:9600",