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.

1629 lines
55 KiB

  1. <template>
  2. <div>
  3. <el-form :inline="true" label-position="top" :model="searchData" @keyup.enter.native="getDataList">
  4. <el-form-item :label="'BU'">
  5. <el-select v-model="searchData.bu" placeholder="请选择" clearable style="width: 130px">
  6. <el-option
  7. v-for = "i in userBuList"
  8. :key = "i.buNo"
  9. :label = "i.buDesc"
  10. :value = "i.buNo">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item :label="'审批规则编码'">
  15. <el-input v-model="searchData.ruleNo" clearable style="width: 120px"></el-input>
  16. </el-form-item>
  17. <el-form-item :label="'审批规则描述'">
  18. <el-input v-model="searchData.ruleDesc" clearable style="width: 120px"></el-input>
  19. </el-form-item>
  20. <el-form-item label="业务类型">
  21. <!-- <el-input style="width: 135px;" v-model="saveAuditRuleData.recordTypeDb"></el-input>-->
  22. <el-select v-model="searchData.recordType" clearable style="width: 120px;">
  23. <el-option
  24. v-for="(item,index) in businessTypeSelectList"
  25. :key="index"
  26. :label="item.roleDesc"
  27. :value="item.roleItemNo">
  28. </el-option>
  29. </el-select>
  30. </el-form-item>
  31. <el-form-item :label="'状态'">
  32. <el-select clearable v-model="searchData.active" style="width: 120px">
  33. <el-option label="启用" value="Y"></el-option>
  34. <el-option label="禁用" value="N"></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item :label="'优先级'">
  38. <el-select clearable v-model="searchData.priority" style="width: 120px">
  39. <el-option label="1" value = 1></el-option>
  40. <el-option label="2" value = 2></el-option>
  41. <el-option label="3" value = 3></el-option>
  42. </el-select>
  43. </el-form-item>
  44. <el-form-item :label="' '">
  45. <el-button @click="getDataList">查询</el-button>
  46. <el-button type="primary" @click="addModal">新增</el-button>
  47. </el-form-item>
  48. </el-form>
  49. <el-table
  50. :height="this.height - 300"
  51. :data="dataList"
  52. ref="mainTable"
  53. highlight-current-row
  54. @row-click="ruleClickRow"
  55. @current-change="changeCurrentRow"
  56. border
  57. style="width: 100%;">
  58. <el-table-column
  59. v-for="(item,index) in columnList" :key="index"
  60. :sortable="item.columnSortable"
  61. :prop="item.columnProp"
  62. :header-align="item.headerAlign"
  63. :show-overflow-tooltip="item.showOverflowTooltip"
  64. :align="item.align"
  65. :fixed="item.fixed==''?false:item.fixed"
  66. :min-width="item.columnWidth"
  67. :label="item.columnLabel">
  68. <template slot-scope="scope">
  69. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  70. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. fixed="right"
  75. header-align="center"
  76. align="center"
  77. width="160"
  78. label="操作">
  79. <template slot-scope="scope">
  80. <el-link style="cursor: pointer" @click="updateModal(scope.row)">修改</el-link>
  81. <el-link style="cursor: pointer" @click="delModal(scope.row)">删除</el-link>
  82. </template>
  83. </el-table-column>
  84. </el-table>
  85. <!-- 分页栏 -->
  86. <el-pagination
  87. @size-change="sizeChangeHandle"
  88. @current-change="currentChangeHandle"
  89. :current-page="pageIndex"
  90. :page-sizes="[20, 50, 100, 200, 500]"
  91. :page-size="pageSize"
  92. :total="totalPage"
  93. layout="total, sizes, prev, pager, next, jumper">
  94. </el-pagination>
  95. <!-- 页签 -->
  96. <el-tabs style="margin-top: 0px; width: 100%; height: 100%;" v-model="activeTable" class="customer-tab" type="border-card" @tab-click="tabClick">
  97. <!-- 详情页签 -->
  98. <el-tab-pane label="详情" name="auth_rule_details" style="height: 225px">
  99. <el-form :inline="true" label-position="top" :model="ruleCurrentRow" @keyup.enter.native="getDataList">
  100. <el-form-item :label="'BU'">
  101. <el-input v-model="ruleCurrentRow.buDesc" clearable style="width: 140px"></el-input>
  102. </el-form-item>
  103. <el-form-item :label="'审批规则编码'">
  104. <el-input v-model="ruleCurrentRow.ruleNo" clearable style="width: 140px"></el-input>
  105. </el-form-item>
  106. <el-form-item :label="'审批规则描述'">
  107. <el-input v-model="ruleCurrentRow.ruleDesc" clearable style="width: 345px"></el-input>
  108. </el-form-item>
  109. <el-form-item :label="'状态'">
  110. <el-input v-model="ruleCurrentRow.active" clearable style="width: 140px"></el-input>
  111. </el-form-item>
  112. </el-form>
  113. <el-form :inline="true" label-position="top" :model="ruleCurrentRow" @keyup.enter.native="getDataList">
  114. <el-form-item :label="'最低金额'">
  115. <el-input v-model="ruleCurrentRow.minValue" clearable style="width: 140px"></el-input>
  116. </el-form-item>
  117. <el-form-item :label="'最高金额'">
  118. <el-input v-model="ruleCurrentRow.maxValue" clearable style="width: 140px"></el-input>
  119. </el-form-item>
  120. <el-form-item :label="'优先级'">
  121. <el-input v-model="ruleCurrentRow.priority" clearable style="width: 180px"></el-input>
  122. </el-form-item>
  123. <el-form-item :label="'启用日期'">
  124. <el-input v-model="ruleCurrentRow.phaseInDate" clearable style="width: 150px"></el-input>
  125. </el-form-item>
  126. <el-form-item :label="'停用日期'">
  127. <el-input v-model="ruleCurrentRow.phaseOutDate" clearable style="width: 140px"></el-input>
  128. </el-form-item>
  129. </el-form>
  130. <el-form :inline="true" label-position="top" :model="ruleCurrentRow" @keyup.enter.native="getDataList">
  131. <el-form-item :label="'备注'">
  132. <el-input v-model="ruleCurrentRow.remark" clearable style="width: 804px"></el-input>
  133. </el-form-item>
  134. </el-form>
  135. <el-form :inline="true" label-position="top" :model="ruleCurrentRow" @keyup.enter.native="getDataList">
  136. <el-form-item :label="'创建人'">
  137. <el-input v-model="ruleCurrentRow.createBy" clearable style="width: 140px"></el-input>
  138. </el-form-item>
  139. <el-form-item :label="'创建时间'">
  140. <el-input v-model="ruleCurrentRow.createDate" clearable style="width: 242px"></el-input>
  141. </el-form-item>
  142. <el-form-item :label="'更新人'">
  143. <el-input v-model="ruleCurrentRow.updateBy" clearable style="width: 140px"></el-input>
  144. </el-form-item>
  145. <el-form-item :label="'更新时间'">
  146. <el-input v-model="ruleCurrentRow.updateDate" clearable style="width: 243px"></el-input>
  147. </el-form-item>
  148. </el-form>
  149. </el-tab-pane>
  150. <!-- 审批步骤页签 -->
  151. <el-tab-pane label="审批步骤" name="auth_rule_step" style="height: 100%">
  152. <el-button type="primary" @click="ruleStepAddModal" style="margin-top: -5px">新增</el-button>
  153. <el-table
  154. :height="this.height - 278"
  155. :data="ruleStepDataList"
  156. ref="ruleStepTable"
  157. highlight-current-row
  158. border
  159. style="width: 100%; margin-top: 5px">
  160. <el-table-column
  161. v-for="(item,index) in ruleStepColumnList" :key="index"
  162. :sortable="item.columnSortable"
  163. :prop="item.columnProp"
  164. :header-align="item.headerAlign"
  165. :show-overflow-tooltip="item.showOverflowTooltip"
  166. :align="item.align"
  167. :fixed="item.fixed==''?false:item.fixed"
  168. :min-width="item.columnWidth"
  169. :label="item.columnLabel">
  170. <template slot-scope="scope">
  171. <div v-if="item.columnProp === 'active'">
  172. <el-tag v-if="scope.row[item.columnProp] === 'Y'" type="success">启用</el-tag>
  173. <el-tag v-if="scope.row[item.columnProp] === 'N'" type="danger">禁用</el-tag>
  174. </div>
  175. <div v-else>
  176. <span v-if="!item.columnHidden">{{ scope.row[item.columnProp] }}</span>
  177. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  178. </div>
  179. </template>
  180. </el-table-column>
  181. <el-table-column
  182. fixed="right"
  183. header-align="center"
  184. align="center"
  185. width="160"
  186. label="操作">
  187. <template slot-scope="scope">
  188. <el-link style="cursor: pointer" @click="ruleStepUpdateModal(scope.row)">修改</el-link>
  189. <el-link style="cursor: pointer" @click="ruleStepDelModal(scope.row)">删除</el-link>
  190. </template>
  191. </el-table-column>
  192. </el-table>
  193. </el-tab-pane>
  194. </el-tabs>
  195. <el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="560px">
  196. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  197. <el-form-item label="审批规则编码" prop="ruleNo" :rules="rules.ruleNo">
  198. <el-input v-model="modalData.ruleNo" :disabled="modalDisableFlag" style="width: 110px"></el-input>
  199. </el-form-item>
  200. <el-form-item label="审批规则描述" prop="ruleDesc" :rules="rules.ruleDesc">
  201. <el-input v-model="modalData.ruleDesc" :disabled="modalDisableFlag" style="width: 315px"></el-input>
  202. </el-form-item>
  203. <el-form-item label="BU" prop="bu" :rules="rules.bu">
  204. <el-select v-model="modalData.bu" placeholder="请选择" :disabled="modalDisableFlag" style="width: 70px">
  205. <el-option
  206. v-for = "i in userBuList"
  207. :key = "i.buNo"
  208. :label = "i.buDesc"
  209. :value = "i.buNo">
  210. </el-option>
  211. </el-select>
  212. </el-form-item>
  213. </el-form>
  214. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  215. <el-form-item label="最低金额" prop="minValue">
  216. <el-input v-model="modalData.minValue" style="width: 110px"></el-input>
  217. </el-form-item>
  218. <el-form-item label="最高金额" prop="maxValue">
  219. <el-input v-model="modalData.maxValue" style="width: 110px"></el-input>
  220. </el-form-item>
  221. <el-form-item label="优先级" prop="priority" :rules="rules.priority">
  222. <el-select clearable v-model="modalData.priority" :disabled="!modalDisableFlag" style="width: 67px">
  223. <el-option label="1" value = 1></el-option>
  224. <el-option label="2" value = 2></el-option>
  225. <el-option label="3" value = 3></el-option>
  226. </el-select>
  227. </el-form-item>
  228. <el-form-item label="业务类型" prop="recordType" :rules="rules.recordType">
  229. <!-- <el-input style="width: 135px;" v-model="saveAuditRuleData.recordTypeDb"></el-input>-->
  230. <el-select v-model="modalData.recordType" placeholder=
  231. "请选择" style="width: 110px;">
  232. <el-option
  233. v-for="(item,index) in businessTypeSelectList"
  234. :key="index"
  235. :label="item.roleDesc"
  236. :value="item.roleItemNo">
  237. </el-option>
  238. </el-select>
  239. </el-form-item>
  240. <el-form-item label=" ">
  241. <el-checkbox v-model="modalData.isSimultaneous">是否同时
  242. </el-checkbox>
  243. </el-form-item>
  244. </el-form>
  245. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  246. <el-form-item label="状态" prop="active" :rules="rules.active">
  247. <el-select v-model="modalData.active" :disabled="!modalDisableFlag" style="width: 110px">
  248. <el-option label="启用" value="Y"></el-option>
  249. <el-option label="禁用" value="N"></el-option>
  250. </el-select>
  251. </el-form-item>
  252. <el-form-item label="启用日期" prop="phaseInDate" :rules="rules.phaseInDate">
  253. <el-date-picker v-model="modalData.phaseInDate" type="date" placeholder="选择日期" style="width: 150px"></el-date-picker>
  254. </el-form-item>
  255. <el-form-item label="停用日期" prop="phaseOutDate">
  256. <el-date-picker v-model="modalData.phaseOutDate" type="date" :disabled="!modalDisableFlag" placeholder="选择日期" style="width: 150px"></el-date-picker>
  257. </el-form-item>
  258. </el-form>
  259. <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  260. <el-form-item label="备注">
  261. <el-input v-model="modalData.remark" style="width: 439px"></el-input>
  262. </el-form-item>
  263. </el-form>
  264. <el-footer style="height:30px;margin-top: 5px;text-align:center">
  265. <el-button type="primary" @click="saveData">保存</el-button>
  266. <el-button type="primary" @click="modalFlag = false">关闭</el-button>
  267. </el-footer>
  268. </el-dialog>
  269. <el-dialog :title="ruleStepModalData.title" :close-on-click-modal="false" v-drag :visible.sync="ruleStepModalFlag" width="476px">
  270. <el-form :inline="true" label-position="top" :model="ruleStepModalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  271. <el-form-item label="规则编码" prop="ruleNo">
  272. <el-input v-model="ruleStepModalData.ruleNo" :disabled="true" style="width: 110px"></el-input>
  273. </el-form-item>
  274. <el-form-item label="规则描述" prop="ruleDesc">
  275. <el-input v-model="ruleStepModalData.ruleDesc" :disabled="true" style="width: 315px"></el-input>
  276. </el-form-item>
  277. </el-form>
  278. <el-form :inline="true" label-position="top" :model="ruleStepModalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  279. <el-form-item label="步骤号" prop="stepNo" :rules="rules.stepNo">
  280. <el-input v-model="ruleStepModalData.stepNo" :disabled="ruleStepModalDisableFlag" style="width: 110px"></el-input>
  281. </el-form-item>
  282. <el-form-item label="类型" prop="authTypeDb" :rules="rules.authTypeDb">
  283. <el-select clearable v-model="ruleStepModalData.authTypeDb" style="width: 145px" @blur="clearRuleStepModalData">
  284. <el-option label="审批人" value="U"></el-option>
  285. <el-option label="审批组" value="G"></el-option>
  286. </el-select>
  287. </el-form-item>
  288. <el-form-item label=" " prop="firstStepFlag">
  289. <el-checkbox v-model="ruleStepModalData.firstStepFlag" :disabled="this.ruleStepModalData.lastStepFlag === 'Y'" :true-label="'Y'" :false-label="'N'" style="width: 110px;margin-left: 35px">
  290. 首步骤
  291. </el-checkbox>
  292. </el-form-item>
  293. </el-form>
  294. <el-form :inline="true" label-position="top" :model="ruleStepModalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  295. <el-form-item prop="authUserNo" :rules="rules.authUserNo">
  296. <span slot="label" style="" v-if="this.ruleStepModalData.authTypeDb !== 'G' && this.ruleStepModalData.authTypeDb !== '审批组'">
  297. <a herf="#" @click="getBaseList(2003)">审批人</a>
  298. </span>
  299. <span slot="label" style="margin-left: -4px" v-if="this.ruleStepModalData.authTypeDb === 'G' || this.ruleStepModalData.authTypeDb === '审批组'">
  300. 审批人
  301. </span>
  302. <el-input v-model="ruleStepModalData.authUserNo" :disabled="this.ruleStepModalData.authTypeDb === 'G' || this.ruleStepModalData.authTypeDb === '审批组'" @blur="authUserNoBlur" style="width: 110px"></el-input>
  303. </el-form-item>
  304. <el-form-item label="审批人姓名" prop="userDisplay" :rules="rules.userDisplay">
  305. <el-input v-model="ruleStepModalData.userDisplay" disabled style="width: 145px"></el-input>
  306. </el-form-item>
  307. <el-form-item label=" " prop="lastStepFlag">
  308. <el-checkbox v-model="ruleStepModalData.lastStepFlag" :disabled="this.ruleStepModalData.firstStepFlag === 'Y'" :true-label="'Y'" :false-label="'N'" style="width: 110px;margin-left: 35px">
  309. 末步骤
  310. </el-checkbox>
  311. </el-form-item>
  312. </el-form>
  313. <el-form :inline="true" label-position="top" :model="ruleStepModalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
  314. <el-form-item prop="authGroupNo" :rules="rules.authGroupNo">
  315. <span slot="label" style="" v-if="this.ruleStepModalData.authTypeDb !== 'U' && this.ruleStepModalData.authTypeDb !== '审批人'">
  316. <a herf="#" @click="getBaseList(218)">审批组编码</a>
  317. </span>
  318. <span slot="label" style="margin-left: -4px" v-if="this.ruleStepModalData.authTypeDb === 'U' || this.ruleStepModalData.authTypeDb === '审批人'">
  319. 审批组编码
  320. </span>
  321. <el-input v-model="ruleStepModalData.authGroupNo" :disabled="this.ruleStepModalData.authTypeDb === 'U' || this.ruleStepModalData.authTypeDb === '审批人'" @blur="authGroupNoBlur" style="width: 110px"></el-input>
  322. </el-form-item>
  323. <el-form-item label="审批组名称" prop="groupDesc" :rules="rules.groupDesc">
  324. <el-input v-model="ruleStepModalData.groupDesc" disabled style="width: 315px"></el-input>
  325. </el-form-item>
  326. </el-form>
  327. <el-footer style="height:30px;margin-top: 5px;text-align:center">
  328. <el-button type="primary" @click="ruleStepSaveData">保存</el-button>
  329. <el-button type="primary" @click="ruleStepModalFlag = false">关闭</el-button>
  330. </el-footer>
  331. </el-dialog>
  332. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  333. </div>
  334. </template>
  335. <script>
  336. import {getSiteAndBuByUserName} from "../../../api/qc/qc";
  337. import {
  338. authRuleSearch, // 审批规则信息列表查询
  339. authRuleSave, // 审批规则信息新增
  340. authRuleEdit, // 审批规则信息编辑
  341. authRuleDelete, // 审批规则信息删除
  342. authRuleStepSearch, // 审批规则步骤信息列表查询
  343. authRuleStepSave, // 审批规则步骤信息新增
  344. authRuleStepEdit, // 审批规则步骤信息编辑
  345. authRuleStepDelete, // 审批规则步骤信息删除
  346. getBusinessTypeList, // 业务类型列表查询
  347. } from '@/api/auth/auth'
  348. import Chooselist from '@/views/modules/common/Chooselist_eam'
  349. import {authBusinessSearch, authGroupSearch} from "../../../api/auth/auth";
  350. export default {
  351. components: {
  352. Chooselist
  353. },
  354. data() {
  355. return {
  356. // 导出
  357. resultList: [],
  358. userBuList: [],
  359. // ======== 行高 ========
  360. height: 200,
  361. // ======== 分页 ========
  362. pageIndex: 1,
  363. pageSize: 20,
  364. totalPage: 0,
  365. authRuleMemberSaveDialog: false,
  366. activeTable: 'auth_rule_details',
  367. searchAuthBusinessData:{
  368. site: this.$store.state.user.site,
  369. userName: this.$store.state.user.name,
  370. username:'',
  371. userDisplay:'',
  372. },
  373. authBusinessList:[],
  374. isAuthBusinessList:[],
  375. allAuthBusinessList:[],
  376. allAuthBusinessSelections:[],
  377. isAuthBusinessSelections:[],
  378. // ======== 选中的当前行数据 ========
  379. ruleCurrentRow: {},
  380. rowData:{},
  381. // 条件查询
  382. searchData: {
  383. site: this.$store.state.user.site,
  384. userName: this.$store.state.user.name,
  385. bu: '',
  386. buNo: '',
  387. ruleNo: '',
  388. ruleDesc: '',
  389. active: '',
  390. priority: '',
  391. page: 1,
  392. limit: 10
  393. },
  394. modalData: {
  395. flag: '',
  396. title: '',
  397. bu: '',
  398. site: this.$store.state.user.site,
  399. userName: this.$store.state.user.name,
  400. buNo: '',
  401. recordType: '',
  402. isSimultaneous: false,
  403. authRuleId: '',
  404. ruleNo: '',
  405. ruleDesc: '',
  406. priority: '',
  407. phaseInDate: '',
  408. phaseOutDate: '',
  409. remark: '',
  410. active: '',
  411. createBy: '',
  412. updateBy: '',
  413. createDate: '',
  414. updateDate: ''
  415. },
  416. ruleStepModalData: {
  417. flag: '',
  418. title: '',
  419. bu: '',
  420. site: this.$store.state.user.site,
  421. userName: this.$store.state.user.name,
  422. buNo: '',
  423. authStepId: '',
  424. authRuleId: '',
  425. ruleNo: '',
  426. ruleDesc: '',
  427. stepNo: 0,
  428. authTypeDb: '',
  429. authUserNo: '',
  430. userDisplay: '',
  431. authGroupNo: '',
  432. groupDesc: '',
  433. firstStepFlag: '',
  434. lastStepFlag: '',
  435. createBy: '',
  436. updateBy: '',
  437. createDate: '',
  438. updateDate: ''
  439. },
  440. // ======== 数据列表 ========
  441. dataList: [],
  442. ruleStepDataList: [],
  443. // 展示列集
  444. columnList: [
  445. {
  446. userId: this.$store.state.user.name,
  447. functionId: 601005,
  448. serialNumber: '601005Table1BU',
  449. tableId: "601005Table1",
  450. tableName: "审批规则信息表",
  451. columnProp: 'buDesc',
  452. headerAlign: "center",
  453. align: "left",
  454. columnLabel: 'BU',
  455. columnHidden: false,
  456. columnImage: false,
  457. columnSortable: false,
  458. sortLv: 0,
  459. status: true,
  460. fixed: '',
  461. columnWidth: 120
  462. },
  463. {
  464. userId: this.$store.state.user.name,
  465. functionId: 601005,
  466. serialNumber: '601005Table1RuleNo',
  467. tableId: "601005Table1",
  468. tableName: "审批规则信息表",
  469. columnProp: 'ruleNo',
  470. headerAlign: "center",
  471. align: "center",
  472. columnLabel: '审批规则编码',
  473. columnHidden: false,
  474. columnImage: false,
  475. columnSortable: false,
  476. sortLv: 0,
  477. status: true,
  478. fixed: '',
  479. columnWidth: 120
  480. },
  481. {
  482. userId: this.$store.state.user.name,
  483. functionId: 601005,
  484. serialNumber: '601005Table1RuleDesc',
  485. tableId: "601005Table1",
  486. tableName: "审批规则表",
  487. columnProp: 'ruleDesc',
  488. headerAlign: "center",
  489. align: "left",
  490. columnLabel: '审批规则描述',
  491. columnHidden: false,
  492. columnImage: false,
  493. columnSortable: false,
  494. sortLv: 0,
  495. status: true,
  496. fixed: '',
  497. columnWidth: 180
  498. },
  499. {
  500. userId: this.$store.state.user.name,
  501. functionId: 601005,
  502. serialNumber: '601005Table1RoleDesc',
  503. tableId: '601005Table1',
  504. tableName: '审批规则表',
  505. columnProp: 'roleDesc',
  506. headerAlign: 'center',
  507. align: 'center',
  508. columnLabel: '业务类型',
  509. columnHidden: false,
  510. columnImage: false,
  511. columnSortable: false,
  512. sortLv: 0,
  513. status: true,
  514. fixed: '',
  515. columnWidth: 170
  516. },
  517. {
  518. functionId: 601005,
  519. serialNumber: '601005Table1Active',
  520. tableId: '601005Table1',
  521. tableName: '审批规则信息表',
  522. columnProp: 'active',
  523. headerAlign: 'center',
  524. align: 'center',
  525. columnLabel: '状态',
  526. columnHidden: false,
  527. columnImage: false,
  528. columnSortable: false,
  529. sortLv: 0,
  530. status: true,
  531. fixed: '',
  532. columnWidth: 100
  533. },
  534. {
  535. userId: this.$store.state.user.name,
  536. functionId: 601005,
  537. serialNumber: '601005Table1MinValue',
  538. tableId: "601005Table1",
  539. tableName: "审批规则表",
  540. columnProp: 'minValue',
  541. headerAlign: "center",
  542. align: "right",
  543. columnLabel: '最低金额',
  544. columnHidden: false,
  545. columnImage: false,
  546. columnSortable: false,
  547. sortLv: 0,
  548. status: true,
  549. fixed: '',
  550. columnWidth: 120
  551. },
  552. {
  553. userId: this.$store.state.user.name,
  554. functionId: 601005,
  555. serialNumber: '601005Table1MaxValue',
  556. tableId: "601005Table1",
  557. tableName: "审批规则表",
  558. columnProp: 'maxValue',
  559. headerAlign: "center",
  560. align: "right",
  561. columnLabel: '最高金额',
  562. columnHidden: false,
  563. columnImage: false,
  564. columnSortable: false,
  565. sortLv: 0,
  566. status: true,
  567. fixed: '',
  568. columnWidth: 120
  569. },
  570. {
  571. userId: this.$store.state.user.name,
  572. functionId: 601005,
  573. serialNumber: '601005Table1Remark',
  574. tableId: "601005Table1",
  575. tableName: "审批规则表",
  576. columnProp: 'priority',
  577. headerAlign: "center",
  578. align: "center",
  579. columnLabel: '优先级',
  580. columnHidden: false,
  581. columnImage: false,
  582. columnSortable: false,
  583. sortLv: 0,
  584. status: true,
  585. fixed: '',
  586. columnWidth: 120
  587. },
  588. {
  589. userId: this.$store.state.user.name,
  590. functionId: 601005,
  591. serialNumber: '601005Table1PhaseInDate',
  592. tableId: '601005Table1',
  593. tableName: '审批规则表',
  594. columnProp: 'phaseInDate',
  595. headerAlign: 'center',
  596. align: 'center',
  597. columnLabel: '启用日期',
  598. columnHidden: false,
  599. columnImage: false,
  600. columnSortable: false,
  601. sortLv: 0,
  602. status: true,
  603. fixed: '',
  604. columnWidth: 170
  605. },
  606. {
  607. userId: this.$store.state.user.name,
  608. functionId: 601005,
  609. serialNumber: '601005Table1PhaseOutDate',
  610. tableId: '601005Table1',
  611. tableName: '审批规则表',
  612. columnProp: 'phaseOutDate',
  613. headerAlign: 'center',
  614. align: 'center',
  615. columnLabel: '停用日期',
  616. columnHidden: false,
  617. columnImage: false,
  618. columnSortable: false,
  619. sortLv: 0,
  620. status: true,
  621. fixed: '',
  622. columnWidth: 170
  623. },
  624. {
  625. userId: this.$store.state.user.name,
  626. functionId: 601005,
  627. serialNumber: '601005Table1CreateDate',
  628. tableId: '601005Table1',
  629. tableName: '审批规则表',
  630. columnProp: 'createDate',
  631. headerAlign: 'center',
  632. align: 'center',
  633. columnLabel: '创建时间',
  634. columnHidden: false,
  635. columnImage: false,
  636. columnSortable: false,
  637. sortLv: 0,
  638. status: true,
  639. fixed: '',
  640. columnWidth: 170
  641. },
  642. {
  643. userId: this.$store.state.user.name,
  644. functionId: 601005,
  645. serialNumber: '601005Table1CreateBy',
  646. tableId: "601005Table1",
  647. tableName: "审批规则表",
  648. columnProp: 'createBy',
  649. headerAlign: "center",
  650. align: "center",
  651. columnLabel: '创建人',
  652. columnHidden: false,
  653. columnImage: false,
  654. columnSortable: false,
  655. sortLv: 0,
  656. status: true,
  657. fixed: '',
  658. columnWidth: 100
  659. },
  660. {
  661. userId: this.$store.state.user.name,
  662. functionId: 601005,
  663. serialNumber: '601005Table1UpdateDate',
  664. tableId: "601005Table1",
  665. tableName: "审批规则表",
  666. columnProp: 'updateDate',
  667. headerAlign: "center",
  668. align: "center",
  669. columnLabel: '更新时间',
  670. columnHidden: false,
  671. columnImage: false,
  672. columnSortable: false,
  673. sortLv: 0,
  674. status: true,
  675. fixed: '',
  676. columnWidth: 170
  677. },
  678. {
  679. userId: this.$store.state.user.name,
  680. functionId: 601005,
  681. serialNumber: '601005Table1UpdateBy',
  682. tableId: "601005Table1",
  683. tableName: "审批规则表",
  684. columnProp: 'updateBy',
  685. headerAlign: "center",
  686. align: "center",
  687. columnLabel: '更新人',
  688. columnHidden: false,
  689. columnImage: false,
  690. columnSortable: false,
  691. sortLv: 0,
  692. status: true,
  693. fixed: '',
  694. columnWidth: 100
  695. },
  696. ],
  697. ruleStepColumnList: [
  698. {
  699. userId: this.$store.state.user.name,
  700. functionId: 601005,
  701. serialNumber: '601005Table2StepNo',
  702. tableId: "601005Table2",
  703. tableName: "审批规则步骤表",
  704. columnProp: 'stepNo',
  705. headerAlign: "center",
  706. align: "center",
  707. columnLabel: '步骤号',
  708. columnHidden: false,
  709. columnImage: false,
  710. columnSortable: false,
  711. sortLv: 0,
  712. status: true,
  713. fixed: '',
  714. columnWidth: 60
  715. },
  716. {
  717. userId: this.$store.state.user.name,
  718. functionId: 601005,
  719. serialNumber: '601005Table2AuthTypeDb',
  720. tableId: "601005Table2",
  721. tableName: "审批规则步骤表",
  722. columnProp: 'authTypeDb',
  723. headerAlign: "center",
  724. align: "center",
  725. columnLabel: '类型',
  726. columnHidden: false,
  727. columnImage: false,
  728. columnSortable: false,
  729. sortLv: 0,
  730. status: true,
  731. fixed: '',
  732. columnWidth: 90
  733. },
  734. {
  735. userId: this.$store.state.user.name,
  736. functionId: 601005,
  737. serialNumber: '601005Table2AuthUserNo',
  738. tableId: "601005Table2",
  739. tableName: "审批规则步骤表",
  740. columnProp: 'authUserNo',
  741. headerAlign: "center",
  742. align: "left",
  743. columnLabel: '审批人',
  744. columnHidden: false,
  745. columnImage: false,
  746. columnSortable: false,
  747. sortLv: 0,
  748. status: true,
  749. fixed: '',
  750. columnWidth: 100
  751. },
  752. {
  753. userId: this.$store.state.user.name,
  754. functionId: 601005,
  755. serialNumber: '601005Table2UserDisplay',
  756. tableId: "601005Table2",
  757. tableName: "审批规则步骤表",
  758. columnProp: 'userDisplay',
  759. headerAlign: "center",
  760. align: "left",
  761. columnLabel: '审批人姓名',
  762. columnHidden: false,
  763. columnImage: false,
  764. columnSortable: false,
  765. sortLv: 0,
  766. status: true,
  767. fixed: '',
  768. columnWidth: 100
  769. },
  770. {
  771. userId: this.$store.state.user.name,
  772. functionId: 601005,
  773. serialNumber: '601005Table2AuthGroupNo',
  774. tableId: "601005Table2",
  775. tableName: "审批规则步骤表",
  776. columnProp: 'authGroupNo',
  777. headerAlign: "center",
  778. align: "center",
  779. columnLabel: '审批组编码',
  780. columnHidden: false,
  781. columnImage: false,
  782. columnSortable: false,
  783. sortLv: 0,
  784. status: true,
  785. fixed: '',
  786. columnWidth: 120
  787. },
  788. {
  789. userId: this.$store.state.user.name,
  790. functionId: 601005,
  791. serialNumber: '601005Table2GroupDesc',
  792. tableId: "601005Table2",
  793. tableName: "审批规则步骤表",
  794. columnProp: 'groupDesc',
  795. headerAlign: "center",
  796. align: "left",
  797. columnLabel: '审批组名称',
  798. columnHidden: false,
  799. columnImage: false,
  800. columnSortable: false,
  801. sortLv: 0,
  802. status: true,
  803. fixed: '',
  804. columnWidth: 120
  805. },
  806. {
  807. userId: this.$store.state.user.name,
  808. functionId: 601005,
  809. serialNumber: '601005Table2FirstStepFlag',
  810. tableId: "601005Table2",
  811. tableName: "审批规则步骤表",
  812. columnProp: 'firstStepFlag',
  813. headerAlign: "center",
  814. align: "center",
  815. columnLabel: '首步骤',
  816. columnHidden: false,
  817. columnImage: false,
  818. columnSortable: false,
  819. sortLv: 0,
  820. status: true,
  821. fixed: '',
  822. columnWidth: 50
  823. },
  824. {
  825. userId: this.$store.state.user.name,
  826. functionId: 601005,
  827. serialNumber: '601005Table2LastStepFlag',
  828. tableId: "601005Table2",
  829. tableName: "审批规则步骤表",
  830. columnProp: 'lastStepFlag',
  831. headerAlign: "center",
  832. align: "center",
  833. columnLabel: '末步骤',
  834. columnHidden: false,
  835. columnImage: false,
  836. columnSortable: false,
  837. sortLv: 0,
  838. status: true,
  839. fixed: '',
  840. columnWidth: 50
  841. },
  842. {
  843. userId: this.$store.state.user.name,
  844. functionId: 601005,
  845. serialNumber: '601005Table2CreateDate',
  846. tableId: "601005Table2",
  847. tableName: "审批规则步骤表",
  848. columnProp: 'createDate',
  849. headerAlign: "center",
  850. align: "center",
  851. columnLabel: '创建时间',
  852. columnHidden: false,
  853. columnImage: false,
  854. columnSortable: false,
  855. sortLv: 0,
  856. status: true,
  857. fixed: '',
  858. columnWidth: 170
  859. },
  860. {
  861. userId: this.$store.state.user.name,
  862. functionId: 601005,
  863. serialNumber: '601005Table2CreateBy',
  864. tableId: "601005Table2",
  865. tableName: "审批规则步骤表",
  866. columnProp: 'createBy',
  867. headerAlign: "center",
  868. align: "left",
  869. columnLabel: '创建人',
  870. columnHidden: false,
  871. columnImage: false,
  872. columnSortable: false,
  873. sortLv: 0,
  874. status: true,
  875. fixed: '',
  876. columnWidth: 100
  877. },
  878. {
  879. userId: this.$store.state.user.name,
  880. functionId: 601005,
  881. serialNumber: '601005Table2UpdateDate',
  882. tableId: "601005Table2",
  883. tableName: "审批规则步骤表",
  884. columnProp: 'updateDate',
  885. headerAlign: "center",
  886. align: "center",
  887. columnLabel: '更新时间',
  888. columnHidden: false,
  889. columnImage: false,
  890. columnSortable: false,
  891. sortLv: 0,
  892. status: true,
  893. fixed: '',
  894. columnWidth: 170
  895. },
  896. {
  897. userId: this.$store.state.user.name,
  898. functionId: 601005,
  899. serialNumber: '601005Table2UpdateBy',
  900. tableId: "601005Table2",
  901. tableName: "审批规则步骤表",
  902. columnProp: 'updateBy',
  903. headerAlign: "center",
  904. align: "left",
  905. columnLabel: '更新人',
  906. columnHidden: false,
  907. columnImage: false,
  908. columnSortable: false,
  909. sortLv: 0,
  910. status: true,
  911. fixed: '',
  912. columnWidth: 100
  913. },
  914. ],
  915. rules: {
  916. bu: [
  917. {
  918. required: true,
  919. message: ' ',
  920. trigger: ['blur','change']
  921. }
  922. ],
  923. ruleNo:[
  924. {
  925. required: true,
  926. message: ' ',
  927. trigger: 'change'
  928. }
  929. ],
  930. ruleDesc:[
  931. {
  932. required: true,
  933. message: ' ',
  934. trigger: 'change'
  935. }
  936. ],
  937. active:[
  938. {
  939. required: true,
  940. message: ' ',
  941. trigger: 'change'
  942. }
  943. ],
  944. priority:[
  945. {
  946. required: true,
  947. message: ' ',
  948. trigger: 'change'
  949. }
  950. ],
  951. phaseInDate:[
  952. {
  953. required: true,
  954. message: ' ',
  955. trigger: 'change'
  956. }
  957. ],
  958. stepNo:[
  959. {
  960. required: true,
  961. message: ' ',
  962. trigger: 'change'
  963. }
  964. ],
  965. authTypeDb:[
  966. {
  967. required: true,
  968. message: ' ',
  969. trigger: 'change'
  970. }
  971. ],
  972. authUserNo:[
  973. {
  974. required: true,
  975. message: ' ',
  976. trigger: 'change'
  977. }
  978. ],
  979. recordType:[
  980. {
  981. required: true,
  982. message: ' ',
  983. trigger: 'change'
  984. }
  985. ],
  986. userDisplay:[
  987. {
  988. required: true,
  989. message: ' ',
  990. trigger: 'change'
  991. }
  992. ],
  993. authGroupNo:[
  994. {
  995. required: true,
  996. message: ' ',
  997. trigger: 'change'
  998. }
  999. ],
  1000. groupDesc:[
  1001. {
  1002. required: true,
  1003. message: ' ',
  1004. trigger: 'change'
  1005. }
  1006. ],
  1007. },
  1008. businessTypeSelectList: [],
  1009. // ======== 模态框开关控制 ========
  1010. authSearch: false,
  1011. authSave: false,
  1012. authUpdate: false,
  1013. authDelete: false,
  1014. modalFlag: false,
  1015. ruleStepModalFlag: false,
  1016. modalDisableFlag: false,
  1017. ruleStepModalDisableFlag: false,
  1018. menuId: this.$route.meta.menuId,
  1019. };
  1020. },
  1021. watch: {
  1022. searchData: {
  1023. deep: true,
  1024. handler: function (newV, oldV) {
  1025. this.searchData.ruleNo = this.searchData.ruleNo.toUpperCase()
  1026. }
  1027. },
  1028. modalData: {
  1029. deep: true,
  1030. handler: function (newV, oldV) {
  1031. this.modalData.ruleNo = this.modalData.ruleNo.toUpperCase()
  1032. }
  1033. },
  1034. ruleStepModalData: {
  1035. deep: true,
  1036. handler: function (newV, oldV) {
  1037. this.ruleStepModalData.authGroupNo = this.ruleStepModalData.authGroupNo.toUpperCase()
  1038. }
  1039. },
  1040. // 监听 modalData.recordType 的变化,动态设置 isSimultaneous
  1041. 'modalData.recordType': function (newVal) {
  1042. if (this.modalData.flag === '1') {
  1043. // 根据 recordType 的值设置 isSimultaneous
  1044. this.modalData.isSimultaneous = newVal === 2 && newVal !== undefined;
  1045. }
  1046. }
  1047. },
  1048. mounted () {
  1049. this.$nextTick(() => {
  1050. this.height = window.innerHeight - 180
  1051. })
  1052. },
  1053. created() {
  1054. // 获取用户的 site 和 bu
  1055. this.getSiteAndBuByUserName();
  1056. // 获取数据列表
  1057. this.getDataList()
  1058. this.getBusinessRoleList()
  1059. },
  1060. methods: {
  1061. // 获取用户的bu
  1062. getSiteAndBuByUserName () {
  1063. let tempData = {
  1064. username: this.$store.state.user.name,
  1065. }
  1066. getSiteAndBuByUserName(tempData).then(({data}) => {
  1067. if (data.code === 0) {
  1068. this.userBuList = data.rows
  1069. }
  1070. })
  1071. },
  1072. // 每页数
  1073. sizeChangeHandle (val) {
  1074. this.pageSize = val
  1075. this.pageIndex = 1
  1076. this.getDataList()
  1077. },
  1078. // 当前页
  1079. currentChangeHandle (val) {
  1080. this.pageIndex = val
  1081. this.getDataList()
  1082. },
  1083. // 获取基础数据列表S
  1084. getBaseList (val,type) {
  1085. this.tagNo = val
  1086. this.$nextTick(() => {
  1087. let strVal = ''
  1088. let conSql = ''
  1089. if (val === 2003 ) {
  1090. strVal = this.ruleStepModalData.authUserNo
  1091. conSql = " and br.site = '" + this.$store.state.user.site + "'"
  1092. this.$refs.baseList.init(val, strVal, conSql)
  1093. }
  1094. if (val === 218 ) {
  1095. strVal = this.ruleStepModalData.authGroupNo
  1096. this.$refs.baseList.init(val, strVal)
  1097. }
  1098. })
  1099. },
  1100. /* 列表方法的回调 */
  1101. getBaseData (val) {
  1102. if (this.tagNo === 2003) {
  1103. this.ruleStepModalData.authUserNo = val.username
  1104. this.ruleStepModalData.userDisplay = val.user_display
  1105. }
  1106. if (this.tagNo === 218) {
  1107. this.ruleStepModalData.authGroupNo = val.group_no
  1108. this.ruleStepModalData.groupDesc = val.group_desc
  1109. }
  1110. },
  1111. // 获取数据列表
  1112. getDataList () {
  1113. if (this.searchData.bu != null && this.searchData.bu !== '') {
  1114. this.searchData.buNo = this.searchData.bu.split('_')[1]
  1115. }
  1116. this.searchData.limit = this.pageSize
  1117. this.searchData.page = this.pageIndex
  1118. authRuleSearch(this.searchData).then(({data}) => {
  1119. if (data.code === 0) {
  1120. this.dataList = data.page.list
  1121. this.pageIndex = data.page.currPage
  1122. this.pageSize = data.page.pageSize
  1123. this.totalPage = data.page.totalCount
  1124. // 遍历数据列表,将状态转换为中文
  1125. this.dataList.forEach(item => {
  1126. if (item.active === 'Y') {
  1127. item.active = '启用'
  1128. } else {
  1129. item.active = '禁用'
  1130. }
  1131. })
  1132. // 判断是否全部存在数据
  1133. if (this.totalPage > 0) {
  1134. // 设置选中行
  1135. this.$refs.mainTable.setCurrentRow(this.dataList[0])
  1136. // 加载当前的页签的table
  1137. this.refreshCurrentTabTable()
  1138. this.ruleClickRow(this.dataList[0])
  1139. }
  1140. }
  1141. })
  1142. },
  1143. // 获取数据列表
  1144. getRuleStepDataList () {
  1145. authRuleStepSearch(this.ruleCurrentRow).then(({data}) => {
  1146. if (data && data.code === 0) {
  1147. this.ruleStepDataList = data.list
  1148. // 设置选中行
  1149. this.$refs.ruleStepTable.setCurrentRow(this.ruleStepDataList[0])
  1150. for (let i = 0; i < this.ruleStepDataList.length; i++) {
  1151. if (this.ruleStepDataList[i].authTypeDb === 'U') {
  1152. this.ruleStepDataList[i].authTypeDb = '审批人'
  1153. } else {
  1154. this.ruleStepDataList[i].authTypeDb = '审批组'
  1155. }
  1156. }
  1157. }
  1158. })
  1159. },
  1160. addModal () {
  1161. this.modalData = {
  1162. flag: '1',
  1163. title: '审批规则新增',
  1164. bu: this.userBuList[0].buNo,
  1165. buNo: '',
  1166. ruleNo: '',
  1167. ruleDesc: '',
  1168. minValue: '',
  1169. maxValue: '',
  1170. priority: 1,
  1171. phaseInDate: new Date(),
  1172. active: 'Y',
  1173. isSimultaneous: false,
  1174. createBy: this.$store.state.user.name,
  1175. }
  1176. this.modalDisableFlag = false
  1177. this.modalFlag = true
  1178. },
  1179. ruleStepAddModal () {
  1180. this.ruleStepModalData = {
  1181. flag: '1',
  1182. title: '审批规则步骤新增',
  1183. bu: this.userBuList[0].buNo,
  1184. buNo: '',
  1185. authRuleId: this.ruleCurrentRow.authRuleId,
  1186. ruleNo: this.ruleCurrentRow.ruleNo,
  1187. ruleDesc: this.ruleCurrentRow.ruleDesc,
  1188. stepNo: 10,
  1189. authTypeDb: 'U',
  1190. authUserNo: '',
  1191. userDisplay: '',
  1192. authGroupNo: '',
  1193. groupDesc: '',
  1194. firstStepFlag: 'N',
  1195. lastStepFlag: 'N',
  1196. createBy: this.$store.state.user.name,
  1197. }
  1198. // 遍历数据列表,判断步骤号,每次新增步骤号+10
  1199. let stepNoList = []
  1200. for (let i = 0; i < this.ruleStepDataList.length; i++) {
  1201. stepNoList.push(this.ruleStepDataList[i].stepNo)
  1202. }
  1203. if (stepNoList.length > 0) {
  1204. this.ruleStepModalData.stepNo = Math.max.apply(null, stepNoList) + 10
  1205. }
  1206. this.ruleStepModalDisableFlag = false
  1207. this.ruleStepModalFlag = true
  1208. },
  1209. /**
  1210. * 审批规则信息编辑模态框
  1211. * @param row
  1212. */
  1213. updateModal (row) {
  1214. this.modalData = {
  1215. flag: '2',
  1216. title: '审批规则编辑',
  1217. site: row.site,
  1218. authRuleId: row.authRuleId,
  1219. recordType: row.recordType,
  1220. bu: row.site + '_' + row.buNo,
  1221. buNo: row.buNo,
  1222. ruleNo: row.ruleNo,
  1223. ruleDesc: row.ruleDesc,
  1224. minValue: row.minValue,
  1225. maxValue: row.maxValue,
  1226. priority: row.priority,
  1227. phaseInDate: row.phaseInDate,
  1228. phaseOutDate: row.phaseOutDate,
  1229. remark: row.remark,
  1230. active: row.active,
  1231. isSimultaneous: row.isSimultaneous,
  1232. createBy: row.createBy,
  1233. createDate: row.createDate,
  1234. updateBy: this.$store.state.user.name,
  1235. updateDate: ''
  1236. }
  1237. // 将recordType转为INT
  1238. this.modalData.recordType = parseInt(row.recordType)
  1239. this.modalDisableFlag = true
  1240. this.modalFlag = true
  1241. },
  1242. /**
  1243. * 审批规则步骤信息编辑模态框
  1244. * @param row
  1245. */
  1246. ruleStepUpdateModal (row) {
  1247. this.ruleStepModalData = {
  1248. flag: '2',
  1249. title: '审批规则步骤编辑',
  1250. site: row.site,
  1251. authStepId: row.authStepId,
  1252. authRuleId: row.authRuleId,
  1253. ruleNo: row.ruleNo,
  1254. ruleDesc: row.ruleDesc,
  1255. stepNo: row.stepNo,
  1256. authTypeDb: row.authTypeDb,
  1257. authUserNo: row.authUserNo,
  1258. userDisplay: row.userDisplay,
  1259. authGroupNo: row.authGroupNo,
  1260. groupDesc: row.groupDesc,
  1261. firstStepFlag: row.firstStepFlag,
  1262. lastStepFlag: row.lastStepFlag,
  1263. createBy: row.createBy,
  1264. createDate: row.createDate,
  1265. updateBy: this.$store.state.user.name,
  1266. updateDate: ''
  1267. }
  1268. this.ruleStepModalDisableFlag = true
  1269. this.ruleStepModalFlag = true
  1270. },
  1271. // ======== 新增/编辑/删除方法 ========
  1272. /**
  1273. * 审批规则信息新增/编辑
  1274. */
  1275. saveData () {
  1276. if (this.modalData.bu === '' || this.modalData.bu == null) {
  1277. this.$message.warning('请选择BU!')
  1278. return
  1279. }
  1280. if (this.modalData.ruleNo === '' || this.modalData.ruleNo == null) {
  1281. this.$message.warning('请填写审批规则编码!')
  1282. return
  1283. }
  1284. if (this.modalData.ruleDesc === '' || this.modalData.ruleDesc == null) {
  1285. this.$message.warning('请填写审批规则描述!')
  1286. return
  1287. }
  1288. if (this.modalData.priority === '' || this.modalData.priority == null) {
  1289. this.$message.warning('请选择优先级!')
  1290. return
  1291. }
  1292. if (this.modalData.phaseInDate === '' || this.modalData.phaseInDate == null) {
  1293. this.$message.warning('请选择启用日期!')
  1294. return
  1295. }
  1296. if (this.modalData.active === '' || this.modalData.active == null) {
  1297. this.$message.warning('请选择状态!')
  1298. return
  1299. }
  1300. if (this.modalData.recordType === '' || this.modalData.recordType == null) {
  1301. this.$message.warning('请选择业务类型!')
  1302. return
  1303. }
  1304. if (this.modalData.flag === '1') {
  1305. this.modalData.buNo = this.modalData.bu.split('_')[1]
  1306. this.modalData.site = this.$store.state.user.site
  1307. authRuleSave(this.modalData).then(({data}) => {
  1308. if (data && data.code === 0) {
  1309. this.getDataList()
  1310. this.modalFlag = false
  1311. this.$message({
  1312. message: '操作成功',
  1313. type: 'success',
  1314. duration: 1500,
  1315. onClose: () => {}
  1316. })
  1317. } else {
  1318. this.$alert(data.msg, '错误', {
  1319. confirmButtonText: '确定'
  1320. })
  1321. }
  1322. })
  1323. } else {
  1324. if (this.modalData.active === 'N') {
  1325. if (this.modalData.phaseOutDate === '' || this.modalData.phaseOutDate == null) {
  1326. this.$alert('停用日期不能为空!', '错误', {
  1327. confirmButtonText: '确定'
  1328. })
  1329. return
  1330. }
  1331. }
  1332. authRuleEdit(this.modalData).then(({data}) => {
  1333. if (data && data.code === 0) {
  1334. this.getDataList()
  1335. this.modalFlag = false
  1336. this.$message({
  1337. message: '操作成功',
  1338. type: 'success',
  1339. duration: 1500,
  1340. onClose: () => {}
  1341. })
  1342. } else {
  1343. this.$alert(data.msg, '错误', {
  1344. confirmButtonText: '确定'
  1345. })
  1346. }
  1347. })
  1348. }
  1349. },
  1350. /**
  1351. * 审批规则步骤信息新增/编辑
  1352. */
  1353. ruleStepSaveData () {
  1354. if (this.ruleStepModalData.stepNo === '' || this.ruleStepModalData.stepNo == null) {
  1355. this.$message.warning('请填写步骤号!')
  1356. return
  1357. }
  1358. if (this.ruleStepModalData.authTypeDb === '' || this.ruleStepModalData.authTypeDb == null) {
  1359. this.$message.warning('请选择类型!')
  1360. return
  1361. }
  1362. if (this.ruleStepModalData.authTypeDb === 'U' || this.ruleStepModalData.authTypeDb === '审批人') {
  1363. if (this.ruleStepModalData.authUserNo === '' || this.ruleStepModalData.authUserNo == null) {
  1364. this.$message.warning('请填写审批人!')
  1365. return
  1366. }
  1367. if (this.ruleStepModalData.userDisplay === '' || this.ruleStepModalData.userDisplay == null) {
  1368. this.$alert('该审批人不存在,请重新输入审批人用户名!', '提示', {
  1369. confirmButtonText: '确定',
  1370. type: 'warning'
  1371. })
  1372. return;
  1373. }
  1374. } else {
  1375. if (this.ruleStepModalData.authGroupNo === '' || this.ruleStepModalData.authGroupNo == null) {
  1376. this.$message.warning('请填写审批组编码!')
  1377. return
  1378. }
  1379. if (this.ruleStepModalData.groupDesc === '' || this.ruleStepModalData.groupDesc == null) {
  1380. this.$alert('该审批组不存在,请重新输入审批组编码!', '提示', {
  1381. confirmButtonText: '确定',
  1382. type: 'warning'
  1383. })
  1384. return;
  1385. }
  1386. }
  1387. // 判断步骤号是否为整十的倍数
  1388. if (this.ruleStepModalData.stepNo % 10 !== 0) {
  1389. this.$alert('步骤号必须为整十的倍数(如10、20、30)!', '提示', {
  1390. confirmButtonText: '确定'
  1391. })
  1392. return
  1393. }
  1394. if (this.ruleStepDataList != null && this.ruleStepDataList.length > 0) {
  1395. for (let i = 0; i < this.ruleStepDataList.length; i++) {
  1396. if (this.ruleStepModalData.stepNo !== this.ruleStepDataList[i].stepNo) {
  1397. if(this.ruleStepModalData.firstStepFlag === 'Y' && this.ruleStepDataList[i].firstStepFlag === 'Y') {
  1398. this.$alert('该审批步骤下已存在首步骤!', '提示', {
  1399. confirmButtonText: '确定'
  1400. })
  1401. return
  1402. }
  1403. if(this.ruleStepModalData.lastStepFlag === 'Y' && this.ruleStepDataList[i].lastStepFlag === 'Y') {
  1404. this.$alert('该审批步骤下已存在末步骤!', '提示', {
  1405. confirmButtonText: '确定'
  1406. })
  1407. return
  1408. }
  1409. }
  1410. }
  1411. }
  1412. if (this.ruleStepModalData.firstStepFlag === 'Y') {
  1413. this.ruleStepModalData.lastStepFlag = 'N'
  1414. } else if (this.ruleStepModalData.lastStepFlag === 'Y') {
  1415. this.ruleStepModalData.firstStepFlag = 'N'
  1416. } else {
  1417. this.ruleStepModalData.firstStepFlag = 'N'
  1418. this.ruleStepModalData.lastStepFlag = 'N'
  1419. }
  1420. if (this.ruleStepModalData.flag === '1') {
  1421. this.ruleStepModalData.buNo = this.ruleStepModalData.bu.split('_')[1]
  1422. this.ruleStepModalData.site = this.$store.state.user.site
  1423. authRuleStepSave(this.ruleStepModalData).then(({data}) => {
  1424. if (data && data.code === 0) {
  1425. this.getRuleStepDataList()
  1426. this.ruleStepModalFlag = false
  1427. this.$message({
  1428. message: '操作成功',
  1429. type: 'success',
  1430. duration: 1500,
  1431. onClose: () => {}
  1432. })
  1433. } else {
  1434. this.$alert(data.msg, '错误', {
  1435. confirmButtonText: '确定'
  1436. })
  1437. }
  1438. })
  1439. } else {
  1440. if (this.ruleStepModalData.authTypeDb === '审批人') {
  1441. this.ruleStepModalData.authTypeDb = 'U'
  1442. } else {
  1443. this.ruleStepModalData.authTypeDb = 'G'
  1444. }
  1445. authRuleStepEdit(this.ruleStepModalData).then(({data}) => {
  1446. if (data && data.code === 0) {
  1447. this.getRuleStepDataList()
  1448. this.ruleStepModalFlag = false
  1449. this.$message({
  1450. message: '操作成功',
  1451. type: 'success',
  1452. duration: 1500,
  1453. onClose: () => {}
  1454. })
  1455. } else {
  1456. this.$alert(data.msg, '错误', {
  1457. confirmButtonText: '确定'
  1458. })
  1459. }
  1460. })
  1461. }
  1462. },
  1463. /**
  1464. * 审批规则信息删除
  1465. */
  1466. delModal (row) {
  1467. this.$confirm(`是否删除这条审批规则信息?`, '提示', {
  1468. confirmButtonText: '确定',
  1469. cancelButtonText: '取消',
  1470. type: 'warning'
  1471. }).then(() => {
  1472. authRuleDelete(row).then(({data}) => {
  1473. if (data && data.code === 0) {
  1474. this.getDataList()
  1475. this.partSelections = []
  1476. this.$message({
  1477. message: '操作成功',
  1478. type: 'success',
  1479. duration: 1500,
  1480. onClose: () => {}
  1481. })
  1482. } else {
  1483. this.$alert(data.msg, '错误', {
  1484. confirmButtonText: '确定'
  1485. })
  1486. }
  1487. })
  1488. }).catch(() => {
  1489. })
  1490. },
  1491. /**
  1492. * 审批规则步骤信息删除
  1493. */
  1494. ruleStepDelModal (row) {
  1495. this.$confirm(`是否删除这条审批规则步骤信息?`, '提示', {
  1496. confirmButtonText: '确定',
  1497. cancelButtonText: '取消',
  1498. type: 'warning'
  1499. }).then(() => {
  1500. authRuleStepDelete(row).then(({data}) => {
  1501. if (data && data.code === 0) {
  1502. this.getRuleStepDataList()
  1503. this.partSelections = []
  1504. this.$message({
  1505. message: '操作成功',
  1506. type: 'success',
  1507. duration: 1500,
  1508. onClose: () => {}
  1509. })
  1510. } else {
  1511. this.$alert(data.msg, '错误', {
  1512. confirmButtonText: '确定'
  1513. })
  1514. }
  1515. })
  1516. }).catch(() => {
  1517. })
  1518. },
  1519. clearRuleStepModalData () {
  1520. this.ruleStepModalData.authUserNo = ''
  1521. this.ruleStepModalData.userDisplay = ''
  1522. this.ruleStepModalData.authGroupNo = ''
  1523. this.ruleStepModalData.groupDesc = ''
  1524. },
  1525. getBusinessRoleList() {
  1526. let queryData = {
  1527. active: 'Y'
  1528. }
  1529. this.businessTypeSelectList = []
  1530. getBusinessTypeList(queryData).then(({data}) => {
  1531. if (data.code == 0) {
  1532. this.businessTypeSelectList = data.rows
  1533. }
  1534. })
  1535. },
  1536. authUserNoBlur () {
  1537. let params = {
  1538. username: this.ruleStepModalData.authUserNo,
  1539. site: this.$store.state.user.site,
  1540. limit: 1,
  1541. page: 1
  1542. }
  1543. authBusinessSearch(params).then(({data}) => {
  1544. if (data.code === 0) {
  1545. this.ruleStepModalData.userDisplay = data.page.list[0].userDisplay
  1546. } else {
  1547. this.$alert(data.msg, '错误', {
  1548. confirmButtonText: '确定'
  1549. })
  1550. }
  1551. })
  1552. },
  1553. authGroupNoBlur () {
  1554. let params = {
  1555. site: this.$store.state.user.site,
  1556. groupNo: this.ruleStepModalData.authGroupNo,
  1557. active: 'Y',
  1558. limit: 1,
  1559. page: 1
  1560. }
  1561. authGroupSearch(params).then(({data}) => {
  1562. if (data.code === 0) {
  1563. this.ruleStepModalData.groupDesc = data.page.list[0].groupDesc
  1564. } else {
  1565. this.$alert(data.msg, '错误', {
  1566. confirmButtonText: '确定'
  1567. })
  1568. }
  1569. })
  1570. },
  1571. // ======== 列表操作方法 ========
  1572. /**
  1573. * 单机选中审批规则信息
  1574. * @param row
  1575. */
  1576. ruleClickRow(row) {
  1577. this.ruleCurrentRow = JSON.parse(JSON.stringify(row))
  1578. },
  1579. changeCurrentRow (row, oldRow) {
  1580. // 判断是否是获取焦点的事件
  1581. if (row) {
  1582. this.ruleCurrentRow = JSON.parse(JSON.stringify(row))
  1583. //刷新当前页表
  1584. this.refreshCurrentTabTable()
  1585. }
  1586. },
  1587. // 列表表格选择替换
  1588. tabClick (tab, event) {
  1589. // 刷新列表数据
  1590. this.refreshCurrentTabTable()
  1591. },
  1592. refreshCurrentTabTable () {
  1593. if (this.activeTable == 'auth_rule_step') {
  1594. this.getRuleStepDataList()
  1595. }
  1596. },
  1597. }
  1598. }
  1599. </script>