Browse Source

更新打包

lex-xin 3 years ago
parent
commit
66eb1e31ca

+ 51 - 5
src/views/process/list/handle.vue

@@ -103,7 +103,18 @@
             />
             />
           </div>
           </div>
           <div class="text item" style="text-align: center;margin-top:18px">
           <div class="text item" style="text-align: center;margin-top:18px">
-            <div
+            <el-button
+              v-for="(item, index) in btn_group"
+              :key="index"
+              :type="item.className"
+              @click="submitAction(item)" >{{ item.labelShow }}</el-button>
+
+            <!-- 拒绝按钮内置 -->
+            <el-button
+              v-if="endNodeDetail.id"
+              type="danger"
+              @click="submitAction(endNodeDetail)" >{{ endNodeDetail.label }}</el-button>
+            <!-- <div
               v-if="isActiveProcessing && currentNode.activeOrder"
               v-if="isActiveProcessing && currentNode.activeOrder"
             >
             >
               <el-button
               <el-button
@@ -114,8 +125,8 @@
                 主动接单
                 主动接单
               </el-button>
               </el-button>
             </div>
             </div>
-            <div v-else>
-              <template v-for="(item, index) in processStructureValue.edges">
+            <div v-else> -->
+              <!-- <template v-for="(item, index) in processStructureValue.edges">
                 <el-button
                 <el-button
                   v-if="processStructureValue.workOrder.is_end===0 && item.source===currentNode.id"
                   v-if="processStructureValue.workOrder.is_end===0 && item.source===currentNode.id"
                   :key="index"
                   :key="index"
@@ -124,8 +135,8 @@
                 >
                 >
                   {{ item.label }}
                   {{ item.label }}
                 </el-button>
                 </el-button>
-              </template>
-            </div>
+              </template> -->
+            <!-- </div> -->
           </div>
           </div>
         </div>
         </div>
       </el-card>
       </el-card>
@@ -204,6 +215,7 @@ export default {
       processStructureValue: {
       processStructureValue: {
         workOrder: { title: '' }
         workOrder: { title: '' }
       },
       },
+      endNodeDetail: {}, // 结束结节信息
       ruleForm: {
       ruleForm: {
         title: '',
         title: '',
         process: '',
         process: '',
@@ -216,6 +228,8 @@ export default {
         tpls: [],
         tpls: [],
         tasks: []
         tasks: []
       },
       },
+      btn_group: [],
+      is_end: 0, // 是否结束
       remoteFunc: {
       remoteFunc: {
         // 获取用户列表
         // 获取用户列表
         userList(resolve) {
         userList(resolve) {
@@ -279,6 +293,38 @@ export default {
             break
             break
           }
           }
         }
         }
+
+        const nodes = this.processStructureValue.nodes
+        for (var i = 0; i < nodes.length; i++) {
+            // 判断节点里面是否有结束节点,而且一个流程里面只能有一个结束结点,
+            if(nodes[i].clazz == 'end') {
+                this.endNodeDetail = JSON.parse(JSON.stringify(nodes[i]))
+                this.endNodeDetail.target = nodes[i].id
+                this.endNodeDetail.flowProperties = 0 // 拒绝属性
+                this.endNodeDetail.label = '拒绝'
+            }
+        }
+
+        let psv = response.data.edges || []
+        let btn_group = []
+        psv.forEach(item => {
+            // 过滤其它类型的操作
+            if(this.processStructureValue.workOrder.is_end===0 && item.source===this.currentNode.id && item.flowProperties == 1) {
+                if(item.flowProperties == 1) {
+                    item.className = 'primary'
+                    item.labelShow = '同意'
+                } else if(item.flowProperties == 0) {
+                    item.className = 'danger'
+                } else if(item.flowProperties == 2) {
+                    item.className = 'primary'
+                }
+                btn_group.push(item)
+            } else {
+                item.className = 'primary'
+            }
+        })
+        this.btn_group = btn_group
+
         this.isLoadingStatus = false
         this.isLoadingStatus = false
         this.getAlertMessage()
         this.getAlertMessage()
       })
       })

+ 223 - 195
src/views/process/list/my-create.vue

