quoteApproval.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660
  1. <template>
  2. <PageMain class="vh100">
  3. <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
  4. <el-tab-pane :label="`待审核(${pendingReviewlength})`" name="pendingReview">
  5. </el-tab-pane>
  6. <el-tab-pane :label="`审核通过(${passlength})`" name="pass">
  7. </el-tab-pane>
  8. <el-tab-pane :label="`审核不通过(${reviewRejectedlength})`" name="reviewRejected">
  9. </el-tab-pane>
  10. </el-tabs>
  11. <SearchForm :fields="visibleFields" :formInline="formInline" :onSearch="agreementQuery" :onReset="resetForm" />
  12. <ComplexTable :tableData="companylist" :columns="columns" :showIndex="false" :columnwidth="200" :showSelect="true"
  13. :pageInfo="pageInfo" @getList="getList" @selectionChange="selectionChange" uniqueIdName="costId">
  14. <template #ruleDescription="{ data, bodyCell }">
  15. <div class="whitespace-normal">{{ data.ruleDescription }}</div>
  16. </template>
  17. <template #costRules="{ data, bodyCell }">
  18. <div class="whitespace-normal">{{ data.costRules }}</div>
  19. </template>
  20. <template v-slot:table-title-btn>
  21. <el-dropdown placement="bottom-start" v-if="activeName == 'pendingReview'">
  22. <el-button> 批量审核<el-icon>
  23. <arrow-down />
  24. </el-icon>
  25. </el-button>
  26. <template #dropdown>
  27. <el-dropdown-menu>
  28. <el-dropdown-item :disabled="!sysUpAndDownList.length" @click="batchaudit">批量审核</el-dropdown-item>
  29. <el-dropdown-item :disabled="!sysUpAndDownList.length" @click="batchrejected">批量驳回</el-dropdown-item>
  30. </el-dropdown-menu>
  31. </template>
  32. </el-dropdown>
  33. </template>
  34. <template v-slot:operation="scope">
  35. <el-button v-if="scope.operationData.approved == '0'" type="primary" link
  36. @click="agreemenUpdate(scope.operationData)"> 审核
  37. </el-button>
  38. <el-button v-if="scope.operationData.approved == '2' || scope.operationData.approved == '1'" type="primary" link
  39. @click="agreemenUpdate(scope.operationData)"> 详情
  40. </el-button>
  41. </template>
  42. </ComplexTable>
  43. </PageMain>
  44. <!-- 规则费用编辑组件 -->
  45. <ruleFeeDialogEdit :ruleFeeVisible="ruleFeeEditVisible" :headerTitle="ruleFeeHeaderTitle"
  46. :agreementInfo="AgreementInfo" :RulesInfo="ruleInfo" :costitemEditInfo="costitemEditInfo" @save="ruleFeeEditSave"
  47. @cancel="ruleFeeEditVisible = false" :operationType="activeName == 'pendingReview' ? 'audit' : 'rejected'"
  48. @rejectOperation="rejectOperation" @auditOperation="auditOperation"
  49. :titleType="activeName == 'pendingReview' ? '费用审核' : '费用详情'" />
  50. </template>
  51. <script lang="ts" setup>
  52. import { ref, reactive } from 'vue'
  53. import { useRoute, } from 'vue-router';
  54. import { ElMessage, ElMessageBox } from 'element-plus'
  55. import { loadDicts, getDict } from '@/utils/composables/dictService';//字典组件
  56. import ruleFeeDialogEdit from "../quoteConfig/agreement/components/ruleFeeDialogEdit.vue";
  57. import api from '@/api';
  58. interface PageInfo {
  59. pageNum: number;
  60. pageSize: number;
  61. sizes: number[];
  62. total: number;
  63. }
  64. onBeforeMount(async () => {
  65. await loadDicts(['valid_status', 'is_enable', 'audit_status', 'insurance_type']);//获取多个字典
  66. if (id.value) {
  67. formInline.agreement = id.value;
  68. }
  69. findpage("0");//列表数据
  70. findpage("1");//列表数据
  71. findpage("2");//列表数据
  72. getDeptTree();
  73. agreement();
  74. getAgreement();//全部协议;
  75. initCompany();//保险公司
  76. valid_status.value = getDict('valid_status');//生效状态
  77. is_enable.value = getDict('is_enable');//协议状态
  78. insurance_type.value = getDict('insurance_type')
  79. audit_status.value = getDict('audit_status')
  80. });
  81. const tableData1 = ref([]);//待审核
  82. const tableData2 = ref([]);//审核通过
  83. const tableData3 = ref([]);//审核不通过
  84. const activeName = ref('pendingReview')
  85. const agreementQueryName = ref();//选择协议查询
  86. const agreementList = ref();//协议列表
  87. const sysUpAndDownList = ref<string[]>([])//选中id
  88. const deptOptions = ref()//机构数据
  89. const insurance_type = ref();
  90. const valid_status = ref();
  91. const audit_status = ref();
  92. const is_enable = ref();
  93. const agreementListALL = ref();//全部协议列表
  94. const company_list = ref();//保险公司列表
  95. const companyIdprops = {
  96. expandTrigger: 'hover' as const,
  97. value: 'id',
  98. label: 'name',
  99. checkStrictly: true,
  100. }
  101. const route = useRoute();
  102. const id = ref(route.query.id as string);//id参数
  103. const pendingReviewlength = ref(0);//待审核
  104. const passlength = ref(0);//审核通过
  105. const reviewRejectedlength = ref(0);//审核不通过
  106. // 三个选项卡各自的分页数据
  107. const pageInfoPending = ref({
  108. pageNum: 1,
  109. pageSize: 20,
  110. sizes: [10, 20, 30, 40, 50],
  111. total: 0,
  112. });
  113. const pageInfoPass = ref({
  114. pageNum: 1,
  115. pageSize: 20,
  116. sizes: [10, 20, 30, 40, 50],
  117. total: 0,
  118. });
  119. const pageInfoRejected = ref({
  120. pageNum: 1,
  121. pageSize: 20,
  122. sizes: [10, 20, 30, 40, 50],
  123. total: 0,
  124. });
  125. // 当前激活选项卡的分页
  126. const pageInfo = computed(() => {
  127. switch (activeName.value) {
  128. case 'pendingReview':
  129. return pageInfoPending.value;
  130. case 'pass':
  131. return pageInfoPass.value;
  132. case 'reviewRejected':
  133. return pageInfoRejected.value;
  134. default:
  135. return pageInfoPending.value;
  136. }
  137. });
  138. const formInline = reactive({
  139. agreement: '',//协议信息
  140. productId: "",//归属
  141. rulesName: '',//保险公司id
  142. costRules: '',//协议类型
  143. agreementStatus: "",//有效状态
  144. auditStatus: "0",//审核状态
  145. validState: "",
  146. effectiveTime: [],
  147. failureTime: [],
  148. auditTimeBegin: "",//审核时间开始
  149. auditTimeEnd: "",//审核时间结束
  150. companyId: '',//保险公司id
  151. })
  152. const companylist = computed(() => {
  153. let list = [] as any;
  154. switch (activeName.value) {
  155. case 'pendingReview':
  156. list = tableData1.value;
  157. break;
  158. case 'pass':
  159. list = tableData2.value;
  160. break;
  161. case 'reviewRejected':
  162. list = tableData3.value;
  163. break;
  164. default:
  165. break;
  166. }
  167. return list;
  168. })
  169. //表格字段数据(待审核时隐藏"审核人"筛选项)
  170. const fields = ref([
  171. {
  172. label: "所属协议", model: "agreement", type: "select", placeholder: "输入代码,名称,简称查找", options: agreementListALL,
  173. props: {
  174. label: 'agreementTitle',
  175. value: 'agreementTitle'
  176. }, filterable: true
  177. },
  178. {
  179. label: "险种", model: "productId", type: "select", options: insurance_type,
  180. },
  181. {
  182. label: "保险公司", model: "companyId", type: "cascader", placeholder: "选择保险公司", options: company_list, props: companyIdprops, placement: 'left', onChange: (value: any) => {
  183. formInline.companyId = value[value.length - 1];
  184. }
  185. },
  186. {
  187. label: "承保规则", model: "rulesName", type: "input", placeholder: "输入业务规则查找",
  188. },
  189. {
  190. label: "费用规则", model: "costRules", type: "inputTag", placeholder: "输入费用规则关键字查找",
  191. },
  192. {
  193. label: "费用状态", model: "agreementStatus", type: "select", placeholder: "选择状态", options: is_enable,
  194. },
  195. {
  196. label: "有效状态", model: "validState", type: "select", placeholder: "请选择状态", options: valid_status,
  197. },
  198. {
  199. label: "生效时间", model: "effectiveTime", type: "date", dateType: "datetimerange", startplaceholder: "开始时间", endplaceholder: "结束时间",
  200. format: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss", timeFormat: "HH:mm:ss",
  201. onChange: (value: any) => {
  202. console.log(value)
  203. formInline.effectiveTime = value;
  204. }
  205. },
  206. {
  207. label: "失效时间", model: "failureTime", type: "date", dateType: "datetimerange", startplaceholder: "开始时间", endplaceholder: "结束时间",
  208. format: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss", timeFormat: "HH:mm:ss",
  209. onChange: (value: any) => {
  210. formInline.failureTime = value;
  211. }
  212. },
  213. {
  214. label: "审核人", model: "auditPerson", type: "input", placeholder: "输入审核人查找",
  215. },
  216. {
  217. label: "审核时间", model: "auditTime", type: "date", dateType: "datetimerange", startplaceholder: "开始时间", endplaceholder: "结束时间",
  218. format: "YYYY-MM-DD HH:mm:ss", valueFormat: "YYYY-MM-DD HH:mm:ss", timeFormat: "HH:mm:ss",
  219. onChange: (value: any) => {
  220. formInline.auditTimeBegin = value[0];
  221. formInline.auditTimeEnd = value[1];
  222. }
  223. },
  224. ]);
  225. // 待审核选项卡下隐藏的筛选项(fields 保持 ref, 这里只做过滤, 避免破坏 ref 的自动解包)
  226. const visibleFields = computed(() => {
  227. if (activeName.value === 'pendingReview') {
  228. // 需要隐藏更多字段时, 把对应的 model 加到下面数组里即可
  229. const hiddenModels = ['auditPerson', 'auditTime'];
  230. return fields.value.filter((field: any) => !hiddenModels.includes(field.model));
  231. }
  232. return fields.value;
  233. })
  234. // 保险公司
  235. const initCompany = () => {
  236. api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
  237. if (res.code == '200') {
  238. company_list.value = res.data;
  239. } else {
  240. ElMessage({
  241. type: 'error',
  242. message: res.msg,
  243. plain: true,
  244. })
  245. }
  246. });
  247. }
  248. //费用数据查询
  249. function findpage(type: string) {
  250. formInline.auditStatus = type;
  251. // 根据类型使用对应的分页数据
  252. let currentPageInfo = type === '0' ? pageInfoPending.value : type === '1' ? pageInfoPass.value : pageInfoRejected.value;
  253. api.agreementApi.queryByFeePage({ pages: currentPageInfo.pageNum, size: currentPageInfo.pageSize, ...formInline }).then((res: any) => {
  254. if (res.code == '200') {
  255. currentPageInfo.pageNum = res.data.current;
  256. currentPageInfo.pageSize = res.data.size;
  257. currentPageInfo.total = res.data.total;
  258. if (type == '0') {
  259. tableData1.value = res.data.records;
  260. pendingReviewlength.value = res.data.total;
  261. } else if (type == '1') {
  262. tableData2.value = res.data.records;
  263. passlength.value = res.data.total;
  264. } else {
  265. tableData3.value = res.data.records;
  266. reviewRejectedlength.value = res.data.total;
  267. }
  268. } else {
  269. }
  270. });
  271. }
  272. //协议列表查询
  273. function agreement() {
  274. api.agreementApi.agreementList({ pages: pageInfo.value.pageNum, size: pageInfo.value.pageSize, searchValue: agreementQueryName.value }).then((res: any) => {
  275. if (res.code == '200') {
  276. agreementList.value = res.data.records;
  277. } else {
  278. }
  279. });
  280. }
  281. const getAgreement = () => {
  282. api.agreementApi.agreementList({ pages: 1, size: 1000 }).then((res: any) => {
  283. if (res.code == '200') {
  284. agreementListALL.value = res.data.records;
  285. } else {
  286. }
  287. });
  288. }
  289. const columns = [
  290. {
  291. prop: "agreementAbbreviation", label: "协议信息", width: '300',
  292. formatter: (row: any) => {
  293. return `${row.agreementCode}\n${row.agreementAbbreviation}`
  294. }
  295. },
  296. { prop: "effectiveTime", label: "生效时间", width: '200' },
  297. { prop: "failureTime", label: "失效时间", width: '200' },
  298. {
  299. prop: "ruleDescription", label: "承保规则", component: 'customSlot', width: '500'
  300. },
  301. { prop: "productName", label: "险种", width: '120', },
  302. {
  303. prop: "costRules", label: "费用规则", component: 'customSlot', width: '500',
  304. },
  305. {
  306. prop: "ruleConditions", label: "交强费用", width: '300', formatter: (row: any) => {
  307. let info = row.ruleConditions.find((val: any) => val.costType == '交强险');
  308. if (info) {
  309. return `入口:${info.inlet?.toFixed(2)}% 出口:${info.export?.toFixed(2)}%\n加投:${info.addThrow?.toFixed(2)}% 手续费:${info.commission?.toFixed(2)}%`
  310. } else {
  311. return '-';
  312. }
  313. }
  314. },
  315. {
  316. prop: "ruleConditions", label: "商业费用", width: '300', formatter: (row: any) => {
  317. let info = row.ruleConditions.find((val: any) => val.costType == '商业险');
  318. if (info) {
  319. return `入口:${info.inlet?.toFixed(2)}% 出口:${info.export?.toFixed(2)}%\n加投:${info.addThrow?.toFixed(2)}% 手续费:${info.commission?.toFixed(2)}%`
  320. } else {
  321. return '-';
  322. }
  323. }
  324. },
  325. {
  326. prop: "ruleConditions", label: "驾意险费用", width: '300', formatter: (row: any) => {
  327. let info = row.ruleConditions.find((val: any) => val.costType == '驾意险');
  328. if (info) {
  329. return `入口:${info.inlet?.toFixed(2)}% 出口:${info.export?.toFixed(2)}%\n加投:${info.addThrow?.toFixed(2)}% 手续费:${info.commission?.toFixed(2)}%`
  330. } else {
  331. return '-';
  332. }
  333. }
  334. },
  335. {
  336. prop: "isEnabled", label: "费用状态", width: '100', component: "Tag",
  337. formatter: (row: any) => {
  338. let name = getDict('is_enable').find(val => val.value == row.isEnabled).label
  339. if (name) {
  340. return { type: 'primary', text: name };
  341. }
  342. }
  343. },
  344. {
  345. prop: "approved", label: "审核状态", width: '120', component: "Tag",
  346. formatter: (row: any) => {
  347. let name = getDict('audit_status').find(val => val.value == row.approved).label
  348. if (name) {
  349. return { type: 'warning', text: name };
  350. }
  351. }
  352. },
  353. ];
  354. //分页事件
  355. function getList(item: PageInfo) {
  356. // 根据当前选项卡更新对应的分页数据
  357. if (activeName.value == 'pendingReview') {
  358. pageInfoPending.value.pageNum = item.pageNum;
  359. pageInfoPending.value.pageSize = item.pageSize;
  360. findpage("0");
  361. } else if (activeName.value == 'pass') {
  362. pageInfoPass.value.pageNum = item.pageNum;
  363. pageInfoPass.value.pageSize = item.pageSize;
  364. findpage("1");
  365. } else {
  366. pageInfoRejected.value.pageNum = item.pageNum;
  367. pageInfoRejected.value.pageSize = item.pageSize;
  368. findpage("2");
  369. }
  370. };
  371. // 审核
  372. const agreemenUpdate = async (item: any) => {
  373. ruleFeeHeaderTitle.value = item.productName;
  374. AgreementInfo.value = { agreementCode: item.agreementCode, agreementTitle: item.agreementAbbreviation };
  375. ruleInfo.value = { ruleDescription: item.ruleDescription };
  376. await regionLicenseRegion('0');//车牌地区
  377. await regionLicenseNumber('14');//车牌号
  378. await api.agreementApi.AgreementFeeById(item.costId).then((res: any) => {
  379. if (res.code == '200') {
  380. res.data.ruleConditions = processArray(res.data.ruleConditions);
  381. costitemEditInfo.value = res.data;
  382. ruleFeeEditVisible.value = true;
  383. } else {
  384. }
  385. });
  386. }
  387. //详情
  388. const ruleFeeEditSave = (data: object) => {
  389. console.log()
  390. api.agreementApi.AgreementFeeupdate(data).then((res: any) => {
  391. if (res.code == '200') {
  392. ElMessage({
  393. type: 'success',
  394. message: res.msg,
  395. plain: true,
  396. })
  397. ruleFeeEditVisible.value = false;
  398. agreementQuery();
  399. } else {
  400. }
  401. });
  402. }
  403. //添加车牌和车牌地区
  404. const processArray = (array: any[]) => {
  405. return array.map((val) => {
  406. switch (val.attrType) {
  407. case 'inputNumber':
  408. case 'datetime':
  409. if (!val.operator) {
  410. val.operator = '1'; // 设置默认值
  411. }
  412. break;
  413. default:
  414. break;
  415. }
  416. if (val.attrCode == 'LicenseNo') {
  417. val.dictLabal = licensePlateNumber.value;
  418. }
  419. if (val.attrCode == 'LicenseArea') {
  420. val.dictLabal = licensePlateRegion.value;
  421. }
  422. return val;
  423. });
  424. };
  425. const licensePlateRegion = ref();//车牌地区
  426. const licensePlateNumber = ref();//车牌号
  427. const regionLicenseRegion = (value: string) => {
  428. api.agreementApi.getAreaLicense(value).then((res: any) => {
  429. if (res.code == '200') {
  430. let data: any = [];
  431. res.data.map((val: any) => {
  432. data.push({
  433. code: val.areaNumber,
  434. name: val.license,
  435. })
  436. return val;
  437. })
  438. licensePlateRegion.value = data;
  439. } else {
  440. }
  441. });
  442. }
  443. const regionLicenseNumber = (value: string) => {
  444. api.agreementApi.getAreaLicense(value).then((res: any) => {
  445. if (res.code == '200') {
  446. let data: any = [];
  447. res.data.map((val: any) => {
  448. data.push({
  449. code: val.areaNumber,
  450. name: val.license,
  451. })
  452. return val;
  453. })
  454. licensePlateNumber.value = data;
  455. } else {
  456. }
  457. });
  458. }
  459. //多选事件
  460. const selectionChange = (val: any) => {
  461. console.log(val)
  462. sysUpAndDownList.value = val;
  463. }
  464. //批量审核
  465. const batchaudit = () => {
  466. ElMessageBox.confirm(
  467. '确定审核通过该费用吗?',
  468. '审核通过',
  469. {
  470. confirmButtonText: '确定',
  471. type: 'info',
  472. center: true,
  473. confirmButtonClass: 'el-button--primary',
  474. }
  475. )
  476. .then(() => {
  477. auditSuccess(sysUpAndDownList.value)
  478. })
  479. }
  480. //批量驳回
  481. const batchrejected = () => {
  482. ElMessageBox.prompt('', '审核不通过', {
  483. confirmButtonText: '确定',
  484. type: 'warning',
  485. center: true,
  486. inputType: "textarea",
  487. inputPlaceholder: "请输入不通过原因",
  488. })
  489. .then(({ value }) => {
  490. auditFailed(sysUpAndDownList.value, value)
  491. })
  492. }
  493. //单一审核回调
  494. const auditOperation = (automatic: any, id: any) => {
  495. auditSuccess([id], automatic)
  496. }
  497. //单一驳回回调
  498. const rejectOperation = (automatic: any, id: any, value: any) => {
  499. auditFailed([id], value, automatic)
  500. }
  501. const agreementQuery = () => {
  502. if (activeName.value == 'pendingReview') {
  503. findpage("0");
  504. } else if (activeName.value == 'pass') {
  505. findpage("1");
  506. } else {
  507. findpage("2");
  508. }
  509. }
  510. //审核不通过
  511. const auditFailed = async (list: string[], value: string, automatic?: boolean) => {
  512. await api.agreementApi.auditFailed({ ids: list, reason: value, automatic: automatic }).then((res: any) => {
  513. if (res.code == '200') {
  514. findpage("0");
  515. findpage("1");
  516. findpage("2");
  517. ElMessage({
  518. type: 'success',
  519. message: res.msg,
  520. plain: true,
  521. })
  522. ruleFeeEditVisible.value = false;
  523. if (res.data) {
  524. let info = tableData1.value.find((val: any) => val.costId == res.data);
  525. agreemenUpdate(info)
  526. }
  527. }
  528. });
  529. }
  530. // 审核通过
  531. const auditSuccess = async (list: string[], automatic?: boolean) => {
  532. await api.agreementApi.auditSuccess({ ids: list, automatic: automatic }).then((res: any) => {
  533. if (res.code == '200') {
  534. findpage("0");
  535. findpage("1");
  536. findpage("2");
  537. ElMessage({
  538. type: 'success',
  539. message: res.msg,
  540. plain: true,
  541. })
  542. ruleFeeEditVisible.value = false;
  543. if (res.data) {
  544. let info = tableData1.value.find((val: any) => val.costId == res.data);
  545. agreemenUpdate(info)
  546. }
  547. }
  548. });
  549. }
  550. const resetForm = () => {
  551. formInline.agreement = '';//协议信息
  552. formInline.productId = "";//归属
  553. formInline.rulesName = '';//保险公司id
  554. formInline.costRules = '';//协议类型
  555. formInline.agreementStatus = "";//有效状态
  556. formInline.auditStatus = "";//协议状态
  557. formInline.validState = "";
  558. formInline.effectiveTime = [];
  559. formInline.failureTime = [];
  560. if (activeName.value == 'pendingReview') {
  561. findpage("0");
  562. } else if (activeName.value == 'pass') {
  563. findpage("1");
  564. } else {
  565. findpage("2");
  566. }
  567. }
  568. const getDeptTree = () => {
  569. api.institutionApi.institutionList({}).then((res: any) => {
  570. if (res.code == '200') {
  571. deptOptions.value = res.data;
  572. } else {
  573. }
  574. });
  575. }
  576. //选择协议弹窗
  577. const ruleFeeEditVisible = ref(false);//编辑弹窗
  578. const ruleFeeHeaderTitle = ref();//编辑弹窗title
  579. const costitemEditInfo = ref();//编辑对象
  580. const AgreementInfo = ref();//协议对象
  581. const ruleInfo = ref();//规则对象
  582. const handleClick = (pane: any) => {
  583. if (pane.props.name == 'pendingReview') {
  584. formInline.auditStatus = '0';
  585. findpage("0");
  586. } else if (pane.props.name == 'pass') {
  587. formInline.auditStatus = '1';
  588. findpage("1");
  589. } else {
  590. formInline.auditStatus = '2';
  591. findpage("2");
  592. }
  593. }
  594. </script>
  595. <style lang="scss" scoped>
  596. .demo-form-inline .el-input {
  597. --el-input-width: 220px;
  598. }
  599. .demo-form-inline .el-select {
  600. --el-select-width: 220px;
  601. }
  602. :deep(.el-dropdown-link) {
  603. display: flex;
  604. align-items: center;
  605. margin-left: 15px;
  606. color: var(--el-color-primary);
  607. cursor: pointer;
  608. }
  609. .el-inputs {
  610. width: 100% !important;
  611. }
  612. .Selection {
  613. border: 1px solid #dcdfe6;
  614. border-radius: 4px;
  615. .agreement {
  616. width: 40%;
  617. padding: 15px;
  618. border-right: 1px solid #dcdfe6;
  619. .agreementItem {
  620. padding: 10px;
  621. border-radius: 5px;
  622. &:hover {
  623. background: #f2f2f2;
  624. }
  625. }
  626. }
  627. .active {
  628. color: #1890ff;
  629. background: #f2f2f2;
  630. }
  631. .rule {
  632. width: 60%;
  633. padding: 15px;
  634. .white-space {
  635. display: inline-block;
  636. margin-bottom: 10px;
  637. white-space: normal;
  638. }
  639. }
  640. }
  641. </style>