123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- <template>
- <div class="app-container">
- <el-card class="box-card">
- <save-form ref="listQuery" :model="listQuery" :inline="true">
- <WorkOrderSearch
- :genre="'all'"
- :list="listQuery"
- @handleSearch="handleSearch"
- />
- </save-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="流程"
- width="150"
- 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"
- prop="creator_name"
- >
- </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="工单结束状态">
- <template slot-scope="scope">
- <span>
- {{ scope.row.endType | orderStatus }}
- </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"
- prop="update_time"
- width="180"
- >
- <template slot-scope="scope">
- <span>{{ parseTime(scope.row.update_time) }}</span>
- </template>
- </el-table-column>
- <el-table-column
- label="操作"
- align="center"
- class-name="small-padding fixed-width"
- width="240"
- fixed="right"
- >
- <template slot-scope="scope">
- <el-button
- v-permisaction="['process:list:all: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:all:inversion']"
- size="mini"
- type="text"
- icon="el-icon-position"
- @click="handleInversion(scope.row)"
- >转交</el-button
- >
- <el-button
- v-if="scope.row.is_end === 0"
- v-permisaction="['process:list:all:end']"
- size="mini"
- type="text"
- icon="el-icon-switch-button"
- @click="handleUnity(scope.row)"
- >结单</el-button
- >
- <el-button
- v-if="scope.row.contract_url"
- size="mini"
- type="text"
- icon="el-icon-download"
- @click="handleLookContract(scope.row)"
- >下载签章</el-button
- >
- <el-button
- v-permisaction="['process:list:all:delete']"
- size="mini"
- type="text"
- icon="el-icon-delete"
- @click="handleDelete(scope.row)"
- >删除</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- <el-dialog title="转交工单" :visible.sync="dialogVisible" width="40%">
- <TransferInversion
- v-if="dialogVisible"
- :selectItem="selectItem"
- @getList="getList"
- @close="dialogVisible = false"
- />
- </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,
- unityWorkOrder,
- inversionWorkOrder,
- deleteWorkOrder
- } from "@/api/process/work-order";
- import { listUser } from "@/api/system/sysuser";
- import TransferInversion from "./model/transferInversion";
- import load from "@/utils/loading";
- // 搜索
- import WorkOrderSearch from "./components/search/index";
- import SaveForm from "@/components/save-form";
- export default {
- components: { WorkOrderSearch, TransferInversion, SaveForm },
- data() {
- return {
- users: [],
- nodeList: [],
- dialogVisible: false,
- queryParams: {},
- total: 0,
- loading: false,
- ticketList: [],
- listQuery: {
- page: 1,
- per_page: 10
- },
- selectItem: {
- work_order_id: "",
- node_id: null,
- nodeList: [],
- users: []
- }
- };
- },
- mounted() {
- this.getList();
- },
- methods: {
- getList() {
- this.loading = true;
- this.listQuery.page = this.queryParams.pageIndex;
- this.listQuery.per_page = this.queryParams.pageSize;
- this.listQuery.classify = 4;
- 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.$refs.listQuery.save(this.listQuery);
- this.$refs.listQuery.save(this.queryParams, "page");
- this.getList();
- },
- handleView(row) {
- this.$router.push({
- name: "ProcessListHandle",
- query: { workOrderId: row.id, processId: row.process }
- });
- },
- handleLookContract(row) {
- if (row.contract_url) {
- window.open(row.contract_url);
- } else {
- this.$message.error("当前审批暂无签章");
- }
- },
- handleDelete(row) {
- this.$confirm("此操作将删除该数据, 是否继续?", "提示", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- deleteWorkOrder(row.id).then(response => {
- this.$message({
- type: "success",
- message: "删除成功!"
- });
- this.getList();
- });
- })
- .catch(() => {
- this.$message({
- type: "info",
- 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: "已取消"
- });
- });
- },
- async handleInversion(row) {
- this.selectItem.work_order_id = row.id;
- this.selectItem.nodeList = row.state;
- if (this.selectItem.nodeList.length === 1) {
- this.selectItem.node_id = this.selectItem.nodeList[0].id;
- }
- if (this.selectItem.users.length <= 0) {
- load.startLoading();
- await listUser({
- pageSize: 999999
- }).then(response => {
- this.selectItem.users = response.data.list;
- });
- load.endLoading();
- }
- this.dialogVisible = true;
- },
- 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>
|