综合办公系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. <template>
  2. <div class="app-container">
  3. <el-card class="box-card">
  4. <div slot="header" class="clearfix">
  5. <span class="el-icon-document">待办任务</span>
  6. <el-tag style="margin-left:10px">发起人:{{ startUser }}</el-tag>
  7. <el-tag>任务节点:{{ taskName }}</el-tag>
  8. <el-button style="float: right;" size="mini" type="danger" @click="goBack">关闭</el-button>
  9. </div>
  10. <el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
  11. <!--表单信息-->
  12. <el-tab-pane label="表单信息" name="1">
  13. <sc-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  14. v-if="taskForm.procDefName == '生产部门考核'"></sc-table>
  15. <jy-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  16. v-else-if="taskForm.procDefName == '经营发展部考核'"></jy-table>
  17. <js-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  18. v-else-if="taskForm.procDefName == '技术质量部考核'"></js-table>
  19. <xm-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  20. v-else-if="taskForm.procDefName == '项目管理部考核'"></xm-table>
  21. <cw-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  22. v-else-if="taskForm.procDefName == '财务部考核'"></cw-table>
  23. <zh-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
  24. v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
  25. <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'"
  26. @goBack="goBack"></car-form>
  27. <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批(工会)'"
  28. @goBack="goBack"></car-form>
  29. <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
  30. @goBack="goBack"></device-form>
  31. <project-process :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目流转'"
  32. @goBack="goBack"></project-process>
  33. <add-budget :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目预算'" @goBack="goBack"></add-budget>
  34. <borrow-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '借款审批'" @goBack="goBack"></borrow-form>
  35. <el-row type="flex" justify="center" v-show="isShowApprove()">
  36. <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
  37. @click="handleComplete">审核通过
  38. </el-button>
  39. <el-button icon="el-icon-refresh-left" type="warning" size="mini" @click="handleReturn">退回</el-button>
  40. <!-- <el-button icon="el-icon-circle-close" type="danger" size="mini" @click="handleReject">驳回</el-button> -->
  41. </el-row>
  42. </el-tab-pane>
  43. <!--流程流转记录-->
  44. <el-tab-pane label="流转记录" name="2">
  45. <!--flowRecordList-->
  46. <el-col :span="16" :offset="4">
  47. <div class="block">
  48. <el-timeline>
  49. <el-timeline-item v-for="(item, index ) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)"
  50. :color="setColor(item.finishTime)">
  51. <p style="font-weight: 700">{{ item.taskName }}</p>
  52. <el-card :body-style="{ padding: '10px' }">
  53. <el-descriptions class="margin-top" :column="1" size="small" border>
  54. <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label">
  55. <template slot="label"><i class="el-icon-user"></i>办理人</template>
  56. {{ item.assigneeName }}
  57. <el-tag type="info" size="mini">{{ item.deptName }}</el-tag>
  58. </el-descriptions-item>
  59. <el-descriptions-item v-if="item.candidate" label-class-name="my-label">
  60. <template slot="label"><i class="el-icon-user"></i>候选办理</template>
  61. {{ item.candidate }}
  62. </el-descriptions-item>
  63. <el-descriptions-item label-class-name="my-label">
  64. <template slot="label"><i class="el-icon-date"></i>接收时间</template>
  65. {{ item.createTime }}
  66. </el-descriptions-item>
  67. <el-descriptions-item v-if="item.finishTime" label-class-name="my-label">
  68. <template slot="label"><i class="el-icon-date"></i>处理时间</template>
  69. {{ item.finishTime }}
  70. </el-descriptions-item>
  71. <el-descriptions-item v-if="item.duration" label-class-name="my-label">
  72. <template slot="label"><i class="el-icon-time"></i>耗时</template>
  73. {{ item.duration }}
  74. </el-descriptions-item>
  75. <!-- <el-descriptions-item v-if="item.comment" label-class-name="my-label">
  76. <template slot="label"><i class="el-icon-tickets"></i>处理意见</template>
  77. {{ item.comment }}
  78. </el-descriptions-item> -->
  79. </el-descriptions>
  80. </el-card>
  81. </el-timeline-item>
  82. </el-timeline>
  83. </div>
  84. </el-col>
  85. </el-tab-pane>
  86. <!--流程图-->
  87. <el-tab-pane label="流程图" name="3">
  88. <flow :flowData="flowData" />
  89. </el-tab-pane>
  90. </el-tabs>
  91. <!--审批任务-->
  92. <el-dialog :title="completeTitle" :visible.sync="completeOpen" width="60%" append-to-body>
  93. <el-form ref="taskForm" :model="taskForm">
  94. <el-form-item prop="targetKey">
  95. <flow-user v-if="checkSendUser" :checkType="checkType" @handleUserSelect="handleUserSelect"></flow-user>
  96. <flow-role v-if="checkSendRole" @handleRoleSelect="handleRoleSelect"></flow-role>
  97. </el-form-item>
  98. <!-- <el-form-item label="处理意见" label-width="80px" prop="comment"
  99. :rules="[{ required: true, message: '请输入处理意见', trigger: 'blur' }]">
  100. <el-input type="textarea" v-model="taskForm.comment" placeholder="请输入处理意见" />
  101. </el-form-item> -->
  102. </el-form>
  103. <el-row v-if="!checkSendUser" style="text-align: center;">
  104. <h2>已达到最后节点,点击确定后审核完成</h2>
  105. </el-row>
  106. <span slot="footer" class="dialog-footer">
  107. <el-button @click="completeOpen = false">取 消</el-button>
  108. <el-button type="primary" @click="taskComplete">确 定</el-button>
  109. </span>
  110. </el-dialog>
  111. <!--退回流程-->
  112. <el-dialog :title="returnTitle" :visible.sync="returnOpen" width="40%" append-to-body>
  113. <el-form ref="taskForm" :model="taskForm" label-width="80px">
  114. <el-form-item label="退回节点" prop="targetKey">
  115. <el-radio-group v-model="taskForm.targetKey">
  116. <el-radio-button v-for="item in returnTaskList" :key="item.id" :label="item.id">{{ item.name }}
  117. </el-radio-button>
  118. </el-radio-group>
  119. </el-form-item>
  120. <el-form-item label="退回意见" prop="comment" :rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
  121. <el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见" />
  122. </el-form-item>
  123. </el-form>
  124. <span slot="footer" class="dialog-footer">
  125. <el-button @click="returnOpen = false">取 消</el-button>
  126. <el-button type="primary" @click="taskReturn">确 定</el-button>
  127. </span>
  128. </el-dialog>
  129. <!--驳回流程-->
  130. <el-dialog :title="rejectTitle" :visible.sync="rejectOpen" width="60%" append-to-body>
  131. <el-form ref="taskForm" :model="taskForm">
  132. <el-form-item prop="targetKey">
  133. <flow-user v-if="checkSendUser" :checkType="checkType" @handleUserSelect="handleUserSelect"></flow-user>
  134. </el-form-item>
  135. <el-form-item label="驳回意见" prop="comment" :rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
  136. <el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见" />
  137. </el-form-item>
  138. </el-form>
  139. <span slot="footer" class="dialog-footer">
  140. <el-button @click="rejectOpen = false">取 消</el-button>
  141. <el-button type="primary" @click="taskReject">确 定</el-button>
  142. </span>
  143. </el-dialog>
  144. </el-card>
  145. </div>
  146. </template>
  147. <script>
  148. import { flowRecord } from "@/api/flowable/finished";
  149. import FlowUser from '@/components/flow/User'
  150. import FlowRole from '@/components/flow/Role'
  151. import Parser from '@/components/parser/Parser'
  152. import { getProcessVariables, flowXmlAndNode, definitionStart } from "@/api/flowable/definition";
  153. import {
  154. complete,
  155. rejectTask,
  156. returnList,
  157. returnTask,
  158. getNextFlowNode,
  159. delegate,
  160. flowTaskForm,
  161. } from "@/api/flowable/todo";
  162. import flow from '@/views/flowable/task/todo/detail/flow'
  163. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  164. import { listUser } from "@/api/system/user";
  165. import { getAssess, modifyAssess, submitAssess, listAssess } from '@/api/oa/assess/assess';
  166. import ScTable from "@/views/flowable/form/scTable.vue";
  167. import JyTable from "@/views/flowable/form/jyTable.vue";
  168. import ZhTable from "@/views/flowable/form/zhTable.vue";
  169. import JsTable from "@/views/flowable/form/jsTable.vue";
  170. import XmTable from "@/views/flowable/form/xmTable.vue";
  171. import CwTable from "@/views/flowable/form/cwTable.vue";
  172. import carForm from "@/views/flowable/form/carForm.vue";
  173. import deviceForm from "@/views/flowable/form/deviceForm";
  174. import projectProcess from "@/views/flowable/form/projectProcess/index.vue"
  175. import AddBudget from '@/views/oa/budget/addBudget.vue';
  176. import borrowForm from '@/views/flowable/form/borrowForm.vue';
  177. export default {
  178. name: "Record",
  179. components: {
  180. Parser,
  181. flow,
  182. FlowUser,
  183. FlowRole,
  184. ScTable,
  185. ZhTable,
  186. JsTable,
  187. XmTable,
  188. CwTable,
  189. JyTable,
  190. carForm,
  191. deviceForm,
  192. projectProcess,
  193. AddBudget,
  194. borrowForm
  195. },
  196. props: {},
  197. data() {
  198. return {
  199. // 模型xml数据
  200. xmlData: "",
  201. flowData: {},
  202. activeName: '1',
  203. // 部门名称
  204. deptName: undefined,
  205. // 部门树选项
  206. // 用户表格数据
  207. userList: null,
  208. defaultProps: {
  209. children: "children",
  210. label: "label"
  211. },
  212. // 查询参数
  213. queryParams: {
  214. deptId: undefined
  215. },
  216. // 遮罩层
  217. loading: true,
  218. flowRecordList: [], // 流程流转数据
  219. formConfCopy: {},
  220. src: null,
  221. rules: {}, // 表单校验
  222. variablesForm: {}, // 流程变量数据
  223. taskForm: {
  224. returnTaskShow: false, // 是否展示回退表单
  225. delegateTaskShow: false, // 是否展示回退表单
  226. defaultTaskShow: true, // 默认处理
  227. comment: "", // 意见内容
  228. procInsId: "", // 流程实例编号
  229. instanceId: "", // 流程实例编号
  230. deployId: "", // 流程定义编号
  231. taskId: "",// 流程任务编号
  232. procDefId: "", // 流程编号
  233. targetKey: "",
  234. variables: {
  235. variables: {}
  236. },
  237. },
  238. assignee: null,
  239. formConf: {}, // 默认表单数据
  240. variables: [], // 流程变量数据
  241. variablesData: {}, // 流程变量数据
  242. returnTaskList: [], // 回退列表数据
  243. completeTitle: null,
  244. completeOpen: false,
  245. returnTitle: null,
  246. returnOpen: false,
  247. rejectOpen: false,
  248. rejectTitle: null,
  249. userData: [],
  250. checkSendUser: false, // 是否展示人员选择模块
  251. checkSendRole: false,// 是否展示角色选择模块
  252. checkType: 'single', // 选择类型
  253. taskName: null, // 任务节点
  254. startUser: null, // 发起人信息,
  255. multiInstanceVars: '', // 会签节点
  256. formKeyExist: false, // 当前节点是否存在表单
  257. // 表单信息
  258. tableForm: {}
  259. };
  260. },
  261. created() {
  262. if (this.$route.query) {
  263. this.taskName = this.$route.query.taskName;
  264. this.startUser = this.$route.query.startUser;
  265. this.taskForm.deployId = this.$route.query.deployId;
  266. this.taskForm.taskId = this.$route.query.taskId;
  267. this.taskForm.procInsId = this.$route.query.procInsId;
  268. this.taskForm.executionId = this.$route.query.executionId;
  269. this.taskForm.instanceId = this.$route.query.procInsId;
  270. this.taskForm.formId = this.$route.query.formId;
  271. this.taskForm.procDefName = this.$route.query.procDefName;
  272. // 流程任务获取变量信息
  273. if (this.taskForm.taskId) {
  274. this.processVariables(this.taskForm.taskId)
  275. this.getFlowTaskForm(this.taskForm.taskId)
  276. this.getAssessByAssessId(this.taskForm.formId)
  277. }
  278. this.getFlowRecordList(this.taskForm.procInsId, this.taskForm.deployId);
  279. }
  280. },
  281. methods: {
  282. handleClick(tab, event) {
  283. if (tab.name === '3') {
  284. flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
  285. this.flowData = res.data;
  286. })
  287. }
  288. },
  289. setIcon(val) {
  290. if (val) {
  291. return "el-icon-check";
  292. } else {
  293. return "el-icon-time";
  294. }
  295. },
  296. setColor(val) {
  297. if (val) {
  298. return "#2bc418";
  299. } else {
  300. return "#b3bdbb";
  301. }
  302. },
  303. // 用户信息选中数据
  304. handleUserSelect(selection) {
  305. if (selection) {
  306. if (selection instanceof Array) {
  307. const selectVal = selection.map(item => item.userId);
  308. if (this.multiInstanceVars) {
  309. this.$set(this.taskForm.variables, this.multiInstanceVars, selectVal);
  310. } else {
  311. this.$set(this.taskForm.variables, "approval", selectVal.join(','));
  312. }
  313. } else {
  314. this.$set(this.taskForm.variables, "approval", selection.userId.toString());
  315. }
  316. }
  317. },
  318. // 角色信息选中数据
  319. handleRoleSelect(selection) {
  320. if (selection) {
  321. if (selection instanceof Array) {
  322. const selectVal = selection.map(item => item.roleId);
  323. this.$set(this.taskForm.variables, "approval", selectVal.join(','));
  324. } else {
  325. this.$set(this.taskForm.variables, "approval", selection);
  326. }
  327. }
  328. },
  329. /** 流程流转记录 */
  330. getFlowRecordList(procInsId, deployId) {
  331. const that = this
  332. const params = { procInsId: procInsId, deployId: deployId }
  333. flowRecord(params).then(res => {
  334. that.flowRecordList = res.data.flowList;
  335. }).catch(res => {
  336. this.goBack();
  337. })
  338. },
  339. fillFormData(form, data) {
  340. form.fields.forEach(item => {
  341. const val = data[item.__vModel__]
  342. if (val) {
  343. item.__config__.defaultValue = val
  344. }
  345. })
  346. },
  347. /** 获取流程变量内容 */
  348. processVariables(taskId) {
  349. if (taskId) {
  350. // 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示
  351. getProcessVariables(taskId).then(res => {
  352. // this.variablesData = res.data.variables;
  353. });
  354. }
  355. },
  356. /** 流程节点表单 */
  357. getFlowTaskForm(taskId) {
  358. if (taskId) {
  359. // 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示
  360. flowTaskForm({ taskId: taskId }).then(res => {
  361. this.variablesData = res.data.formData;
  362. this.taskForm.variables = res.data.formData;
  363. this.formKeyExist = res.data.formKeyExist;
  364. });
  365. }
  366. },
  367. // 获取需要处理的表单表格信息
  368. getAssessByAssessId(formId) {
  369. getAssess(formId).then(res => {
  370. let data = res.data;
  371. for (let d in data) {
  372. if (d.includes('role')) {
  373. if (data[d] != "" && data[d] != undefined && data[d] != null)
  374. data[d] = data[d].split(',')
  375. }
  376. if (d.includes('familiar')) {
  377. if (data[d] != "" && data[d] != undefined && data[d] != null)
  378. data[d] = parseInt(data[d])
  379. }
  380. }
  381. this.tableForm = data;
  382. this.tableForm.taskId = this.$route.query.taskId;
  383. this.tableForm.taskName = this.$route.query.taskName;
  384. })
  385. },
  386. /** 加载审批任务弹框 */
  387. handleComplete() {
  388. // this.completeOpen = true;
  389. // this.completeTitle = "流程审批";
  390. // this.submitForm(null);
  391. let formData = new FormData();
  392. this.tableForm.formId = this.tableForm.assessId;
  393. let form = JSON.stringify(this.tableForm);
  394. formData.append("form", form);
  395. this.submitForm(formData, this.tableForm.assessId);
  396. },
  397. /** 用户审批任务 */
  398. taskComplete() {
  399. if (!this.taskForm.variables && this.checkSendUser) {
  400. this.$modal.msgError("请选择流程接收人员!");
  401. return;
  402. }
  403. if (!this.taskForm.variables && this.checkSendRole) {
  404. this.$modal.msgError("请选择流程接收角色组!");
  405. return;
  406. }
  407. // if (!this.taskForm.comment) {
  408. // this.$modal.msgError("请输入审批意见!");
  409. // return;
  410. // }
  411. if (this.taskForm && this.formKeyExist) {
  412. // 表单是否禁用
  413. this.taskForm.formData.formData.disabled = true;
  414. // 是否显示按钮
  415. this.taskForm.formData.formData.formBtns = false;
  416. this.taskForm.variables = Object.assign({}, this.taskForm.variables, this.taskForm.formData.valData);
  417. this.taskForm.variables.variables = this.taskForm.formData.formData;
  418. complete(this.taskForm).then(response => {
  419. this.$modal.msgSuccess(response.msg);
  420. this.goBack();
  421. });
  422. } else {
  423. // 流程设计人员类型配置为固定人员接收任务时,直接提交任务到下一步
  424. complete(this.taskForm).then(response => {
  425. this.$modal.msgSuccess(response.msg);
  426. this.goBack();
  427. });
  428. }
  429. },
  430. /** 委派任务 */
  431. handleDelegate() {
  432. this.taskForm.delegateTaskShow = true;
  433. this.taskForm.defaultTaskShow = false;
  434. },
  435. handleAssign() {
  436. },
  437. /** 返回页面 */
  438. goBack() {
  439. // 关闭当前标签页并返回上个页面
  440. const obj = { path: "/task/todo", query: { t: Date.now() } };
  441. this.$tab.closeOpenPage(obj);
  442. },
  443. /** 驳回任务 */
  444. handleReject() {
  445. this.rejectOpen = true;
  446. this.rejectTitle = "驳回流程";
  447. },
  448. /** 驳回任务 */
  449. taskReject() {
  450. this.$refs["taskForm"].validate(valid => {
  451. if (valid) {
  452. rejectTask(this.taskForm).then(res => {
  453. this.$modal.msgSuccess(res.msg);
  454. this.goBack();
  455. });
  456. }
  457. });
  458. },
  459. /** 可退回任务列表 */
  460. handleReturn() {
  461. this.returnOpen = true;
  462. this.returnTitle = "退回流程";
  463. returnList(this.taskForm).then(res => {
  464. this.returnTaskList = res.data;
  465. this.taskForm.variables = null;
  466. })
  467. },
  468. /** 提交退回任务 */
  469. taskReturn() {
  470. this.$refs["taskForm"].validate(valid => {
  471. if (valid) {
  472. returnTask(this.taskForm).then(res => {
  473. this.$modal.msgSuccess(res.msg);
  474. this.goBack()
  475. });
  476. }
  477. });
  478. },
  479. /** 取消回退任务按钮 */
  480. cancelTask() {
  481. this.taskForm.returnTaskShow = false;
  482. this.taskForm.defaultTaskShow = true;
  483. this.returnTaskList = [];
  484. },
  485. /** 委派任务 */
  486. submitDeleteTask() {
  487. this.$refs["taskForm"].validate(valid => {
  488. if (valid) {
  489. delegate(this.taskForm).then(response => {
  490. this.$modal.msgSuccess(response.msg);
  491. this.goBack();
  492. });
  493. }
  494. });
  495. },
  496. /** 取消回退任务按钮 */
  497. cancelDelegateTask() {
  498. this.taskForm.delegateTaskShow = false;
  499. this.taskForm.defaultTaskShow = true;
  500. this.returnTaskList = [];
  501. },
  502. /** 申请流程表单数据提交 */
  503. submitForm(formData, assessId) {
  504. listAssess({ assessId }).then(result => {
  505. let list = result;
  506. if (list.total != 0) {
  507. modifyAssess(formData).then(res => {
  508. });
  509. } else {
  510. submitAssess(formData)
  511. }
  512. })
  513. if (this.taskForm.variables === null) {
  514. this.taskForm.variables = {};
  515. }
  516. // 根据当前任务或者流程设计配置的下一步节点 todo 暂时未涉及到考虑网关、表达式和多节点情况
  517. const params = { taskId: this.taskForm.taskId }
  518. getNextFlowNode(params).then(res => {
  519. const data = res.data;
  520. this.taskForm.formData = formData;
  521. if (data) {
  522. if (data.dataType === 'dynamic') {
  523. if (data.type === 'assignee') { // 指定人员
  524. this.checkSendUser = true;
  525. this.checkType = "single";
  526. } else if (data.type === 'candidateUsers') { // 候选人员(多个)
  527. this.checkSendUser = true;
  528. this.checkType = "multiple";
  529. } else if (data.type === 'candidateGroups') { // 指定组(所属角色接收任务)
  530. this.checkSendRole = true;
  531. } else { // 会签
  532. // 流程设计指定的 elementVariable 作为会签人员列表
  533. this.multiInstanceVars = data.vars;
  534. this.checkSendUser = true;
  535. this.checkType = "multiple";
  536. }
  537. }
  538. }
  539. this.completeOpen = true;
  540. this.completeTitle = "选择下一节点审核人";
  541. })
  542. },
  543. // 是否显示审批通过
  544. isShowApprove() {
  545. if (this.taskName == '员工填报' || this.taskForm.procDefName == '用车审批'
  546. || this.taskForm.procDefName == '用车审批(工会)' || this.taskForm.procDefName == '设备审批'|| this.taskForm.procDefName == '项目流转'
  547. || this.taskForm.procDefName == '项目预算') {
  548. return false
  549. } else {
  550. return true
  551. }
  552. }
  553. },
  554. };
  555. </script>
  556. <style lang="scss" scoped>
  557. .test-form {
  558. margin: 15px auto;
  559. width: 800px;
  560. padding: 15px;
  561. }
  562. .clearfix:before,
  563. .clearfix:after {
  564. display: table;
  565. content: "";
  566. }
  567. .clearfix:after {
  568. clear: both
  569. }
  570. .box-card {
  571. width: 100%;
  572. margin-bottom: 20px;
  573. }
  574. .el-tag+.el-tag {
  575. margin-left: 10px;
  576. }
  577. .my-label {
  578. background: #E1F3D8;
  579. }
  580. </style>