1.ico 2.取消申请

main
赵培友 3 years ago
parent d81f8a8bcd
commit b89e99bac2
  1. BIN
      public/favicon.ico
  2. BIN
      public/favicon.png
  3. 2
      public/index.html
  4. 31
      src/views/plugin/workflow/mixins/ex-form.js
  5. 205
      src/views/plugin/workflow/process/components/button.vue
  6. 13
      src/views/plugin/workflow/process/components/form.vue

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@ -18,7 +18,7 @@
<link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.9.12/index.css">
<script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
<script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
<link rel="icon" href="<%= BASE_URL %>favicon.png">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>工单系统</title>
<style>
html,

@ -337,6 +337,7 @@ export default {
* @param pass 驳回/通过
*/
handleCompleteTask(pass, variables) {
console.log(variables);
return new Promise((resolve, reject) => {
const { comment, copyUser, assignee, attachment } =
this.$refs.examineForm.examineForm;
@ -350,6 +351,7 @@ export default {
return;
}
}
if (!pass && !comment) {
this.$message.error("请填写意见");
this.submitLoading = false;
@ -484,8 +486,26 @@ export default {
}
this.$refs["user-select"].visible = false;
},
handleWithdrawTask() {
handleWithdrawTask(index) {
const { taskId } = this.process;
if (index === 1) {
this.$confirm(
'<p><span style="color: red;">撤销:</span>撤销终止此流程</p>',
"确定要撤销终止此流程吗?",
{
type: "warning",
distinguishCancelAndClose: true,
confirmButtonText: "确定",
cancelButtonText: "取消",
dangerouslyUseHTMLString: true,
}
).then(() => {
withdrawTask({ taskId, withdrawType: "wf_withdraw_end" }).then(() => {
this.$message.success("操作成功");
this.handleCloseTag("/plugin/workflow/process/workorder");
});
});
} else {
this.$confirm(
'<p><span style="color: red;">撤销:</span>撤销终止此流程</p><p><span style="color: red;">撤回:</span>撤回到发起人重新提交,若当前流程不存在发起人节点,功能同撤销</p>',
"请选择撤销/撤回操作",
@ -498,10 +518,12 @@ export default {
}
)
.then(() => {
withdrawTask({ taskId, withdrawType: "wf_withdraw_end" }).then(() => {
withdrawTask({ taskId, withdrawType: "wf_withdraw_end" }).then(
() => {
this.$message.success("操作成功");
this.handleCloseTag("/plugin/workflow/process/todo");
});
this.handleCloseTag("/plugin/workflow/process/workorder");
}
);
})
.catch((action) => {
if (action == "cancel") {
@ -513,6 +535,7 @@ export default {
);
}
});
}
},
handlePrint() {
// 打印

@ -1,156 +1,219 @@
<template>
<div>
<div style="height: 120px;"></div>
<el-row class="foot-item avue-affix"
:style="{width: isCollapse? 'calc(100% - 80px)': 'calc(100% - 260px)' }"
id="avue-view">
<div style="height: 120px"></div>
<el-row
class="foot-item avue-affix"
:style="{
width: isCollapse ? 'calc(100% - 80px)' : 'calc(100% - 260px)',
}"
id="avue-view"
>
<template v-if="process.status == 'todo'">
<el-button v-if="getButton('wf_pass')"
<el-button
v-if="getButton('wf_pass')"
type="success"
size="medium"
v-loading="loading"
@click="$emit('examine', true)">
<span v-if="['recall', 'reject'].includes(process.processIsFinished)">重新提交</span>
<span v-else>{{getButton('wf_pass').name}}</span>
@click="$emit('examine', true)"
>
<span v-if="['recall', 'reject'].includes(process.processIsFinished)"
>重新提交</span
>
<span v-else>{{ getButton("wf_pass").name }}</span>
</el-button>
<el-button v-if="getButton('wf_effect') && !['recall', 'reject'].includes(process.processIsFinished)"
<el-button
v-if="
getButton('wf_effect') &&
!['recall', 'reject'].includes(process.processIsFinished)
"
type="success"
size="medium"
v-loading="loading"
@click="$emit('examine', true)">
<span >{{getButton('wf_effect').name}}</span>
@click="$emit('examine', true)"
>
<span>{{ getButton("wf_effect").name }}</span>
</el-button>
<el-button v-if="getButton('wf_reject')"
<el-button
v-if="getButton('wf_reject') && backNodes.length > 1"
type="danger"
size="medium"
v-loading="loading"
@click="$emit('examine', false)">
<span v-if="backNodes.length > 1">{{getButton('wf_reject').name}}</span>
<span v-else>取消申请</span>
@click="$emit('examine', false)"
>
<span v-if="backNodes.length > 1">{{
getButton("wf_reject").name
}}</span>
</el-button>
<el-button v-if="getButton('wf_transfer')"
<el-button
v-if="getButton('wf_reject') && backNodes.length == 1"
type="danger"
size="medium"
v-loading="loading"
@click="$emit('withdraw', 1)"
>
<span>取消申请</span>
</el-button>
<el-button
v-if="getButton('wf_transfer')"
type="primary"
size="medium"
v-loading="loading"
@click="$emit('user-select', {type: 'transfer', checkType: 'radio'})">{{getButton('wf_transfer').name}}</el-button>
<el-button v-if="getButton('wf_delegate')"
@click="
$emit('user-select', { type: 'transfer', checkType: 'radio' })
"
>{{ getButton("wf_transfer").name }}</el-button
>
<el-button
v-if="getButton('wf_delegate')"
type="warning"
size="medium"
v-loading="loading"
@click="$emit('user-select', {type: 'delegate', checkType: 'radio'})">{{getButton('wf_delegate').name}}</el-button>
<el-button v-if="getButton('wf_rollback')"
@click="
$emit('user-select', { type: 'delegate', checkType: 'radio' })
"
>{{ getButton("wf_delegate").name }}</el-button
>
<el-button
v-if="getButton('wf_rollback')"
type="success"
size="medium"
v-loading="loading"
@click="handleRollback">{{getButton('wf_rollback').name}}</el-button>
<el-button v-if="getButton('wf_terminate')"
@click="handleRollback"
>{{ getButton("wf_rollback").name }}</el-button
>
<el-button
v-if="getButton('wf_terminate')"
type="danger"
size="medium"
v-loading="loading"
@click="$emit('terminate')">{{getButton('wf_terminate').name}}</el-button>
<el-button v-if="process.isMultiInstance && getButton('wf_add_instance')"
@click="$emit('terminate')"
>{{ getButton("wf_terminate").name }}</el-button
>
<el-button
v-if="process.isMultiInstance && getButton('wf_add_instance')"
type="primary"
size="medium"
v-loading="loading"
@click="$emit('user-select', {type: 'addInstance', checkType: 'checkbox'})">{{getButton('wf_add_instance').name}}</el-button>
@click="
$emit('user-select', { type: 'addInstance', checkType: 'checkbox' })
"
>{{ getButton("wf_add_instance").name }}</el-button
>
</template>
<el-button v-if="permission.wf_process_withdraw && process.isOwner && process.isReturnable && !['recall', 'reject'].includes(process.processIsFinished)"
<el-button
v-if="
permission.wf_process_withdraw &&
process.isOwner &&
process.isReturnable &&
!['recall', 'reject'].includes(process.processIsFinished)
"
type="warning"
size="medium"
v-loading="loading"
@click="$emit('withdraw')">撤销</el-button>
<el-button v-if="getButton('wf_print')"
@click="$emit('withdraw')"
>撤销</el-button
>
<el-button
v-if="getButton('wf_print')"
type="info"
size="medium"
v-loading="loading"
@click="$emit('print')">{{getButton('wf_print').name}}</el-button>
@click="$emit('print')"
>{{ getButton("wf_print").name }}</el-button
>
</el-row>
<el-dialog :visible.sync="nodeVisible"
append-to-body
title="选择回退节点">
<avue-form v-if="nodeVisible"
<el-dialog :visible.sync="nodeVisible" append-to-body title="选择回退节点">
<avue-form
v-if="nodeVisible"
v-model="nodeForm"
:option="nodeOption"
@submit="handleNodeSubmit"></avue-form>
@submit="handleNodeSubmit"
></avue-form>
</el-dialog>
</div>
</template>
<script>
import { backNodes } from '@/api/plugin/workflow/process'
import { backNodes } from "@/api/plugin/workflow/process";
import { mapGetters } from 'vuex'
import { mapGetters } from "vuex";
export default {
name: 'wf-button',
name: "wf-button",
computed: {
...mapGetters(['isCollapse', 'permission']),
...mapGetters(["isCollapse", "permission"]),
},
props: {
loading: {
type: Boolean,
default: false
default: false,
},
buttonList: {
type: Array,
default: () => {
return []
}
return [];
},
},
process: Object,
comment: String
comment: String,
},
data() {
return {
nodeVisible: false,
nodeForm: {},
nodeOption: {
column: [{
label: '节点',
prop: 'nodeId',
type: 'select',
column: [
{
label: "节点",
prop: "nodeId",
type: "select",
props: {
label: 'nodeName',
value: 'nodeId'
label: "nodeName",
value: "nodeId",
},
span: 24,
rules: [{ required: true, message: '请选择回退节点', trigger: 'change' }]
}]
rules: [
{ required: true, message: "请选择回退节点", trigger: "change" },
],
},
backNodes: []
}
],
},
backNodes: [],
};
},
watch: {
'process.taskId': {
"process.taskId": {
handler(val) {
if (val) {
backNodes({ taskId: val }).then(res => {
const list = res.data.data
this.backNodes = list
this.findObject(this.nodeOption.column, 'nodeId').dicData = list
})
backNodes({ taskId: val }).then((res) => {
const list = res.data.data;
this.backNodes = list;
this.findObject(this.nodeOption.column, "nodeId").dicData = list;
});
}
},
immediate: true
}
immediate: true,
},
},
methods: {
handleRollback() { // 退
handleRollback() {
// 退
if (!this.comment) {
this.$message.error("请填写批复意见")
return
this.$message.error("请填写批复意见");
return;
}
this.nodeVisible = true
this.nodeVisible = true;
},
handleNodeSubmit() { // 退
const { nodeId } = this.nodeForm
this.$emit('rollback', nodeId)
handleNodeSubmit() {
// 退
const { nodeId } = this.nodeForm;
this.$emit("rollback", nodeId);
},
getButton(key) {
return this.buttonList.find(b => b.buttonKey == key)
}
}
}
return this.buttonList.find((b) => b.buttonKey == key);
},
},
};
</script>
<style lang="scss" scoped>

@ -268,12 +268,14 @@ export default {
renwuzhonglei.dicData = res.data.data;
});
},
systemChange(id) {
systemChange(id, index) {
let obj = this.taskAndDataBaseList.find(function (i) {
return i.id === id;
});
getModuleAndDataTable({ id: obj.id, type: obj.type }).then((res) => {
if (index !== 1) {
this.form.xitongmokuaishujubiao = "";
}
const xitongmokuaishujubiao = this.findObject(
this.option.column,
"xitongmokuaishujubiao"
@ -348,14 +350,14 @@ export default {
option.group = groupArr;
this.option = option;
//
const companyData = await getCompany()
const companyData = await getCompany();
this.companyList = companyData.data.data;
if (companyData.data.data.length > 0) {
const id = companyData.data.data[0].id;
this.form.yunweigongsi = id;
this.companyChange(id);
}
const taskParentData = await getTaskParent()
const taskParentData = await getTaskParent();
this.taskParentList = taskParentData.data.data;
if (this.$route.query.parent) {
const id = this.$route.query.parent;
@ -376,8 +378,9 @@ export default {
this.initDraft(process.id).then((data) => {
this.$confirm("是否恢复之前保存的草稿?", "提示", {})
.then(() => {
this.form = JSON.parse(data);
this.systemChange(this.form.xitongmingchengshujuku);
const form = JSON.parse(data);
this.systemChange(form.xitongmingchengshujuku, 1);
this.form = form
})
.catch(() => {});
});

Loading…
Cancel
Save