@@ -1,195 +1,223 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card">
-      <el-form ref="listQuery" :model="listQuery" :inline="true">
-        <el-form ref="listQuery" :model="listQuery" :inline="true">
-          <WorkOrderSearch :genre="'my-create'" @handleSearch="handleSearch" />
-        </el-form>
-      </el-form>
-
-      <el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange">
-        <!-- <el-table-column type="selection" width="55" align="center" /> -->
-        <el-table-column label="ID" prop="id" width="120" />
-        <el-table-column label="标题" prop="title" :show-overflow-tooltip="true" />
-        <el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" />
-        <el-table-column label="当前状态" :show-overflow-tooltip="true">
-          <template slot-scope="scope">
-            <span>
-              {{ scope.row.state_name }}
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column label="当前处理人" :show-overflow-tooltip="true">
-          <template slot-scope="scope">
-            <span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left">
-          <template slot-scope="scope">
-            <span v-if="scope.row.priority===2">
-              <el-tag type="warning">紧急</el-tag>
-            </span>
-            <span v-else-if="scope.row.priority===3">
-              <el-tag type="danger">非常紧急</el-tag>
-            </span>
-            <span v-else>
-              <el-tag type="success">一般</el-tag>
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center">
-          <template slot-scope="scope">
-            <el-tag v-if="scope.row.is_end===0" size="mini" type="success">否</el-tag>
-            <el-tag v-else size="mini" type="danger">是</el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column label="创建时间" align="center" prop="create_time" width="180">
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.create_time) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
-          <template slot-scope="scope">
-            <el-button
-              v-permisaction="['process:list:myCreate:select']"
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleView(scope.row)"
-            >查看</el-button>
-            <el-button
-              v-permisaction="['process:list:myCreate:reopen']"
-              size="mini"
-              type="text"
-              icon="el-icon-refresh-right"
-              @click="handleReopen(scope.row.id)"
-            >重开</el-button>
-            <el-button
-              v-if="scope.row.is_end===0"
-              v-permisaction="['process:list:upcoming:urge']"
-              size="mini"
-              type="text"
-              icon="el-icon-alarm-clock"
-              @click="handleUrge(scope.row)"
-            >催办</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageIndex"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </el-card>
-  </div>
-</template>
-
-<script>
-import { workOrderList, urgeWorkOrder, reopenWorkOrder } from '@/api/process/work-order'
-
-// 搜索
-import WorkOrderSearch from './components/search/index'
-export default {
-  components: { WorkOrderSearch },
-  data() {
-    return {
-      users: [],
-      nodeList: [],
-      queryParams: {},
-      total: 0,
-      loading: false,
-      ticketList: [],
-      listQuery: {
-        page: 1,
-        per_page: 10
-      },
-      ruleForm: {
-        work_order_id: '',
-        node_id: '',
-        user_id: '',
-        remarks: ''
-      },
-      rules: {
-        node_id: [
-          { required: true, message: '请选择节点', trigger: 'change' }
-        ],
-        user_id: [
-          { required: true, message: '请选择用户', trigger: 'change' }
-        ]
-      }
-    }
-  },
-  created() {
-    this.getList()
-  },
-  methods: {
-    getList() {
-      this.loading = true
-      this.listQuery.page = this.queryParams.pageIndex
-      this.listQuery.per_page = this.queryParams.pageSize
-      this.listQuery.classify = 2
-      workOrderList(this.listQuery).then(response => {
-        this.ticketList = response.data.data
-        this.queryParams.pageIndex = response.data.page
-        this.queryParams.pageSize = response.data.per_page
-        this.total = response.data.total_count
-        this.loading = false
-      })
-    },
-    handleSearch(val) {
-      for (var k in val) {
-        this.listQuery[k] = val[k]
-      }
-      this.getList()
-    },
-    handleView(row) {
-      this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }})
-    },
-    handleReopen(id) {
-      this.$confirm('根据此工单新建一个新的工单?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'info'
-      }).then(() => {
-        reopenWorkOrder(id).then(res => {
-          this.getList()
-          this.$message({
-            type: 'success',
-            message: '成功!'
-          })
-        })
-      })
-    },
-    handleSelectionChange() {},
-    handleUrge(row) {
-      this.$confirm('<span style="font-size:15px ">对此工单处理人进行催办通知提醒, 是否继续?</span><br><span style="color: #c33; font-size: 10px">注意:十分钟内只能催办一次。</span>', '催办', {
-        dangerouslyUseHTMLString: true,
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        urgeWorkOrder({
-          workOrderId: row.id
-        }).then(response => {
-          this.$message({
-            type: 'success',
-            message: '已进行催办通知!'
-          })
-        })
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '已取消'
-        })
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+      <el-form ref="listQuery" :model="listQuery" :inline="true">
+        <el-form ref="listQuery" :model="listQuery" :inline="true">
+          <WorkOrderSearch :genre="'my-create'" @handleSearch="handleSearch" />
+        </el-form>
+      </el-form>
+
+      <el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange">
+        <!-- <el-table-column type="selection" width="55" align="center" /> -->
+        <el-table-column label="ID" prop="id" width="120" />
+        <el-table-column label="标题" prop="title" :show-overflow-tooltip="true" />
+        <el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" />
+        <el-table-column label="当前状态" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <span>
+              {{ scope.row.state_name }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="当前处理人" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left">
+          <template slot-scope="scope">
+            <span v-if="scope.row.priority===2">
+              <el-tag type="warning">紧急</el-tag>
+            </span>
+            <span v-else-if="scope.row.priority===3">
+              <el-tag type="danger">非常紧急</el-tag>
+            </span>
+            <span v-else>
+              <el-tag type="success">一般</el-tag>
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center">
+          <template slot-scope="scope">
+            <el-tag v-if="scope.row.is_end===0" size="mini" type="success">否</el-tag>
+            <el-tag v-else size="mini" type="danger">是</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="创建时间" align="center" prop="create_time" width="180">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.create_time) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
+          <template slot-scope="scope">
+            <el-button
+              v-permisaction="['process:list:myCreate:select']"
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleView(scope.row)"
+            >查看</el-button>
+            <el-button
+              v-if="scope.row.is_end===0"
+              v-permisaction="['process:list:myCreate:end']"
+              size="mini"
+              type="text"
+              icon="el-icon-switch-button"
+              @click="handleUnity(scope.row)"
+            >关闭</el-button>
+            <!-- <el-button
+              v-permisaction="['process:list:myCreate:reopen']"
+              size="mini"
+              type="text"
+              icon="el-icon-refresh-right"
+              @click="handleReopen(scope.row.id)"
+            >重开</el-button> -->
+            <el-button
+              v-if="scope.row.is_end===0"
+              v-permisaction="['process:list:upcoming:urge']"
+              size="mini"
+              type="text"
+              icon="el-icon-alarm-clock"
+              @click="handleUrge(scope.row)"
+            >催办</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageIndex"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { workOrderList, urgeWorkOrder, reopenWorkOrder, unityWorkOrder } from '@/api/process/work-order'
+
+// 搜索
+import WorkOrderSearch from './components/search/index'
+export default {
+  components: { WorkOrderSearch },
+  data() {
+    return {
+      users: [],
+      nodeList: [],
+      queryParams: {},
+      total: 0,
+      loading: false,
+      ticketList: [],
+      listQuery: {
+        page: 1,
+        per_page: 10
+      },
+      ruleForm: {
+        work_order_id: '',
+        node_id: '',
+        user_id: '',
+        remarks: ''
+      },
+      rules: {
+        node_id: [
+          { required: true, message: '请选择节点', trigger: 'change' }
+        ],
+        user_id: [
+          { required: true, message: '请选择用户', trigger: 'change' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      this.listQuery.page = this.queryParams.pageIndex
+      this.listQuery.per_page = this.queryParams.pageSize
+      this.listQuery.classify = 2
+      workOrderList(this.listQuery).then(response => {
+        this.ticketList = response.data.data
+        this.queryParams.pageIndex = response.data.page
+        this.queryParams.pageSize = response.data.per_page
+        this.total = response.data.total_count
+        this.loading = false
+      })
+    },
+    handleSearch(val) {
+      for (var k in val) {
+        this.listQuery[k] = val[k]
+      }
+      this.getList()
+    },
+    handleView(row) {
+      this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }})
+    },
+    handleReopen(id) {
+      this.$confirm('根据此工单新建一个新的工单?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'info'
+      }).then(() => {
+        reopenWorkOrder(id).then(res => {
+          this.getList()
+          this.$message({
+            type: 'success',
+            message: '成功!'
+          })
+        })
+      })
+    },
+    handleUnity(row) {
+      this.$confirm('此操作将会结束该工单, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        unityWorkOrder({
+          work_oroder_id: row.id
+        }).then(response => {
+          if (response.code === 200) {
+            this.getList()
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        })
+      })
+    },
+    handleSelectionChange() {},
+    handleUrge(row) {
+      this.$confirm('<span style="font-size:15px ">对此工单处理人进行催办通知提醒, 是否继续?</span><br><span style="color: #c33; font-size: 10px">注意:十分钟内只能催办一次。</span>', '催办', {
+        dangerouslyUseHTMLString: true,
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        urgeWorkOrder({
+          workOrderId: row.id
+        }).then(response => {
+          this.$message({
+            type: 'success',
+            message: '已进行催办通知!'
+          })
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 205 - 205
src/views/process/list/upcoming.vue

@@ -1,205 +1,205 @@
-<template>
-  <div class="app-container">
-    <el-card class="box-card">
-      <el-form ref="listQuery" :model="listQuery" :inline="true">
-        <el-form ref="listQuery" :model="listQuery" :inline="true">
-          <WorkOrderSearch :genre="'upcoming'" @handleSearch="handleSearch" />
-        </el-form>
-      </el-form>
-
-      <el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange">
-        <!-- <el-table-column type="selection" width="55" align="center" /> -->
-        <el-table-column label="ID" prop="id" width="120" />
-        <el-table-column label="标题" prop="title" :show-overflow-tooltip="true" />
-        <el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" />
-        <el-table-column label="当前状态" :show-overflow-tooltip="true">
-          <template slot-scope="scope">
-            <span>
-              {{ scope.row.state_name }}
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column label="当前处理人" :show-overflow-tooltip="true">
-          <template slot-scope="scope">
-            <span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left">
-          <template slot-scope="scope">
-            <span v-if="scope.row.priority===2">
-              <el-tag type="warning">紧急</el-tag>
-            </span>
-            <span v-else-if="scope.row.priority===3">
-              <el-tag type="danger">非常紧急</el-tag>
-            </span>
-            <span v-else>
-              <el-tag type="success">一般</el-tag>
-            </span>
-          </template>
-        </el-table-column>
-        <el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center">
-          <template slot-scope="scope">
-            <el-tag v-if="scope.row.is_end===0" size="mini" type="success">否</el-tag>
-            <el-tag v-else size="mini" type="danger">是</el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column label="创建时间" align="center" prop="create_time" width="180">
-          <template slot-scope="scope">
-            <span>{{ parseTime(scope.row.create_time) }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
-          <template slot-scope="scope">
-            <el-button
-              v-permisaction="['process:list:upcoming:select']"
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleView(scope.row)"
-            >查看</el-button>
-            <el-button
-              v-if="scope.row.is_end===0"
-              v-permisaction="['process:list:upcoming:inversion']"
-              size="mini"
-              type="text"
-              icon="el-icon-position"
-              @click="handleInversion(scope.row)"
-            >转交</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-
-      <el-dialog
-        title="转交工单"
-        :visible.sync="dialogVisible"
-        width="30%"
-      >
-        <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="60px" class="demo-ruleForm">
-          <el-form-item label="节点" prop="node_id">
-            <el-select v-model="ruleForm.node_id" placeholder="选择节点" size="small" style="width: 100%">
-              <el-option v-for="(item, index) in nodeList" :key="index" :label="item.label" :value="item.id" />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="用户" prop="user_id">
-            <el-select v-model="ruleForm.user_id" placeholder="选择用户" size="small" style="width: 100%">
-              <el-option v-for="(item, index) in users" :key="index" :label="item.nickName" :value="item.userId" />
-            </el-select>
-          </el-form-item>
-          <el-form-item label="备注">
-            <el-input v-model="ruleForm.remarks" type="textarea" size="small" />
-          </el-form-item>
-          <el-form-item style="text-align: right">
-            <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
-            <el-button @click="dialogVisible = false">关闭</el-button>
-          </el-form-item>
-        </el-form>
-      </el-dialog>
-
-      <pagination
-        v-show="total>0"
-        :total="total"
-        :page.sync="queryParams.pageIndex"
-        :limit.sync="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </el-card>
-  </div>
-</template>
-
-<script>
-import { workOrderList, inversionWorkOrder } from '@/api/process/work-order'
-import { listUser } from '@/api/system/sysuser'
-
-// 搜索
-import WorkOrderSearch from './components/search/index'
-
-export default {
-  components: { WorkOrderSearch },
-  data() {
-    return {
-      users: [],
-      nodeList: [],
-      dialogVisible: false,
-      queryParams: {},
-      total: 0,
-      loading: false,
-      ticketList: [],
-      listQuery: {
-        page: 1,
-        per_page: 10
-      },
-      ruleForm: {
-        work_order_id: '',
-        node_id: '',
-        user_id: '',
-        remarks: ''
-      },
-      rules: {
-        node_id: [
-          { required: true, message: '请选择节点', trigger: 'change' }
-        ],
-        user_id: [
-          { required: true, message: '请选择用户', trigger: 'change' }
-        ]
-      }
-    }
-  },
-  created() {
-    this.getList()
-  },
-  methods: {
-    getList() {
-      this.loading = true
-      this.listQuery.page = this.queryParams.pageIndex
-      this.listQuery.per_page = this.queryParams.pageSize
-      this.listQuery.classify = 1
-      workOrderList(this.listQuery).then(response => {
-        this.ticketList = response.data.data
-        this.queryParams.pageIndex = response.data.page
-        this.queryParams.pageSize = response.data.per_page
-        this.total = response.data.total_count
-        this.loading = false
-      })
-    },
-    handleSearch(val) {
-      for (var k in val) {
-        this.listQuery[k] = val[k]
-      }
-      this.getList()
-    },
-    handleView(row) {
-      this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }})
-    },
-    handleInversion(row) {
-      this.dialogVisible = true
-      this.ruleForm.work_order_id = row.id
-      this.nodeList = row.state
-      if (this.nodeList.length === 1) {
-        this.ruleForm.node_id = this.nodeList[0].id
-      }
-      listUser({
-        pageSize: 999999
-      }).then(response => {
-        this.users = response.data.list
-      })
-    },
-    handleSelectionChange() {},
-    submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          inversionWorkOrder(this.ruleForm).then(response => {
-            if (response.code === 200) {
-              this.getList()
-              this.dialogVisible = false
-            }
-          })
-        }
-      })
-    }
-  }
-}
-</script>
-
-<style scoped>
-
-</style>
+<template>
+  <div class="app-container">
+    <el-card class="box-card">
+      <el-form ref="listQuery" :model="listQuery" :inline="true">
+        <el-form ref="listQuery" :model="listQuery" :inline="true">
+          <WorkOrderSearch :genre="'upcoming'" @handleSearch="handleSearch" />
+        </el-form>
+      </el-form>
+
+      <el-table v-loading="loading" border :data="ticketList" @selection-change="handleSelectionChange">
+        <!-- <el-table-column type="selection" width="55" align="center" /> -->
+        <el-table-column label="ID" prop="id" width="120" />
+        <el-table-column label="标题" prop="title" :show-overflow-tooltip="true" />
+        <el-table-column label="流程" prop="process_name" :show-overflow-tooltip="true" />
+        <el-table-column label="当前状态" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <span>
+              {{ scope.row.state_name }}
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="当前处理人" :show-overflow-tooltip="true">
+          <template slot-scope="scope">
+            <span v-if="scope.row.is_end===0">{{ scope.row.principals }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="优先级" :show-overflow-tooltip="true" width="120" align="left">
+          <template slot-scope="scope">
+            <span v-if="scope.row.priority===2">
+              <el-tag type="warning">紧急</el-tag>
+            </span>
+            <span v-else-if="scope.row.priority===3">
+              <el-tag type="danger">非常紧急</el-tag>
+            </span>
+            <span v-else>
+              <el-tag type="success">一般</el-tag>
+            </span>
+          </template>
+        </el-table-column>
+        <el-table-column label="是否结束" :show-overflow-tooltip="true" width="80" align="center">
+          <template slot-scope="scope">
+            <el-tag v-if="scope.row.is_end===0" size="mini" type="success">否</el-tag>
+            <el-tag v-else size="mini" type="danger">是</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="创建时间" align="center" prop="create_time" width="180">
+          <template slot-scope="scope">
+            <span>{{ parseTime(scope.row.create_time) }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
+          <template slot-scope="scope">
+            <el-button
+              v-permisaction="['process:list:upcoming:select']"
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleView(scope.row)"
+            >查看</el-button>
+            <el-button
+              v-if="scope.row.is_end===0"
+              v-permisaction="['process:list:upcoming:inversion']"
+              size="mini"
+              type="text"
+              icon="el-icon-position"
+              @click="handleInversion(scope.row)"
+            >转交</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+
+      <el-dialog
+        title="转交工单"
+        :visible.sync="dialogVisible"
+        width="30%"
+      >
+        <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="60px" class="demo-ruleForm">
+          <el-form-item label="节点" prop="node_id">
+            <el-select v-model="ruleForm.node_id" placeholder="选择节点" size="small" style="width: 100%">
+              <el-option v-for="(item, index) in nodeList" :key="index" :label="item.label" :value="item.id" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="用户" prop="user_id">
+            <el-select v-model="ruleForm.user_id" placeholder="选择用户" filterable size="small" style="width: 100%">
+              <el-option v-for="(item, index) in users" :key="index" :label="item.nickName" :value="item.userId" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="备注">
+            <el-input v-model="ruleForm.remarks" type="textarea" size="small" />
+          </el-form-item>
+          <el-form-item style="text-align: right">
+            <el-button type="primary" @click="submitForm('ruleForm')">提交</el-button>
+            <el-button @click="dialogVisible = false">关闭</el-button>
+          </el-form-item>
+        </el-form>
+      </el-dialog>
+
+      <pagination
+        v-show="total>0"
+        :total="total"
+        :page.sync="queryParams.pageIndex"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { workOrderList, inversionWorkOrder } from '@/api/process/work-order'
+import { listUser } from '@/api/system/sysuser'
+
+// 搜索
+import WorkOrderSearch from './components/search/index'
+
+export default {
+  components: { WorkOrderSearch },
+  data() {
+    return {
+      users: [],
+      nodeList: [],
+      dialogVisible: false,
+      queryParams: {},
+      total: 0,
+      loading: false,
+      ticketList: [],
+      listQuery: {
+        page: 1,
+        per_page: 10
+      },
+      ruleForm: {
+        work_order_id: '',
+        node_id: '',
+        user_id: '',
+        remarks: ''
+      },
+      rules: {
+        node_id: [
+          { required: true, message: '请选择节点', trigger: 'change' }
+        ],
+        user_id: [
+          { required: true, message: '请选择用户', trigger: 'change' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      this.listQuery.page = this.queryParams.pageIndex
+      this.listQuery.per_page = this.queryParams.pageSize
+      this.listQuery.classify = 1
+      workOrderList(this.listQuery).then(response => {
+        this.ticketList = response.data.data
+        this.queryParams.pageIndex = response.data.page
+        this.queryParams.pageSize = response.data.per_page
+        this.total = response.data.total_count
+        this.loading = false
+      })
+    },
+    handleSearch(val) {
+      for (var k in val) {
+        this.listQuery[k] = val[k]
+      }
+      this.getList()
+    },
+    handleView(row) {
+      this.$router.push({ name: 'ProcessListHandle', query: { workOrderId: row.id, processId: row.process }})
+    },
+    handleInversion(row) {
+      this.dialogVisible = true
+      this.ruleForm.work_order_id = row.id
+      this.nodeList = row.state
+      if (this.nodeList.length === 1) {
+        this.ruleForm.node_id = this.nodeList[0].id
+      }
+      listUser({
+        pageSize: 999999
+      }).then(response => {
+        this.users = response.data.list
+      })
+    },
+    handleSelectionChange() {},
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          inversionWorkOrder(this.ruleForm).then(response => {
+            if (response.code === 200) {
+              this.getList()
+              this.dialogVisible = false
+            }
+          })
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

File diff suppressed because it is too large
+ 0 - 0
web/index.html


File diff suppressed because it is too large
+ 0 - 0
web/static/web/css/chunk-12b983cd.c37b7f2b.css


File diff suppressed because it is too large
+ 0 - 0
web/static/web/js/app.50a7f616.js


File diff suppressed because it is too large
+ 0 - 0
web/static/web/js/chunk-06660a2f.696f7106.js


File diff suppressed because it is too large
+ 0 - 0
web/static/web/js/chunk-12b983cd.f5d5e95a.js


Some files were not shown because too many files changed in this diff