Bläddra i källkod

1.资产业务项目终止相关操作优化

GouGengquan 1 vecka sedan
förälder
incheckning
4b62482552
2 ändrade filer med 408 tillägg och 344 borttagningar
  1. 407 338
      src/views/assets/allList.vue
  2. 1 6
      src/views/assets/terminateList.vue

+ 407 - 338
src/views/assets/allList.vue

@@ -1,131 +1,168 @@
 <template>
-    <div class="app-container">
-        <div class="title-container">
-            <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
-        </div>
-        <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="selectPage">
-            <template slot="left">
-                <el-input style="width: 250px;float: left;" class="filter-item" v-model="listQuery.keyWord" placeholder="项目编号/报告号/项目名称/业务来源" clearable></el-input>
-                <el-select v-model="listQuery.principalId" filterable placeholder="项目负责人(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
-                    <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
-                </el-select>
-                <el-select v-model="listQuery.clientManagerId" filterable placeholder="客户经理(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
-                    <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
-                </el-select>
-                <el-select v-model="listQuery.assetsBusinessGener" filterable placeholder="业务类型" style=" width: 180px;margin-left: 10px;float: left;">
-                    <el-option v-for="(s, value) in assetsBusinessGeners" :label="s.label" :value="s.value"></el-option>
-                </el-select>
-                <el-select v-model="listQuery.nodeCode" filterable placeholder="流程节点(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
-                    <el-option v-for="item in nodes" :label="item.name" :value="item.code"></el-option>
-                </el-select>
-                <el-select v-model="listQuery.departmentId" filterable placeholder="接单部门" style=" width: 180px;margin-left: 10px;float: left;">
-                    <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
-                </el-select>
-                <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索</el-button>
-                <el-button class="filter-item" style="float: left;" round type="success" @click="resetParams()">重置</el-button>
-                <el-button class="filter-item" style="float: left;" round type="warning" @click="exportPage()">导出</el-button>
-                <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
-            </template>
-            <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" @headerClick="switchHeader">
-                <el-table-column label="项目编号" align="center" width="100" v-if="!hiddenLabels.includes('orderId')" prop="orderId">
-                    <template slot-scope="{row}">
-                        <span @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="分单类型" align="center" width="80" v-if="!hiddenLabels.includes('allotType')" prop="allotType">
-                    <template slot-scope="{row}">
-                        <span>{{ row.allotType }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="意见书号" align="center" width="220" v-if="!hiddenLabels.includes('statementNo')" prop="statementNo">
-                    <template slot-scope="{row}">
-                        <span @contextmenu.prevent="$doCopy(row.statementNo)">{{ row.statementNo == null ? '-' : row.statementNo }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="报告号" align="center" width="220" v-if="!hiddenLabels.includes('reportNo')" prop="reportNo">
-                    <template slot-scope="{row}">
-                        <span @contextmenu.prevent="$doCopy(row.reportNo)">{{ row.reportNo == null ? '-' : row.reportNo }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="项目名称" align="center" width="250" show-overflow-tooltip v-if="!hiddenLabels.includes('orderId')" prop="orderId">
-                    <template slot-scope="{row}">
-                        <span>{{ row.reportName || row.statementName || row.name }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="业务类型" align="center" width="100" v-if="!hiddenLabels.includes('assetsBusinessGener')" prop="assetsBusinessGener">
-                    <template slot-scope="{row}">
-                        <span>{{ row.assetsBusinessGener }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="客户名称" align="center" width="100" v-if="!hiddenLabels.includes('customerName')" prop="customerName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.customerName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="业务来源" align="center" width="100" v-if="!hiddenLabels.includes('customerSubName')" prop="customerSubName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.customerSubName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="委托人" align="center" width="100" v-if="!hiddenLabels.includes('bailor')" prop="bailor">
-                    <template slot-scope="{row}">
-                        <span>{{ row.bailor == null ? '-' : row.bailor }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="委托人电话" align="center" width="110" v-if="!hiddenLabels.includes('bailorContactTel')" prop="bailorContactTel">
-                    <template slot-scope="{row}">
-                        <span>{{ row.bailorContactTel == null ? '-' : row.bailorContactTel }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="当前节点" align="center" width="100" v-if="!hiddenLabels.includes('currentNodeName')" prop="currentNodeName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.currentNodeName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="当前负责人" align="center" width="100" v-if="!hiddenLabels.includes('handlerName')" prop="handlerName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.handlerName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="项目负责人" align="center" width="100" v-if="!hiddenLabels.includes('principalName')" prop="principalName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.principalName == null ? '-' : row.principalName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="客户经理" align="center" width="100" v-if="!hiddenLabels.includes('clientManagerName')" prop="clientManagerName">
-                    <template slot-scope="{row}">
-                        <span>{{ row.clientManagerName }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="产品应收款(元)" align="center" width="100">
-                    <template slot-scope="{row}">
-                        <span>{{ row.productionShouldAmount == null ? '-' : row.productionShouldAmount }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="产品实收款(元)" align="center" width="100">
-                    <template slot-scope="{row}">
-                        <span>{{ row.productionRealAmount == null ? '-' : row.productionRealAmount }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="标准收费(元)" align="center" width="100">
-                    <template slot-scope="{row}">
-                        <span>{{ row.standardAmount == null ? '-' : row.standardAmount }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="下单时间" align="center" width="170" v-if="!hiddenLabels.includes('created')" prop="created">
-                    <template slot-scope="{row}">
-                        <span>{{ row.created }}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column label="操作" align="center" width="100" fixed="right">
-                    <template slot-scope="{row}">
-                        <el-button type="text" @click="orderDetail(row)">查看</el-button>
-                        <PermissionButton menu-code="_views_assets_order_terminated" class-name="filter-item" name type="text" @click="terminate(row.currentNodeId, row.statementNo, row.reportNo)" />
-                    </template>
-                </el-table-column>
-            </parentTable>
-        </y-page-list-layout>
+  <div class="app-container">
+    <div class="title-container">
+      <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     </div>
+    <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="selectPage">
+      <template slot="left">
+        <el-input style="width: 250px;float: left;" class="filter-item" v-model="listQuery.keyWord" placeholder="项目编号/报告号/项目名称/业务来源" clearable></el-input>
+        <el-select v-model="listQuery.principalId" filterable placeholder="项目负责人(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
+          <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
+        </el-select>
+        <el-select v-model="listQuery.clientManagerId" filterable placeholder="客户经理(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
+          <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
+        </el-select>
+        <el-select v-model="listQuery.assetsBusinessGener" filterable placeholder="业务类型" style=" width: 180px;margin-left: 10px;float: left;">
+          <el-option v-for="(s, value) in assetsBusinessGeners" :label="s.label" :value="s.value"></el-option>
+        </el-select>
+        <el-select v-model="listQuery.nodeCode" filterable placeholder="流程节点(可搜索)" style=" width: 180px;margin-left: 10px;float: left;">
+          <el-option v-for="item in nodes" :label="item.name" :value="item.code"></el-option>
+        </el-select>
+        <el-select v-model="listQuery.departmentId" filterable placeholder="接单部门" style=" width: 180px;margin-left: 10px;float: left;">
+          <el-option v-for="(d, id) in allotDepartment" :label="d.name" :value="d.id"></el-option>
+        </el-select>
+        <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索</el-button>
+        <el-button class="filter-item" style="float: left;" round type="success" @click="resetParams()">重置</el-button>
+        <el-button class="filter-item" style="float: left;" round type="warning" @click="exportPage()">导出</el-button>
+        <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
+      </template>
+      <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;" @headerClick="switchHeader">
+        <el-table-column label="项目编号" align="center" width="100" v-if="!hiddenLabels.includes('orderId')" prop="orderId">
+          <template slot-scope="{row}">
+            <span @contextmenu.prevent="$doCopy(row.orderId)">{{ row.orderId }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="分单类型" align="center" width="80" v-if="!hiddenLabels.includes('allotType')" prop="allotType">
+          <template slot-scope="{row}">
+            <span>{{ row.allotType }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="意见书号" align="center" width="220" v-if="!hiddenLabels.includes('statementNo')" prop="statementNo">
+          <template slot-scope="{row}">
+            <span @contextmenu.prevent="$doCopy(row.statementNo)">{{ row.statementNo == null ? '-' : row.statementNo }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="报告号" align="center" width="220" v-if="!hiddenLabels.includes('reportNo')" prop="reportNo">
+          <template slot-scope="{row}">
+            <span @contextmenu.prevent="$doCopy(row.reportNo)">{{ row.reportNo == null ? '-' : row.reportNo }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="项目名称" align="center" width="250" show-overflow-tooltip v-if="!hiddenLabels.includes('orderId')" prop="orderId">
+          <template slot-scope="{row}">
+            <span>{{ row.reportName || row.statementName || row.name }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="业务类型" align="center" width="100" v-if="!hiddenLabels.includes('assetsBusinessGener')" prop="assetsBusinessGener">
+          <template slot-scope="{row}">
+            <span>{{ row.assetsBusinessGener }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="客户名称" align="center" width="100" v-if="!hiddenLabels.includes('customerName')" prop="customerName">
+          <template slot-scope="{row}">
+            <span>{{ row.customerName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="业务来源" align="center" width="100" v-if="!hiddenLabels.includes('customerSubName')" prop="customerSubName">
+          <template slot-scope="{row}">
+            <span>{{ row.customerSubName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="委托人" align="center" width="100" v-if="!hiddenLabels.includes('bailor')" prop="bailor">
+          <template slot-scope="{row}">
+            <span>{{ row.bailor == null ? '-' : row.bailor }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="委托人电话" align="center" width="110" v-if="!hiddenLabels.includes('bailorContactTel')" prop="bailorContactTel">
+          <template slot-scope="{row}">
+            <span>{{ row.bailorContactTel == null ? '-' : row.bailorContactTel }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="当前节点" align="center" width="100" v-if="!hiddenLabels.includes('currentNodeName')" prop="currentNodeName">
+          <template slot-scope="{row}">
+            <span>{{ row.currentNodeName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="当前负责人" align="center" width="100" v-if="!hiddenLabels.includes('handlerName')" prop="handlerName">
+          <template slot-scope="{row}">
+            <span>{{ row.handlerName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="项目负责人" align="center" width="100" v-if="!hiddenLabels.includes('principalName')" prop="principalName">
+          <template slot-scope="{row}">
+            <span>{{ row.principalName == null ? '-' : row.principalName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="客户经理" align="center" width="100" v-if="!hiddenLabels.includes('clientManagerName')" prop="clientManagerName">
+          <template slot-scope="{row}">
+            <span>{{ row.clientManagerName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品应收款(元)" align="center" width="100">
+          <template slot-scope="{row}">
+            <span>{{ row.productionShouldAmount == null ? '-' : row.productionShouldAmount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="产品实收款(元)" align="center" width="100">
+          <template slot-scope="{row}">
+            <span>{{ row.productionRealAmount == null ? '-' : row.productionRealAmount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="标准收费(元)" align="center" width="100">
+          <template slot-scope="{row}">
+            <span>{{ row.standardAmount == null ? '-' : row.standardAmount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="下单时间" align="center" width="170" v-if="!hiddenLabels.includes('created')" prop="created">
+          <template slot-scope="{row}">
+            <span>{{ row.created }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" width="100" fixed="right">
+          <template slot-scope="{row}">
+            <el-button type="text" @click="orderDetail(row)">查看</el-button>
+            <PermissionButton
+              menu-code="_views_assets_order_terminated"
+              class-name="filter-item"
+              name
+              type="text"
+              @click="openTerminateDialog(row.currentNodeId, row.statementNo, row.reportNo, row.nodeState)"
+            />
+          </template>
+        </el-table-column>
+      </parentTable>
+    </y-page-list-layout>
+    <el-dialog title="项目终止" :visible.sync="dialogTerminateVisible" width="30%">
+      <el-form :model="terminateInfo" :rules="terminateInfoRules" ref="terminateForm">
+        <el-row>
+          <el-col>
+            <el-form-item label="申请人:" prop="applicant" label-width="140px">
+              <el-select v-model="terminateInfo.applicant" filterable placeholder="可搜索" style="width:100%">
+                <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.name"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="操作人:" prop="operator" label-width="140px">
+              <el-input v-model="terminateInfo.operator" disabled style="width:100%"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row>
+          <el-col>
+            <el-form-item label="终止项目原因:" prop="comments" label-width="140px">
+              <el-input type="textarea" v-model="terminateInfo.comments" :autosize="{ minRows: 4, maxRows: 4 }"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogTerminateVisible = false">取 消</el-button>
+        <el-button type="primary" @click="terminate()">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
@@ -135,228 +172,260 @@ import PermissionButton from '@/components/PermissionButton/PermissionButton';
 import { getCookie, setCookie, removeCookie } from '@/utils/auth';
 
 export default {
-    name: 'AssetsAllList',
-    components: {
-        Breadcrumb,
-        YPageListLayout,
-        PermissionButton,
-    },
-    data() {
-        return {
-            pageData: { records: [] },
-            listLoading: false,
-            listQuery: {
-                page: 1,
-                size: 10,
-                current: 1,
-                // 节点code
-                nodeCode: null,
-                // 客户经理id
-                clientManagerId: null,
-                // 项目负责人id
-                principalId: null,
-                // 业务类型
-                assetsBusinessGener: null,
-                // 关键字
-                keyWord: null,
-                departmentId: null,
-                selectByDepartment: false,
-                selectByAll: true,
-            },
-            // 接单部门
-            allotDepartment: [],
-            // 用户下拉列表
-            allUsers: [],
-            // 节点信息下拉列表
-            nodes: [],
-            // 业务类型下拉列表
-            assetsBusinessGeners: [
-                {
-                    value: '企业价值',
-                    label: '企业价值',
-                },
-                {
-                    value: '单项资产',
-                    label: '单项资产',
-                },
-                {
-                    value: '资产组合',
-                    label: '资产组合',
-                },
-                {
-                    value: '无形资产',
-                    label: '无形资产',
-                },
-                {
-                    value: '森林资源资产',
-                    label: '森林资源资产',
-                },
-                {
-                    value: '珠宝首饰艺术品',
-                    label: '珠宝首饰艺术品',
-                },
-                {
-                    value: '债权',
-                    label: '债权',
-                },
-                {
-                    value: '其他资产评估',
-                    label: '其他资产评估',
-                },
-            ],
-            hiddenLabels: [],
-        };
-    },
-    created() {
-        if (getCookie('AssetsPendingList-hiddenLabels') != undefined) {
-            this.hiddenLabels = JSON.parse(getCookie('AssetsPendingList-hiddenLabels'));
-        }
-        // 获取用户下拉列表
-        this.getAllUser();
-        // 获取节点下拉列表
-        this.getNodes();
-        // 获取分单部门
-        this.getAllotDepartment();
-        // 获取资产业务订单
-        this.selectPage();
-    },
-    methods: {
-        // 无条件分页查询
-        selectPage() {
-            // this.listQuery.selectByDepartment = true;
-            this.listLoading = true;
-            this.$api.assets.selectPage(this.listQuery).then((res) => {
-                if (res.code === 200) {
-                    this.pageData = res.data;
-                }
-                this.listLoading = false;
-            });
-        },
-        // 条件查询
-        searchList() {
-            // 重置分页
-            this.listQuery.page = 1;
-            this.listQuery.size = 10;
-            this.listQuery.current = 1;
-            this.selectPage();
-        },
-        // 重置搜索条件
-        resetParams() {
-            this.$router.push({ query: {} });
-            this.listQuery = {
-                page: 1,
-                size: 10,
-                current: 1,
-                // 节点code
-                nodeCode: null,
-                // 客户经理id
-                clientManagerId: null,
-                // 项目负责人id
-                principalId: null,
-                // 业务类型
-                assetsBusinessGener: null,
-                // 关键字
-                keyWord: null,
-                departmentId: null,
-                selectByDepartment: false,
-                selectByAll: true,
-            };
-            this.selectPage();
+  name: 'AssetsAllList',
+  components: {
+    Breadcrumb,
+    YPageListLayout,
+    PermissionButton,
+  },
+  data() {
+    return {
+      pageData: { records: [] },
+      listLoading: false,
+      listQuery: {
+        page: 1,
+        size: 10,
+        current: 1,
+        // 节点code
+        nodeCode: null,
+        // 客户经理id
+        clientManagerId: null,
+        // 项目负责人id
+        principalId: null,
+        // 业务类型
+        assetsBusinessGener: null,
+        // 关键字
+        keyWord: null,
+        departmentId: null,
+        selectByDepartment: false,
+        selectByAll: true,
+      },
+      // 接单部门
+      allotDepartment: [],
+      // 用户下拉列表
+      allUsers: [],
+      // 节点信息下拉列表
+      nodes: [],
+      // 业务类型下拉列表
+      assetsBusinessGeners: [
+        {
+          value: '企业价值',
+          label: '企业价值',
         },
-        // 获取所有用户下拉列表
-        getAllUser() {
-            this.$api.user.simpleAll().then((res) => {
-                if (res.code === 200) {
-                    this.allUsers = res.data;
-                }
-            });
+        {
+          value: '单项资产',
+          label: '单项资产',
         },
-        getNodes() {
-            this.$api.workNode.enum().then((res) => {
-                if (res.code === 200) {
-                    this.nodes = res.data;
-                }
-            });
+        {
+          value: '资产组合',
+          label: '资产组合',
         },
-        orderDetail(row) {
-            const newRow = {
-                assetsId: row.assetsId,
-                statementNo: row.statementNo,
-                reportNo: row.reportNo,
-            };
-            this.$router.push({
-                path: '/assets/orderDetail',
-                query: {
-                    row: JSON.stringify(newRow),
-                    back: '/assets/allList',
-                    couldEdit: false,
-                    couldBack: false,
-                    disabledStatus: true,
-                },
-            });
+        {
+          value: '无形资产',
+          label: '无形资产',
         },
-        // 获取部门下拉列表
-        getAllotDepartment() {
-            this.$api.department.allot('ASSET_BUSINESS').then((res) => {
-                if (res.code === 200) {
-                    this.allotDepartment = res.data;
-                }
-            });
+        {
+          value: '森林资源资产',
+          label: '森林资源资产',
         },
-        // 终止流程
-        terminate(currentNodeId, statementNo, reportNo) {
-            this.$prompt('请填写终止原因。', '终止', {
-                confirmButtonText: '终止',
-                cancelButtonText: '取消',
-                type: 'warning',
-            })
-                .then(({ value }) => {
-                    let commit = new Object();
-                    commit.instanceNodeId = currentNodeId;
-                    commit.state = 'TERMINATE';
-                    commit.comments = value;
-                    commit.businessSubId = statementNo;
-                    commit.businessMinId = reportNo;
-                    commit.ifCheckTask = false;
-                    this.$api.workflow.commit(commit).then((res) => {
-                        if (res.code === 200 && res.data) {
-                            this.$notify({
-                                title: '成功',
-                                message: '工作流节点提交成功。',
-                                type: 'success',
-                                duration: 2000,
-                            });
-                            this.searchList();
-                        } else {
-                            this.$notify({
-                                title: '失败',
-                                message: '工作流节点提交失败,请联系管理员。',
-                                type: 'error',
-                                duration: 2000,
-                            });
-                        }
-                    });
-                })
-                .catch(() => {
-                    this.$message({
-                        type: 'info',
-                        message: '已取消终止',
-                    });
-                });
+        {
+          value: '珠宝首饰艺术品',
+          label: '珠宝首饰艺术品',
         },
-        switchHeader(data) {
-            this.hiddenLabels.push(data);
-            setCookie('AssetsPendingList-hiddenLabels', this.hiddenLabels);
+        {
+          value: '债权',
+          label: '债权',
         },
-        showAllLabel() {
-            removeCookie('AssetsPendingList-hiddenLabels');
-            location.reload();
+        {
+          value: '其他资产评估',
+          label: '其他资产评估',
         },
-        // 资产列表导出
-        exportPage() {
-            this.$utils.exportUtil('/assets/exportPage', this.listQuery, '导出');
+      ],
+      hiddenLabels: [],
+      // 终止项目dialog
+      dialogTerminateVisible: false,
+      terminateInfo: {},
+      terminateInfoRules: {
+        applicant: [{ required: true, message: '申请人不能为空', trigger: 'change' }],
+        operator: [{ required: true, message: '操作人不能为空', trigger: 'blur' }],
+        comments: [{ required: true, message: '原因人不能为空', trigger: 'blur' }],
+      },
+    };
+  },
+  created() {
+    if (getCookie('AssetsPendingList-hiddenLabels') != undefined) {
+      this.hiddenLabels = JSON.parse(getCookie('AssetsPendingList-hiddenLabels'));
+    }
+    // 获取用户下拉列表
+    this.getAllUser();
+    // 获取节点下拉列表
+    this.getNodes();
+    // 获取分单部门
+    this.getAllotDepartment();
+    // 获取资产业务订单
+    this.selectPage();
+  },
+  methods: {
+    // 无条件分页查询
+    selectPage() {
+      // this.listQuery.selectByDepartment = true;
+      this.listLoading = true;
+      this.$api.assets.selectPage(this.listQuery).then((res) => {
+        if (res.code === 200) {
+          this.pageData = res.data;
+        }
+        this.listLoading = false;
+      });
+    },
+    // 条件查询
+    searchList() {
+      // 重置分页
+      this.listQuery.page = 1;
+      this.listQuery.size = 10;
+      this.listQuery.current = 1;
+      this.selectPage();
+    },
+    // 重置搜索条件
+    resetParams() {
+      this.$router.push({ query: {} });
+      this.listQuery = {
+        page: 1,
+        size: 10,
+        current: 1,
+        // 节点code
+        nodeCode: null,
+        // 客户经理id
+        clientManagerId: null,
+        // 项目负责人id
+        principalId: null,
+        // 业务类型
+        assetsBusinessGener: null,
+        // 关键字
+        keyWord: null,
+        departmentId: null,
+        selectByDepartment: false,
+        selectByAll: true,
+      };
+      this.selectPage();
+    },
+    // 获取所有用户下拉列表
+    getAllUser() {
+      this.$api.user.simpleAll().then((res) => {
+        if (res.code === 200) {
+          this.allUsers = res.data;
+        }
+      });
+    },
+    getNodes() {
+      this.$api.workNode.enum().then((res) => {
+        if (res.code === 200) {
+          this.nodes = res.data;
+        }
+      });
+    },
+    orderDetail(row) {
+      const newRow = {
+        assetsId: row.assetsId,
+        statementNo: row.statementNo,
+        reportNo: row.reportNo,
+      };
+      this.$router.push({
+        path: '/assets/orderDetail',
+        query: {
+          row: JSON.stringify(newRow),
+          back: '/assets/allList',
+          couldEdit: false,
+          couldBack: false,
+          disabledStatus: true,
         },
+      });
+    },
+    // 获取部门下拉列表
+    getAllotDepartment() {
+      this.$api.department.allot('ASSET_BUSINESS').then((res) => {
+        if (res.code === 200) {
+          this.allotDepartment = res.data;
+        }
+      });
+    },
+    // 打开终止流程弹窗
+    openTerminateDialog(currentNodeId, statementNo, reportNo, nodeState) {
+      // 判断节点状态为PENDING才可以终止项目
+      switch (nodeState) {
+        case 'FINISHED':
+        case 'WAITING':
+        case 'CLOSED':
+        case 'SKIP':
+          this.$notify({
+            title: '警告',
+            message: '工作流节点未在进行中,无法终止流程。',
+            type: 'error',
+            duration: 2000,
+          });
+          break;
+        case 'PENDING':
+          this.terminateInfo.operator = this.$store.getters.userInfo.name;
+          this.terminateInfo.currentNodeId = currentNodeId;
+          this.terminateInfo.statementNo = statementNo;
+          this.terminateInfo.reportNo = reportNo;
+          this.dialogTerminateVisible = true;
+          break;
+        default:
+          this.$notify({
+            title: '警告',
+            message: '工作流节点状态未知,请联系管理员。',
+            type: 'error',
+            duration: 2000,
+          });
+          break;
+      }
+    },
+    // 终止流程
+    terminate() {
+      this.$refs.terminateForm.validate((valid) => {
+        if (valid) {
+          let commit = new Object();
+          commit.instanceNodeId = this.terminateInfo.currentNodeId;
+          commit.state = 'TERMINATE';
+          commit.comments = '申请人: ' + this.terminateInfo.applicant + '; 操作人: ' + this.terminateInfo.operator + '; 终止原因: ' + this.terminateInfo.comments;
+          commit.businessSubId = this.terminateInfo.statementNo;
+          commit.businessMinId = this.terminateInfo.reportNo;
+          commit.ifCheckTask = false;
+          this.$api.workflow.commit(commit).then((res) => {
+            if (res.code === 200 && res.data) {
+              this.$notify({
+                title: '成功',
+                message: '工作流节点提交成功。',
+                type: 'success',
+                duration: 2000,
+              });
+              this.dialogTerminateVisible = false;
+              this.searchList();
+            } else {
+              this.$notify({
+                title: '失败',
+                message: '工作流节点提交失败,请联系管理员。',
+                type: 'error',
+                duration: 2000,
+              });
+            }
+          });
+        }
+      });
+    },
+    switchHeader(data) {
+      this.hiddenLabels.push(data);
+      setCookie('AssetsPendingList-hiddenLabels', this.hiddenLabels);
+    },
+    showAllLabel() {
+      removeCookie('AssetsPendingList-hiddenLabels');
+      location.reload();
+    },
+    // 资产列表导出
+    exportPage() {
+      this.$utils.exportUtil('/assets/exportPage', this.listQuery, '导出');
     },
+  },
 };
 </script>
 

+ 1 - 6
src/views/assets/terminateList.vue

@@ -56,7 +56,7 @@
                         <span>{{ row.reportNo == null ? '-' : row.reportNo }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="终止原因" align="center" width="250">
+                <el-table-column label="终止信息" align="center" width="300">
                     <template slot-scope="{row}">
                         <span style="color: red;">{{ row.comment}}</span>
                     </template>
@@ -101,11 +101,6 @@
                         <span>{{ row.created }}</span>
                     </template>
                 </el-table-column>
-                <el-table-column label="终止原因" align="center" width="150">
-                    <template slot-scope="{row}">
-                        <span>{{ row.comment == null ? '-' : row.comment }}</span>
-                    </template>
-                </el-table-column>
                 <el-table-column label="操作" align="center" width="200" fixed="right">
                     <template slot-scope="{row}">
                         <el-button type="text" @click="orderDetail(row)">查看</el-button>