dialog.edit.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792
  1. <template>
  2. <div class="rule-type">
  3. <DialogCom
  4. @colse="onHide"
  5. :title="id ? '编辑履职计划' : '新增履职计划'"
  6. :visible.sync="isShow"
  7. width="1500px"
  8. >
  9. <div class="page-body">
  10. <el-form
  11. :model="formData"
  12. :rules="formDataRules"
  13. size="small"
  14. ref="form"
  15. label-position="right"
  16. label-width="130px"
  17. label-prefix=":"
  18. >
  19. <el-row>
  20. <el-col :span="6">
  21. <el-form-item prop="planName" label="计划名称:">
  22. <el-input :disabled="isChildren()"
  23. v-model.trim="formData.planName"
  24. :maxlength="50"
  25. name="planName"
  26. placeholder="请输入计划名称"
  27. clearable
  28. />
  29. </el-form-item>
  30. </el-col>
  31. <el-col :span="6">
  32. <el-form-item prop="planType" label="计划类型:">
  33. <el-select
  34. :disabled="isChildren()"
  35. @change="changeData"
  36. label="计划类型"
  37. v-model="formData.planType"
  38. placeholder="请选择计划类型"
  39. clearable
  40. >
  41. <el-option
  42. v-for="dict in dict.type.resumption_plan_type"
  43. :key="dict.value"
  44. :label="dict.label"
  45. :value="dict.value"
  46. >
  47. </el-option>
  48. </el-select>
  49. </el-form-item>
  50. </el-col>
  51. <el-col :span="6">
  52. <el-form-item prop="planCycle" label="履职周期:">
  53. <el-select
  54. @change="changeBuildTime"
  55. :disabled="isChildren()"
  56. prop="planCycle"
  57. label="履职周期"
  58. v-model="formData.planCycle"
  59. placeholder="请选择履职周期"
  60. clearable
  61. >
  62. <el-option
  63. v-for="item in dict.type.resumption_plan_cycle"
  64. :key="item.value"
  65. :label="item.label"
  66. :value="item.value"
  67. >
  68. </el-option>
  69. </el-select>
  70. <el-form-item>
  71. <div class="form-item-comment">
  72. 下次任务生成时间{{ buildTime }}
  73. </div>
  74. </el-form-item>
  75. </el-form-item>
  76. </el-col>
  77. <!-- <el-col :span="6">
  78. <el-form-item prop="planStatus" label="计划状态:"> -->
  79. <!-- <el-select
  80. :disabled="getDistributePlanStatus()"
  81. prop="planStatus"
  82. label="计划状态"
  83. v-model="formData.planStatus"
  84. placeholder="请选择计划状态"
  85. clearable
  86. >
  87. <el-option
  88. v-for="item in dict.type.resumption_plan_status"
  89. :key="item.value"
  90. :label="item.label"
  91. :value="item.value"
  92. >
  93. </el-option>
  94. </el-select> -->
  95. <!-- <el-switch
  96. v-model="formData.planStatus"
  97. active-value="1"
  98. inactive-value="0"
  99. ></el-switch> -->
  100. <!-- </el-form-item> -->
  101. <!-- </el-col> -->
  102. <el-col :span="6" v-if="id ? false : true">
  103. <el-form-item prop="tempBuildTaskNow" label="立即生效:">
  104. <div class="checkbox-wrapper">
  105. <el-checkbox
  106. v-model="tempBuildTaskNow"
  107. size="medium"
  108. @change="handleCheckboxChange"
  109. >默认从下个周期生成任务,<br />勾选后从当前周期立即生成任务</el-checkbox
  110. >
  111. </div>
  112. </el-form-item>
  113. </el-col>
  114. </el-row>
  115. <el-row>
  116. <el-col :span="6">
  117. <el-form-item prop="execOrgType" label="履职机构类型:">
  118. <el-select
  119. :disabled="isChildren()"
  120. label="履职机构类型"
  121. v-model="formData.execOrgType"
  122. placeholder="请选择履职机构类型"
  123. @change="onOrgTypeChanged"
  124. clearable
  125. >
  126. <el-option
  127. v-for="item in dict.type.sys_org_type"
  128. :key="item.value"
  129. :label="item.label"
  130. :value="item.value"
  131. >
  132. </el-option>
  133. </el-select>
  134. </el-form-item>
  135. </el-col>
  136. <el-col :span="6">
  137. <el-form-item prop="roleList" label="履职角色:">
  138. <el-select
  139. :disabled="isChildren()"
  140. label="履职角色"
  141. v-model="formData.roleList"
  142. placeholder="请选择履职角色"
  143. multiple
  144. filterable
  145. @change="handleRolesChange"
  146. >
  147. <el-option
  148. v-for="item in resumptionRoles"
  149. :key="item.id"
  150. :label="item.name"
  151. :value="item.id"
  152. >
  153. </el-option>
  154. </el-select>
  155. </el-form-item>
  156. </el-col>
  157. <el-col :span="6">
  158. <el-form-item prop="planExec" label="履职时间:">
  159. <el-select
  160. :disabled="isChildren()"
  161. label="履职时间"
  162. v-model="formData.planExec"
  163. placeholder="请选择履职时间"
  164. clearable
  165. >
  166. <el-option
  167. v-for="item in dict.type.resumption_plan_exec"
  168. :key="item.value"
  169. :label="item.label"
  170. :value="item.value"
  171. >
  172. </el-option>
  173. </el-select>
  174. </el-form-item>
  175. </el-col>
  176. <el-col :span="6">
  177. <el-form-item prop="count" label="履职次数:" v-if="false">
  178. <el-input-number
  179. :disabled="getPlanExec()"
  180. style="margin-left: 10px"
  181. v-model="formData.count"
  182. controls-position="right"
  183. @change="handleChange"
  184. :min="1"
  185. :max="9"
  186. ></el-input-number>
  187. </el-form-item>
  188. </el-col>
  189. </el-row>
  190. <el-form-item prop="note" label="备注">
  191. <el-input
  192. :disabled="isChildren()"
  193. v-model="formData.note"
  194. :maxlength="255"
  195. clearable
  196. placeholder="请输入备注"
  197. />
  198. </el-form-item>
  199. </el-form>
  200. <el-button @click="openSelect">新增履职内容</el-button>
  201. <el-button @click="deleteSelected">批量删除</el-button>
  202. <el-table
  203. :data="tableData"
  204. style="width: 100%"
  205. height="400px"
  206. @selection-change="handleSelectionChange"
  207. >
  208. <el-table-column type="selection"></el-table-column>
  209. <el-table-column label="是否扫描">
  210. <template v-slot="{ row }">
  211. <el-switch
  212. :disabled="!getshenglianshe(row)"
  213. v-model="row.pointScan"
  214. active-text="是"
  215. inactive-text="否"
  216. >
  217. </el-switch>
  218. </template>
  219. </el-table-column>
  220. <el-table-column label="必完成项">
  221. <template v-slot="{ row }">
  222. <el-switch
  223. :disabled="!getshenglianshe(row)"
  224. v-model="row.required"
  225. active-text="是"
  226. inactive-text="否"
  227. >
  228. </el-switch>
  229. </template>
  230. </el-table-column>
  231. <el-table-column prop="ruleName" label="履职内容库">
  232. </el-table-column>
  233. <el-table-column prop="itemName" label="履职项"> </el-table-column>
  234. <el-table-column prop="pointName" label="履职内容" width="300px">
  235. <template slot-scope="scope">
  236. <pre>{{ scope.row.pointName }}</pre>
  237. </template>
  238. </el-table-column>
  239. <el-table-column v-if="false" prop="ofOrgId" label="所属机构id">
  240. </el-table-column>
  241. <el-table-column prop="areaName" label="履职区域"> </el-table-column>
  242. <el-table-column prop="checkName" label="履职点位"> </el-table-column>
  243. <el-table-column label="操作">
  244. <template v-slot="{ row }">
  245. <el-button
  246. v-if="getshenglianshe(row)"
  247. type="text"
  248. @click="removeRow(row)"
  249. >删除</el-button
  250. >
  251. </template>
  252. </el-table-column>
  253. </el-table>
  254. </div>
  255. <div slot="footer" class="dialog-footer">
  256. <el-button @click="onHide">取消</el-button>
  257. <el-button type="primary" @click="onSubmit">确定</el-button>
  258. </div>
  259. </DialogCom>
  260. <DialogSelect
  261. ref="DialogSelect"
  262. :orgType="formData.execOrgType"
  263. @select="onSelect"
  264. ></DialogSelect>
  265. </div>
  266. </template>
  267. <script>
  268. import dayjs from "dayjs";
  269. import { mapGetters } from "vuex";
  270. import * as api from "@/api/resumption/plan";
  271. import { statusOptions } from "./../../commonOption";
  272. import { findAllRole } from "@/api/system/role";
  273. import DialogSelect from "@/views/resumption/ruleManager/dialog.select.point.vue";
  274. export default {
  275. dicts: [
  276. "resumption_plan_type",
  277. "resumption_plan_cycle",
  278. "resumption_org_type",
  279. "resumption_plan_status",
  280. "sys_org_type",
  281. "resumption_plan_exec",
  282. ],
  283. data() {
  284. // const params = this.$route.params;
  285. // let o1=options;
  286. // let o=statusOptions;
  287. // debugger
  288. return {
  289. buildTime: null,
  290. isSubmitting: false,
  291. defaultSelect: [],
  292. selectedValues: [],
  293. resumptionRoles: [],
  294. planName: null,
  295. tempBuildTaskNow: false,
  296. planType: null,
  297. planCycle: null,
  298. planStatus: null,
  299. execOrgType: null,
  300. roleNames: null,
  301. planExec: null,
  302. count: 0,
  303. description: null,
  304. propItem: "",
  305. propList: [
  306. {
  307. label: "是否扫描",
  308. prop: "pointScan",
  309. },
  310. {
  311. label: "itemId",
  312. prop: "itemId",
  313. },
  314. {
  315. label: "必完成项",
  316. prop: "required",
  317. },
  318. {
  319. label: "履职内容库",
  320. prop: "pointName",
  321. },
  322. {
  323. label: "履职项",
  324. prop: "itemName",
  325. },
  326. {
  327. label: "履职内容",
  328. prop: "itemDesc",
  329. },
  330. {
  331. label: "履职区域",
  332. prop: "areaName",
  333. },
  334. {
  335. label: "操作",
  336. prop: "lc-component",
  337. component: "el-button",
  338. },
  339. ],
  340. row: "",
  341. tableData: [],
  342. id: null,
  343. selectedRows: [],
  344. isShow: false,
  345. formData: {},
  346. formDataRules: {
  347. planName: [{ required: true, message: "请输入计划名称" }],
  348. planType: [{ required: true, message: "请选择计划类型" }],
  349. planCycle: [{ required: true, message: "请选择履职周期" }],
  350. planStatus: [{ required: true, message: "请选择计划状态" }],
  351. execOrgType: [{ required: true, message: "请选择履职机构类型" }],
  352. roleList: [
  353. { required: true, message: "请选择履职角色", trigger: "change" },
  354. ],
  355. planExec: [{ required: true, message: "请选择履职时间" }],
  356. count: [{ required: true, message: "请选择履职次数" }],
  357. },
  358. statusOptions: statusOptions,
  359. };
  360. },
  361. props: {
  362. orgTypeOptions: {
  363. type: Array,
  364. },
  365. ruleTypeOptions: {
  366. type: Array,
  367. },
  368. },
  369. watch: {},
  370. computed: {
  371. ...mapGetters(["orgId", "orgName"]),
  372. },
  373. methods: {
  374. // 监听行选中事件,将选中的行数据存入 selectedRows 数组中
  375. handleSelectionChange(selection) {
  376. // console.log(selection, "selection");
  377. this.selectedRows = selection;
  378. },
  379. deleteSelected() {
  380. // 在这里执行批量删除操作,使用 this.selectedRows 数组中的数据
  381. console.log("删除选中的数据:", this.selectedRows);
  382. // 从数据数组中移除选中的行数据
  383. this.tableData = this.tableData.filter(
  384. (row) => !this.selectedRows.includes(row)
  385. );
  386. // 清空选中的行数据
  387. this.selectedRows = [];
  388. },
  389. changeBuildTime() {
  390. // console.log(this.formData.planCycle, "this.formData.planCycle");
  391. const dateObj = new Date(); // 获取当前时间对象
  392. switch (this.formData.planCycle) {
  393. case "2":
  394. dateObj.setDate(dateObj.getDate() + 1);
  395. const year = dateObj.getFullYear(); // 获取年份
  396. const month = String(dateObj.getMonth() + 1).padStart(2, "0"); // 获取月份,并补齐两位数
  397. const day = String(dateObj.getDate()).padStart(2, "0"); // 获取日期,并补齐两位数
  398. this.buildTime = `${year}-${month}-${day}`; // 将年月日拼接并赋值给变量
  399. break;
  400. case "3":
  401. // 获取下一周的第一天日期
  402. const nextWeekFirstDay = dayjs().add(1, "week").startOf("week");
  403. // 格式化日期为你想要的格式
  404. const formattedNextWeekFirstDay =
  405. nextWeekFirstDay.format("YYYY-MM-DD");
  406. this.buildTime = formattedNextWeekFirstDay;
  407. break;
  408. case "4":
  409. // 获取下个月的第一天日期
  410. const nextMonthFirstDay = dayjs().add(1, "month").startOf("month");
  411. // 格式化日期为你想要的格式
  412. const formattedNextMonthFirstDay =
  413. nextMonthFirstDay.format("YYYY-MM-DD");
  414. this.buildTime = formattedNextMonthFirstDay;
  415. break;
  416. case "5":
  417. const year2 = dateObj.getFullYear(); // 获取年份
  418. const month2 = String(dateObj.getMonth() + 1).padStart(2, "0"); // 获取月份,并补齐两位数
  419. const day2 = "01"; // 获取日期,并补齐两位数
  420. var month3 = month2;
  421. var years = year2;
  422. month3++;
  423. for (var i = 0; i < 12; i++) {
  424. if (month3 == 1 || month3 == 4 || month3 == 7 || month3 == 10) {
  425. break;
  426. }
  427. if (month3 == 13) {
  428. month3 = 1;
  429. years++;
  430. break;
  431. }
  432. month3++;
  433. }
  434. this.buildTime = `${years}-${month3}-${day2}`;
  435. break;
  436. }
  437. },
  438. //编辑内容判断
  439. isChildren() {
  440. // console.log(this.formData.distributePlanStatus,"distributePlanStatus")
  441. //计划所属机构id等于当前机构id并且不存在已完成或者已逾期或者
  442. //计划所属机构类型不等于行社并且不存在已完成或者已逾期或者
  443. //新增
  444. if (
  445. (this.formData.planCreateOrgId == this.orgId &&
  446. this.formData.hasEdit != 1) ||
  447. (this.formData.planOfOrgType != 3 && this.formData.hasEdit != 1) ||
  448. this.id == null
  449. ) {
  450. return false;
  451. } else return true;
  452. },
  453. //省联社履职内容不能删除
  454. getshenglianshe(row) {
  455. if (row.ofOrgId == this.orgId) {
  456. return true;
  457. } else return false;
  458. },
  459. //选择计划类型修改联动框
  460. changeData() {
  461. //判断计划类型
  462. switch (this.formData.planType) {
  463. //如果是 营业前安全检查
  464. case "1":
  465. //周期
  466. this.formData.planCycle = "2";
  467. //机构类型
  468. this.formData.execOrgType = "4";
  469. this.getRolesByOrg();
  470. //角色
  471. this.formData.roleList = ["122"];
  472. //履职时间
  473. this.formData.planExec = "2";
  474. //履职次数
  475. this.formData.count = 1;
  476. //履职内容
  477. this.tableData = null;
  478. break;
  479. //如果是 营业期间安全管理
  480. case "2":
  481. //周期
  482. this.formData.planCycle = "2";
  483. //机构类型
  484. this.formData.execOrgType = "4";
  485. this.getRolesByOrg();
  486. //角色
  487. this.formData.roleList = ["122"];
  488. //履职时间
  489. this.formData.planExec = "3";
  490. //履职次数
  491. this.formData.count = 1;
  492. //履职内容
  493. this.tableData = null;
  494. break;
  495. //如果是 营业终了安全管理
  496. case "3":
  497. //周期
  498. this.formData.planCycle = "2";
  499. //机构类型
  500. this.formData.execOrgType = "4";
  501. this.getRolesByOrg();
  502. //角色
  503. this.formData.roleList = ["122"];
  504. //履职时间
  505. this.formData.planExec = "4";
  506. //履职次数
  507. this.formData.count = 1;
  508. //履职内容
  509. this.tableData = null;
  510. break;
  511. //如果是 “110”入侵报警系统测试
  512. case "4":
  513. //周期
  514. this.formData.planCycle = "4";
  515. //机构类型
  516. this.formData.execOrgType = "4";
  517. this.getRolesByOrg();
  518. //角色
  519. this.formData.roleList = ["122"];
  520. //履职时间
  521. this.formData.planExec = "1";
  522. //履职次数
  523. this.formData.count = 1;
  524. //履职内容
  525. this.tableData = null;
  526. break;
  527. //如果是 备用电源维护
  528. case "5":
  529. //周期
  530. this.formData.planCycle = "4";
  531. //机构类型
  532. this.formData.execOrgType = "4";
  533. this.getRolesByOrg();
  534. //角色
  535. this.formData.roleList = ["122"];
  536. //履职时间
  537. this.formData.planExec = "1";
  538. //履职次数
  539. this.formData.count = 1;
  540. //履职内容
  541. this.tableData = null;
  542. break;
  543. //如果是 离行式自助银行巡检
  544. case "6":
  545. //周期
  546. this.formData.planCycle = "2";
  547. //机构类型
  548. this.formData.execOrgType = "5";
  549. this.getRolesByOrg();
  550. //角色
  551. this.formData.roleList = ["129"];
  552. //履职时间
  553. this.formData.planExec = "1";
  554. //履职次数
  555. this.formData.count = 1;
  556. //履职内容
  557. this.tableData = null;
  558. break;
  559. //如果是 非营业时间安全管理
  560. case "7":
  561. //周期
  562. this.formData.planCycle = "2";
  563. //机构类型
  564. this.formData.execOrgType = "4";
  565. this.getRolesByOrg();
  566. //角色
  567. this.formData.roleList = ["143"];
  568. //履职时间
  569. this.formData.planExec = "5";
  570. //履职次数
  571. this.formData.count = 1;
  572. //履职内容
  573. this.tableData = null;
  574. break;
  575. }
  576. this.changeBuildTime();
  577. },
  578. //当时间为全天或者营业中才显示
  579. getPlanExec() {
  580. if (
  581. this.formData.planExec == null ||
  582. this.formData.planExec == 2 ||
  583. this.formData.planExec == 4
  584. ) {
  585. return true;
  586. } else return false;
  587. },
  588. getDistributePlanStatus() {
  589. // console.log(this.formData.distributePlanStatus, "distributePlanStatus");
  590. if (this.formData.distributePlanStatus == 1) {
  591. return true;
  592. } else return false;
  593. },
  594. reset() {
  595. return {
  596. planName: null,
  597. planType: null,
  598. planCycle: null,
  599. planStatus: null,
  600. execOrgType: null,
  601. roleNames: null,
  602. description: null,
  603. tableData: null,
  604. itemList: null,
  605. planExec: null,
  606. count: 0,
  607. note: null,
  608. planCreateOrgId: null,
  609. planCreateOrgName: null,
  610. roleList: [],
  611. distributePlanStatus: null,
  612. planCreateOrgType: null,
  613. buildTaskNow: 0,
  614. };
  615. },
  616. handleCheckboxChange() {
  617. this.formData.buildTaskNow = this.tempBuildTaskNow ? 1 : 0;
  618. },
  619. getRolesByOrg() {
  620. if (this.formData.execOrgType != null) {
  621. let params = {
  622. orgType: this.formData.execOrgType,
  623. };
  624. findAllRole(params).then((res) => {
  625. // console.info(res);
  626. this.resumptionRoles = res.data;
  627. });
  628. }
  629. },
  630. handleChange(value) {
  631. // console.log(value);
  632. this.count = value;
  633. },
  634. async refresh(id, other) {
  635. this.formData = id ? (await api.get(id)).data : this.reset(other);
  636. if (this.formData.execOrgType) {
  637. this.getRolesByOrg();
  638. }
  639. },
  640. onSelect(selectList) {
  641. // console.log(selectList);
  642. if (this.tableData == null) {
  643. this.tableData = [];
  644. }
  645. let selectedIds = selectList.map((i) => i.id);
  646. this.tableData = this.tableData.filter((d) => selectedIds.includes(d.id));
  647. for (let i = 0; i < selectList.length; i++) {
  648. let item = selectList[i];
  649. let exist = this.tableData.find((d) => d.id == item.id);
  650. console.log(this.orgId, "this.orgId");
  651. if (!exist) {
  652. let tem = {
  653. ofOrgId: this.orgId,
  654. pointScan: !item.pointScan,
  655. required: !item.required,
  656. ruleName: item.ruleName,
  657. itemName: item.itemName,
  658. pointName: item.pointName,
  659. areaName: item.areaName,
  660. checkName: item.checkName,
  661. itemId: item.itemId,
  662. id: item.id,
  663. };
  664. this.tableData.push(tem);
  665. // console.log(tem,"tem")
  666. }
  667. }
  668. },
  669. onOrgTypeChanged() {
  670. this.formData.roleList = [];
  671. this.tableData = [];
  672. this.getRolesByOrg();
  673. },
  674. async show(id, other = {}) {
  675. this.tempBuildTaskNow = false;
  676. this.buildTime = null;
  677. this.id = id;
  678. this.tableData = null;
  679. this.formData.itemList = null;
  680. await this.refresh(id, other);
  681. // console.log(id);
  682. if (id !== undefined) {
  683. await api.get(id).then((res) => {
  684. // console.log(res, "res");
  685. this.tableData = res.data.itemList;
  686. });
  687. }
  688. this.changeBuildTime();
  689. this.isShow = true;
  690. },
  691. removeRow(row) {
  692. this.$modal
  693. .confirm("是否确认删除?")
  694. .then(function () {})
  695. .then(() => {
  696. this.tableData = this.tableData.filter((item) => item !== row);
  697. this.$modal.msgSuccess("删除成功");
  698. });
  699. // this.tableData.splice(index, 1);
  700. },
  701. // 事件
  702. onHide() {
  703. this.isShow = false;
  704. this.formData = this.reset();
  705. this.$refs.form.resetFields();
  706. },
  707. getIteamF() {
  708. // if(this.id==null){
  709. // this.defaultSelect=[];
  710. // return;
  711. // }
  712. // api.getPointIds(this.id).then((res) => {
  713. // this.defaultSelect = res.data;
  714. // });
  715. if (!this.tableData) {
  716. return [];
  717. } else {
  718. // console.log();
  719. return this.tableData.map((d) => d.id);
  720. }
  721. },
  722. openSelect() {
  723. this.$refs.DialogSelect.show(this.getIteamF());
  724. },
  725. onSubmit() {
  726. this.$refs.form.validate(async (isValidate) => {
  727. this.formData.planStatus = 0;
  728. this.isSubmitting = true;
  729. // this.formData.note = this.formData.description;
  730. this.formData.planCreateOrgId = this.orgId;
  731. this.formData.planCreateOrgName = this.orgName;
  732. if (!isValidate) return;
  733. this.formData.itemList = this.tableData == null ? [] : this.tableData;
  734. //新需求,自动填充角色
  735. if (
  736. this.formData.roleList != null &&
  737. this.formData.roleList.length > 0 &&
  738. this.selectedValues.length == 0
  739. ) {
  740. this.formData.roleList.forEach((item) => {
  741. this.selectedValues.push(item);
  742. });
  743. }
  744. this.formData.roleList =
  745. this.selectedValues.length == 0 ? null : this.selectedValues;
  746. await api.update(this.formData);
  747. this.isSubmitting = false;
  748. this.$emit("success");
  749. this.onHide();
  750. });
  751. },
  752. handleRolesChange(val) {
  753. this.selectedValues = val.toString().split(",");
  754. },
  755. // 事件
  756. //apimark//
  757. },
  758. mounted() {},
  759. components: { DialogSelect },
  760. };
  761. </script>
  762. <style lang="scss" scoped>
  763. .brand_info {
  764. .el-form {
  765. width: 600px;
  766. padding-top: 40px;
  767. }
  768. }
  769. .form-item-comment {
  770. font-size: 12px;
  771. color: #999;
  772. height: 10px;
  773. }
  774. .checkbox-wrapper .el-checkbox {
  775. display: flex;
  776. align-items: center;
  777. }
  778. </style>