index.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. <template>
  2. <basic-container>
  3. <avue-crud :option="option"
  4. :table-loading="loading"
  5. :data="data"
  6. :page.sync="page"
  7. :permission="permissionList"
  8. id="out-table"
  9. :header-cell-class-name="headerClassName"
  10. :before-open="beforeOpen"
  11. v-model="form"
  12. ref="crud"
  13. @row-update="rowUpdate"
  14. @row-save="rowSave"
  15. @row-del="rowDel"
  16. @search-change="searchChange"
  17. @search-reset="searchReset"
  18. @current-change="currentChange"
  19. @size-change="sizeChange"
  20. @refresh-change="refreshChange"
  21. @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 288)"
  22. @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 288)"
  23. @on-load="onLoad">
  24. <template slot-scope="scope" slot="tsInfo">
  25. <span style="color: #1e9fff" @click="chakanfun(scope.row,scope.index)">{{scope.row.tsInfo}}</span>
  26. </template>
  27. <template slot-scope="scope" slot="isDateExceeded">
  28. <span :style="scope.row.isDateExceeded=='已超时'?'color: #de4a3b':'color: #65da78'">{{scope.row.isDateExceeded}}</span>
  29. </template>
  30. <template slot-scope="scope" slot="menuLeft">
  31. <el-button
  32. type="primary"
  33. @click.stop="rowAddfun(scope.row, scope.index)">添加任务
  34. </el-button>
  35. <div style="display: flex;align-items: center;margin-top: 10px">
  36. <div class="bottomStatistics" style="background: #ffff00" @click="searchChangefun()">全部({{page.total}})</div>
  37. <div class="bottomStatistics" style="background: #f8cbad" @click="searchChangefun({type:1})">待执行({{statistics.waitingQuantity}})</div>
  38. <div class="bottomStatistics" style="background: #00b050" @click="searchChangefun({type:2})">执行中({{statistics.carryTheQuantity}})</div>
  39. <div class="bottomStatistics" style="background: #ffe699" @click="searchChangefun({type:3})">已提交({{statistics.numberOfCommits}})</div>
  40. <div class="bottomStatistics" style="background: #a9d08e" @click="searchChangefun({type:4})">工单关闭({{statistics.theNumberOfClosures}})</div>
  41. </div>
  42. </template>
  43. <template slot-scope="scope" slot="menu">
  44. <el-button
  45. type="text"
  46. icon="el-icon-edit"
  47. size="small"
  48. v-if="responsibleUserObj.createUser == scope.row.responsibleUserId && scope.row.type == 1"
  49. @click.stop="Acceptancefun(scope.row)"
  50. >受理
  51. </el-button>
  52. <el-button
  53. type="text"
  54. icon="el-icon-edit"
  55. size="small"
  56. v-if="responsibleUserObj.createUser == scope.row.responsibleUserId && scope.row.type == 2"
  57. @click.stop="submitTofun(scope.row)"
  58. >提交
  59. </el-button>
  60. <el-button
  61. type="text"
  62. icon="el-icon-edit"
  63. size="small"
  64. v-if="responsibleUserObj.createUser == scope.row.createUser && scope.row.type == 3"
  65. @click.stop="determinefun(scope.row)"
  66. >确认
  67. </el-button>
  68. <el-button
  69. type="text"
  70. icon="el-icon-edit"
  71. size="small"
  72. v-if="responsibleUserObj.createUser == scope.row.createUser && scope.row.type == 3"
  73. @click.stop="returnfun(scope.row)"
  74. >退回
  75. </el-button>
  76. <el-button
  77. type="text"
  78. icon="el-icon-edit"
  79. size="small"
  80. v-if="responsibleUserObj.createUser == scope.row.createUser && scope.row.type == 3"
  81. @click.stop="evaluatefun(scope.row,scope.index)"
  82. >评价
  83. </el-button>
  84. <el-button
  85. :type="scope.type"
  86. :size="scope.size"
  87. icon="el-icon-delete"
  88. :disabled="scope.row.type == 4"
  89. @click.stop="editOpen(scope.row, scope.index)">编辑
  90. </el-button>
  91. <el-button
  92. :type="scope.type"
  93. :size="scope.size"
  94. icon="el-icon-delete"
  95. v-if="responsibleUserObj.createUser == scope.row.createUser"
  96. :disabled="scope.row.type == 4"
  97. @click.stop="rowDel(scope.row, scope.index)">删除
  98. </el-button>
  99. </template>
  100. </avue-crud>
  101. <div>
  102. <el-row :gutter="20">
  103. <el-col :span="4" v-for="item in taskCompletionData" :key="item.id">
  104. <el-card class="box-card">
  105. <div slot="header" class="clearfix">
  106. <span>{{item.userName}}</span>
  107. </div>
  108. <div class="card-flex">
  109. <div class="card-flexLeft" style="color: #ebc4a5">待执行:</div>
  110. <div class="card-flexRight">{{item.waitingQuantity}}</div>
  111. </div>
  112. <div class="card-flex">
  113. <div class="card-flexLeft" style="color: #52a54a">执行中:</div>
  114. <div class="card-flexRight">{{item.carryTheQuantity}}</div>
  115. </div>
  116. <div class="card-flex">
  117. <div class="card-flexLeft" style="color: #f8e292">已提交:</div>
  118. <div class="card-flexRight">{{item.numberOfCommits}}</div>
  119. </div>
  120. <div class="card-flex">
  121. <div class="card-flexLeft" style="color: #de4a3b">超期:</div>
  122. <div class="card-flexRight">{{item.theNumberOfTimeouts}}</div>
  123. </div>
  124. </el-card>
  125. </el-col>
  126. </el-row>
  127. </div>
  128. </basic-container>
  129. </template>
  130. <script>
  131. import {getList, getDetail, add, update, remove, taskCompletion} from "@/api/TaskKanban/task";
  132. import {mapGetters} from "vuex";
  133. import {getPostList} from "@/api/system/post";
  134. import Da from "element-ui/src/locale/lang/da";
  135. import {getUserApprovalList} from "@/api/approval/processConfig";
  136. import {dateFormat} from "@/util/date";
  137. export default {
  138. data() {
  139. return {
  140. form: {},
  141. query: {},
  142. loading: false,
  143. page: {
  144. pageSize: 10,
  145. currentPage: 1,
  146. total: 0
  147. },
  148. option:{},
  149. optionBack: {
  150. addTitle:'创建任务',
  151. editTitle:'编辑任务',
  152. viewTitle:'查看任务',
  153. addBtnText:'创建任务',
  154. // dialogDrag:true,
  155. height:'auto',
  156. calcHeight: 30,
  157. tip: false,
  158. searchShow: true,
  159. searchMenuSpan: 24,
  160. border: true,
  161. index: true,
  162. viewBtn: true,
  163. selection: false,
  164. dialogClickModal: false,
  165. column: [
  166. {
  167. label: "需求方",
  168. prop: "createUserName",
  169. display:false,
  170. },
  171. {
  172. label: "负责人",
  173. prop: "responsibleUserId",
  174. search: true,
  175. type:'select',
  176. filterable:true,
  177. dicUrl: "/api/blade-user/userList",
  178. props: {
  179. label: "realName",
  180. value: "id"
  181. },
  182. dicData:[],
  183. rules: [{
  184. required: true,
  185. message: "请选择负责人",
  186. trigger: "blur"
  187. }],
  188. // hide:true,
  189. },
  190. {
  191. label: "抄送人",
  192. prop: "ccId",
  193. type:'tree',
  194. dicUrl: "/api/blade-user/userList",
  195. multiple: true,
  196. props: {
  197. label: "realName",
  198. value: "id"
  199. },
  200. dicData:[],
  201. rules: [{
  202. required: true,
  203. message: "请选择抄送人",
  204. trigger: "blur"
  205. }]
  206. // hide:true,
  207. },
  208. {
  209. label: "岗位",
  210. prop: "postId",
  211. search: true,
  212. type:'select',
  213. filterable:true,
  214. dicData:[],
  215. props: {
  216. label: "postName",
  217. value: "id"
  218. },
  219. width:100,
  220. rules: [{
  221. required: true,
  222. message: "请选择岗位",
  223. trigger: "blur"
  224. }]
  225. },
  226. {
  227. label: "任务内容",
  228. prop: "tsInfo",
  229. search: true,
  230. type: 'textarea',
  231. span: 24,
  232. minRows: 3,
  233. rules: [{
  234. required: true,
  235. message: "请输入任务信息",
  236. trigger: "blur"
  237. }]
  238. },
  239. {
  240. label: "要求完成时间",
  241. prop: "completionTime",
  242. width:160,
  243. labelWidth:100,
  244. type: "datetime",
  245. format: "yyyy-MM-dd hh:mm:ss",
  246. valueFormat: "yyyy-MM-dd hh:mm:ss",
  247. searchRange: true,
  248. rules: [{
  249. required: true,
  250. message: "请输入要求完成时间",
  251. trigger: "blur"
  252. }]
  253. },
  254. {
  255. label: "是否紧急",
  256. prop: "isUrgency",
  257. type:'select',
  258. dicData:[{
  259. label:'否',
  260. value:0
  261. },{
  262. label:'是',
  263. value:1
  264. }],
  265. rules: [{
  266. required: true,
  267. message: "请输入是否紧急",
  268. trigger: "blur"
  269. }]
  270. },
  271. {
  272. label: "未完成原因",
  273. prop: "unfinishedCause",
  274. width:120,
  275. },
  276. {
  277. label: "评价",
  278. prop: "evaluate",
  279. display:false,
  280. },
  281. {
  282. label: "单据类型",
  283. prop: "documentType",
  284. display:false,
  285. hide:true,
  286. dicData:[{
  287. label:'任务',
  288. value:1
  289. },{
  290. label:'状态',
  291. value:2
  292. }],
  293. },
  294. {
  295. label: "状态",
  296. prop: "type",
  297. display:false,
  298. type:'select',
  299. dicData:[{
  300. label:'待执行',
  301. value:1
  302. },{
  303. label:'执行中',
  304. value:2
  305. },{
  306. label:'已提交',
  307. value:3
  308. },{
  309. label:'工单关闭',
  310. value:4
  311. },{
  312. label:'未完成',
  313. value:5
  314. }],
  315. },
  316. {
  317. label: "是否超时",
  318. prop: "isDateExceeded",
  319. display:false,
  320. },
  321. {
  322. label: "下发时间",
  323. prop: "createTime",
  324. search: true,
  325. type: "date",
  326. format: "yyyy-MM-dd",
  327. valueFormat: "yyyy-MM-dd",
  328. unlinkPanels: true,
  329. searchRange: true,
  330. display:false,
  331. width: 160,
  332. },
  333. {
  334. label: "完成时间",
  335. prop: "accomplishTime",
  336. type: "date",
  337. format: "yyyy-MM-dd hh:mm:ss",
  338. valueFormat: "yyyy-MM-dd hh:mm:ss",
  339. unlinkPanels: true,
  340. searchRange: true,
  341. display:false,
  342. width: 160,
  343. },
  344. {
  345. label: "备注",
  346. prop: "remarks",
  347. type: 'textarea',
  348. span: 24,
  349. minRows: 3,
  350. },
  351. {
  352. label: "附件",
  353. hide:true,
  354. prop: "accessory",
  355. type: 'upload',
  356. propsHttp: {
  357. url: 'link',
  358. name: 'name',
  359. res: 'data'
  360. },
  361. listType:'picture-card',
  362. dataType:'string',
  363. // dataType:'object',
  364. // props: {
  365. // label: 'name',
  366. // value: 'url'
  367. // },
  368. tip: '只能上传jpg/png文件,且不超过500kb',
  369. action: '/api/blade-resource/oss/endpoint/put-file',
  370. span: 24,
  371. },
  372. {
  373. label: "参考号",
  374. prop: "refno",
  375. hide:true,
  376. display:false,
  377. },
  378. {
  379. label: "创建人",
  380. prop: "createUser",
  381. hide:true,
  382. display:false,
  383. },
  384. {
  385. label: "修改人",
  386. hide:true,
  387. prop: "updateUser",
  388. display:false,
  389. },
  390. {
  391. label: "修改时间",
  392. hide:true,
  393. prop: "updateTime",
  394. width: 160,
  395. display:false,
  396. },
  397. {
  398. label: "是否已删除",
  399. hide:true,
  400. // (0 否 1是)
  401. prop: "isDeleted",
  402. display:false,
  403. type:'select',
  404. dicData:[{
  405. label:'否',
  406. value:0
  407. },{
  408. label:'是',
  409. value:1
  410. }],
  411. },
  412. ]
  413. },
  414. data: [],
  415. taskCompletionData:[],
  416. // 当前登录人的名称和id
  417. responsibleUserObj:[],
  418. // 表头筛选
  419. statistics:{},
  420. // 负责人数据
  421. dicDataName:[],
  422. };
  423. },
  424. async created() {
  425. this.option = await this.getColumnData(this.getColumnName(288), this.optionBack);
  426. // 传租户号查询岗位信息
  427. this.getPostListfun(JSON.parse(localStorage.getItem('saber-tenantId')).content)
  428. // 获取当前登录人的名称和id
  429. // console.log(JSON.parse(localStorage.getItem('saber-userInfo')).content.role_name)
  430. let role = JSON.parse(localStorage.getItem('saber-userInfo')).content
  431. this.responsibleUserObj.createUser = role.user_id
  432. this.responsibleUserObj.createUserName = role.real_name
  433. this.getUserApprovalListfun()
  434. },
  435. computed: {
  436. ...mapGetters(["permission"]),
  437. permissionList() {
  438. return {
  439. addBtn: this.vaildData(this.permission.task_add, false),
  440. viewBtn: this.vaildData(this.permission.task_view, false),
  441. delBtn: this.vaildData(this.permission.task_delete, false),
  442. editBtn: this.vaildData(this.permission.task_edit, false)
  443. };
  444. },
  445. },
  446. methods: {
  447. // 获取负责人数据
  448. getUserApprovalListfun(){
  449. getUserApprovalList().then(res=>{
  450. this.findObject(this.option.column, "responsibleUserId").dicData = res.data.data
  451. this.findObject(this.option.column, "ccId").dicData = res.data.data
  452. this.dicDataName = res.data.data
  453. })
  454. },
  455. // 受理接口
  456. Acceptancefun(row) {
  457. this.$confirm("确定将选择数据受理?", {
  458. confirmButtonText: "确定",
  459. cancelButtonText: "取消",
  460. type: "warning"
  461. })
  462. .then(() => {
  463. this.updatefun(row,2)
  464. })
  465. },
  466. // 提交
  467. submitTofun(row) {
  468. this.$confirm("确定将选择数据提交?", {
  469. confirmButtonText: "确定",
  470. cancelButtonText: "取消",
  471. type: "warning"
  472. })
  473. .then(() => {
  474. this.updatefun(row,3)
  475. })
  476. },
  477. // 确认事件
  478. determinefun(row){
  479. if (!row.evaluate) {
  480. this.$message({
  481. type: "success",
  482. message: "请评价后再点工单确认!"
  483. });
  484. return
  485. }
  486. this.$confirm("确定将选择数据确认?", {
  487. confirmButtonText: "确定",
  488. cancelButtonText: "取消",
  489. type: "warning"
  490. })
  491. .then(() => {
  492. this.updatefun({...row,accomplishTime:dateFormat(new Date())},4)
  493. })
  494. },
  495. // 退回事件
  496. returnfun(row){
  497. this.$confirm("确定将选择数据确认?", {
  498. confirmButtonText: "确定",
  499. cancelButtonText: "取消",
  500. type: "warning"
  501. })
  502. .then(() => {
  503. this.updatefun(row,2)
  504. })
  505. },
  506. // 评价
  507. evaluatefun(row,index){
  508. this.findObject(this.option.column, "ccId").disabled = true
  509. this.findObject(this.option.column, "responsibleUserId").disabled = true
  510. this.findObject(this.option.column, "postId").disabled = true
  511. this.findObject(this.option.column, "tsInfo").disabled = true
  512. this.findObject(this.option.column, "completionTime").disabled = true
  513. this.findObject(this.option.column, "isUrgency").disabled = true
  514. this.findObject(this.option.column, "accessory").disabled = true
  515. this.findObject(this.option.column, "unfinishedCause").disabled = false
  516. this.findObject(this.option.column, "evaluate").disabled = false
  517. this.findObject(this.option.column, "evaluate").display = true
  518. this.$refs.crud.rowEdit(row, index)
  519. },
  520. // 查看
  521. chakanfun(row,index) {
  522. this.$refs.crud.rowView(row, index)
  523. },
  524. // 保存更改状态
  525. updatefun(row,type){
  526. update({
  527. ...row,
  528. updateUser:this.responsibleUserObj.createUser,
  529. updateUserName:this.responsibleUserObj.createUserName,
  530. type:type
  531. }).then(() => {
  532. this.onLoad(this.page);
  533. this.$message({
  534. type: "success",
  535. message: "操作成功!"
  536. });
  537. }, error => {
  538. loading();
  539. console.log(error);
  540. });
  541. },
  542. // 更改表格颜色
  543. headerClassName(tab){
  544. //颜色间隔
  545. let back = ""
  546. if (tab.columnIndex >= 0 && tab.column.level === 1) {
  547. if (tab.columnIndex % 2 === 0) {
  548. back = "back-one"
  549. } else if (tab.columnIndex % 2 === 1) {
  550. back = "back-two"
  551. }
  552. }
  553. return back;
  554. },
  555. // 获取岗位信息
  556. getPostListfun(tenantId){
  557. getPostList(tenantId).then(res => {
  558. const column = this.findObject(this.option.column, "postId");
  559. column.dicData = res.data.data;
  560. });
  561. },
  562. // 添加
  563. rowAddfun(row,index) {
  564. this.findObject(this.option.column, "ccId").disabled = false
  565. this.findObject(this.option.column, "responsibleUserId").disabled = false
  566. this.findObject(this.option.column, "postId").disabled = false
  567. this.findObject(this.option.column, "tsInfo").disabled = false
  568. this.findObject(this.option.column, "completionTime").disabled = false
  569. this.findObject(this.option.column, "isUrgency").disabled = false
  570. this.findObject(this.option.column, "accessory").disabled = false
  571. this.$refs.crud.rowAdd()
  572. },
  573. // 添加确认
  574. rowSave(row, done, loading) {
  575. row.ccId = row.ccId.join()
  576. this.dicDataName.map(item=>{
  577. if (row.responsibleUserId == item.id) {
  578. row.responsibleUserName = item.realName
  579. }
  580. })
  581. add({
  582. ...row,
  583. type:1,
  584. ...this.responsibleUserObj,
  585. }).then(() => {
  586. this.onLoad(this.page);
  587. this.$message({
  588. type: "success",
  589. message: "操作成功!"
  590. });
  591. done();
  592. }, error => {
  593. loading();
  594. window.console.log(error);
  595. });
  596. },
  597. // 编辑弹窗确认按钮
  598. rowUpdate(row, index, done, loading) {
  599. update({
  600. ...row,
  601. updateUser:this.responsibleUserObj.createUser,
  602. updateUserName:this.responsibleUserObj.createUserName
  603. }).then(() => {
  604. this.onLoad(this.page);
  605. this.$message({
  606. type: "success",
  607. message: "操作成功!"
  608. });
  609. done();
  610. }, error => {
  611. loading();
  612. console.log(error);
  613. });
  614. },
  615. // 编辑
  616. editOpen(row,index){
  617. if (this.responsibleUserObj.createUser == row.createUser) {
  618. }else {
  619. this.findObject(this.option.column, "ccId").disabled = true
  620. this.findObject(this.option.column, "responsibleUserId").disabled = true
  621. this.findObject(this.option.column, "postId").disabled = true
  622. this.findObject(this.option.column, "tsInfo").disabled = true
  623. this.findObject(this.option.column, "completionTime").disabled = true
  624. this.findObject(this.option.column, "isUrgency").disabled = true
  625. this.findObject(this.option.column, "accessory").disabled = true
  626. }
  627. this.$refs.crud.rowEdit(row, index)
  628. },
  629. // 删除
  630. rowDel(row) {
  631. this.$confirm("确定将选择数据删除?", {
  632. confirmButtonText: "确定",
  633. cancelButtonText: "取消",
  634. type: "warning"
  635. })
  636. .then(() => {
  637. return remove({
  638. ...row.id,
  639. updateUser:this.responsibleUserObj.createUser,
  640. updateUserName:this.responsibleUserObj.createUserName
  641. });
  642. })
  643. .then(() => {
  644. this.onLoad(this.page);
  645. this.$message({
  646. type: "success",
  647. message: "操作成功!"
  648. });
  649. });
  650. },
  651. beforeOpen(done, type) {
  652. if (["edit", "view"].includes(type)) {
  653. getDetail(this.form.id).then(res => {
  654. this.form = res.data.data;
  655. });
  656. }
  657. done();
  658. },
  659. searchReset() {
  660. this.query = {};
  661. this.onLoad(this.page);
  662. },
  663. // 搜索
  664. searchChange(params, done) {
  665. this.query = params;
  666. this.page.currentPage = 1;
  667. params.createTimeSelect = params.createTime
  668. delete params.createTime
  669. this.onLoad(this.page, params);
  670. done();
  671. },
  672. // 搜索分类
  673. searchChangefun(params){
  674. this.page.currentPage = 1;
  675. this.onLoad(this.page, params);
  676. },
  677. currentChange(currentPage){
  678. this.page.currentPage = currentPage;
  679. },
  680. sizeChange(pageSize){
  681. this.page.pageSize = pageSize;
  682. },
  683. refreshChange() {
  684. this.onLoad(this.page, this.query);
  685. },
  686. // 查询列表接口
  687. onLoad(page, params = {}) {
  688. this.loading = true;
  689. getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  690. const data = res.data.data;
  691. this.page.total = data.pages.total;
  692. this.data = data.pages.records;
  693. this.statistics = data.statistics
  694. this.loading = false;
  695. this.taskCompletionfun() // 查询统计
  696. });
  697. },
  698. // 查询统计数据
  699. taskCompletionfun(){
  700. taskCompletion().then(res=>{
  701. this.taskCompletionData = res.data.data
  702. })
  703. },
  704. //自定义列保存
  705. async saveColumnTwo(ref, option, optionBack, code) {
  706. /**
  707. * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
  708. * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
  709. * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
  710. */
  711. const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
  712. if (inSave) {
  713. this.$message.success("保存成功");
  714. //关闭窗口
  715. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  716. }
  717. },
  718. //自定义列重置
  719. async resetColumnTwo(ref, option, optionBack, code) {
  720. this[option] = this[optionBack];
  721. const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
  722. if (inSave) {
  723. this.$message.success("重置成功");
  724. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  725. }
  726. }
  727. }
  728. };
  729. </script>
  730. <style scoped>
  731. ::v-deep#out-table .back-one {
  732. background: #ffc000 !important;
  733. }
  734. ::v-deep#out-table .back-two {
  735. background: #ffc000 !important;
  736. }
  737. .clearfix {
  738. font-size: 18px;
  739. }
  740. .card-flex {
  741. display: flex;
  742. align-items: center;
  743. font-size: 16px;
  744. margin-top: 10px;
  745. }
  746. .card-flex:first-child {
  747. margin: 0;
  748. }
  749. .card-flexLeft {
  750. width: 80px;
  751. }
  752. .card-flexRight {
  753. }
  754. .bottomStatistics {
  755. padding: 10px 20px;
  756. font-size: 14px;
  757. border-radius: 4px;
  758. margin-right: 10px;
  759. }
  760. </style>