index.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733
  1. <template>
  2. <fullscreen :fullscreen.sync="fullscreen" class="container">
  3. <div class="container-box">
  4. <toolList @iconCli='iconCli' :tooltit='tooltit'></toolList>
  5. <div style="overflow: hidden;">
  6. <el-button style="float: right;margin-top: 10px;" type="primary" @click="dialogCheck(3)">添加</el-button>
  7. <el-button style="float: right;margin-top: 10px;margin-right: 20px;" type="primary" @click="getStanding">台账</el-button>
  8. </div>
  9. <div class="tabbox">
  10. <el-table height="calc(100% - 40px)" class="com-table" ref="multipleTable" :data="tableData"
  11. tooltip-effect="dark" size="small" border style="width: 100%" v-loading="loading">
  12. <el-table-column prop="woTitle" label="业务名称">
  13. </el-table-column>
  14. <el-table-column prop="opName" label="申请姓名">
  15. </el-table-column>
  16. <el-table-column prop="createTime" label="申请时间">
  17. </el-table-column>
  18. <el-table-column prop="stsDesc" label="状态">
  19. </el-table-column>
  20. <el-table-column label="操作" width="120px" align="center">
  21. <template slot-scope="scope">
  22. <el-button size="mini" type="primary" @click="dialogCheck(1,scope.row)">查看</el-button>
  23. <el-button size="mini" type="danger" v-if="scope.row.sts != 1"
  24. @click="dialogCheck(2,scope.row)">处理</el-button>
  25. <!-- <el-button size="mini" type="danger" @click="delLine(scope.row)">删除</el-button> -->
  26. </template>
  27. </el-table-column>
  28. </el-table>
  29. <el-pagination class="pageBox" @current-change="currchange" layout="prev, pager, next" background
  30. :total="total">
  31. </el-pagination>
  32. </div>
  33. </div>
  34. <el-dialog :title="titname" :visible.sync="dialogStatus" width="50%" :destroy-on-close="true"
  35. :modal-append-to-body="false" :close-on-click-modal="false" :before-close="closedia" :fullscreen="true">
  36. <div v-loading="loadinged">
  37. <el-form :model="infolist" ref="infolist" :rules="rules" style="height: calc(100vh - 180px);overflow-y: scroll;">
  38. <div class="info-line">
  39. <el-form-item prop="woName">
  40. <span>工单名称</span>
  41. <el-input v-model="infolist.woName" placeholder="工单名称" :disabled="disableStatus">
  42. </el-input>
  43. </el-form-item>
  44. <el-form-item prop="terminal">
  45. <span>申请流程</span>
  46. <el-select clearable v-model="terminal" placeholder="申请流程" disabled>
  47. <el-option v-for="items in options" :key="items.procId" :label="items.procName"
  48. :value="items.procId">
  49. </el-option>
  50. </el-select>
  51. </el-form-item>
  52. <el-form-item>
  53. <span>合作伙伴</span>
  54. <el-input v-model="infolist.factoryName" placeholder="合作伙伴名称" :disabled="disableStatus">
  55. </el-input>
  56. </el-form-item>
  57. <el-form-item>
  58. <span>信用编码</span>
  59. <el-input v-model="infolist.factoryCode" placeholder="合规伙伴统一信用编码"
  60. :disabled="disableStatus"></el-input>
  61. </el-form-item>
  62. </div>
  63. <el-form-item class="info-line online">
  64. <span>正文内容</span>
  65. <el-input v-model="infolist.textContent" placeholder="正文内容" type="textarea" :autosize="{ minRows: 4, maxRows: 10}"
  66. :disabled="disableStatus">
  67. </el-input>
  68. </el-form-item>
  69. <div class="info-line" v-if="(opno == userInfo.loginNo&&vision == '发起人填报') || visionsts == '4'">
  70. <el-form-item>
  71. <span>请示汇报名称</span>
  72. <el-input v-model="infolist.reportName" placeholder="请示汇报名称" :disabled="titname == '查看' || visionsts == '4'">
  73. </el-input>
  74. </el-form-item>
  75. <el-form-item>
  76. <span>请示汇报编码</span>
  77. <el-input v-model="infolist.reportNo" placeholder="请示汇报编码" :disabled="titname == '查看' || visionsts == '4'">
  78. </el-input>
  79. </el-form-item>
  80. <el-form-item>
  81. <span>请示汇报时间</span>
  82. <el-date-picker :disabled="titname == '查看' || visionsts == '4'" v-model="infolist.reportPassTime" type="date"
  83. placeholder="请示汇报时间">
  84. </el-date-picker>
  85. </el-form-item>
  86. </div>
  87. <div class="info-line" v-if="(opno == userInfo.loginNo&&vision == '合同信息填报') || vision == '结束'">
  88. <el-form-item>
  89. <span>合同名称</span>
  90. <el-input v-model="infolist.contractName" placeholder="合同名称" :disabled="titname == '查看' || vision == '结束'">
  91. </el-input>
  92. </el-form-item>
  93. <el-form-item>
  94. <span>合同编码</span>
  95. <el-input v-model="infolist.contractNo" placeholder="合同编码" :disabled="titname == '查看' || vision == '结束'">
  96. </el-input>
  97. </el-form-item>
  98. <el-form-item>
  99. <span>合同开始时间</span>
  100. <el-date-picker :disabled="titname == '查看' || vision == '结束'" v-model="infolist.contractStartTime" type="date"
  101. placeholder="合同开始时间">
  102. </el-date-picker>
  103. </el-form-item>
  104. <el-form-item>
  105. <span>合同截至时间</span>
  106. <el-date-picker :disabled="titname == '查看'" v-model="infolist.contractEndTime" type="date"
  107. placeholder="合同截至时间">
  108. </el-date-picker>
  109. </el-form-item>
  110. </div>
  111. <div style="padding:0 20px 0 120px;margin-bottom: 20px;" v-if="disableStatus">
  112. <uploadDown :datalist="datalist" :dialogStatus="uploadstatus"></uploadDown>
  113. </div>
  114. <div style="padding-left: 100px" v-if="!disableStatus">
  115. <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
  116. </myUpload>
  117. </div>
  118. <div style="padding-left: 100px;margin-bottom: 20px;" v-if="titname != '查看' && (vision == '发起人填报'||vision == '合同信息填报')">
  119. <myUpload @uploadBack="uploadBack" :fileInfo="fileInfo" :fileList="fileInfo.fileList">
  120. </myUpload>
  121. </div>
  122. <el-form-item class="info-line online" v-if="vision == '审批'">
  123. <span>审批说明</span>
  124. <el-input v-model="remark" placeholder="审批说明" type="textarea" :rows="3"
  125. :disabled="titname == '查看'">
  126. </el-input>
  127. </el-form-item>
  128. <div style="margin-bottom: 20px;padding: 0 20px;" v-if="titname != '添加'">
  129. <el-table class="com-table" ref="multipleTable" :data="rovaList" tooltip-effect="dark"
  130. size="small" border style="width: 100%">
  131. <el-table-column prop="taskId" label="编号">
  132. </el-table-column>
  133. <el-table-column prop="taskName" label="环节">
  134. </el-table-column>
  135. <el-table-column prop="assigneeName" label="处理人">
  136. </el-table-column>
  137. <el-table-column prop="assigneeNo" label="处理人工号">
  138. </el-table-column>
  139. <el-table-column prop="opTime" label="处理时间">
  140. </el-table-column>
  141. <el-table-column prop="remark" label="备注">
  142. </el-table-column>
  143. </el-table>
  144. </div>
  145. </el-form>
  146. <div slot="footer" class="dialog-footer myfooter">
  147. <el-button v-if="titname != '查看' && vision == '流程发起'" type="primary" @click="dialogCli(2)">确 定
  148. </el-button>
  149. <el-button v-if="titname != '查看' && vision == '发起人填报'" type="primary" @click="dialogCli(2)">确 定
  150. </el-button>
  151. <el-button v-if="titname != '查看' && vision == '合同信息填报'" type="primary" @click="dialogCli(2)">确 定
  152. </el-button>
  153. <el-button v-if="titname != '查看' && vision == '审批'" type="primary" @click="dialogCli(2)">同 意
  154. </el-button>
  155. <el-button v-if="titname != '查看' && vision == '审批'" type="primary" @click="dialogCli(1)">驳 回
  156. </el-button>
  157. <el-button v-if="titname == '添加'" type="primary" @click="dialogCliadd">确 定</el-button>
  158. <el-button v-if="vision == '结束'||titname == '查看'" @click="dialogCli(3)">确 定</el-button>
  159. <el-button @click="dialogCli(3)">取 消</el-button>
  160. </div>
  161. </div>
  162. </el-dialog>
  163. <myMessage :messTit='messTit' @closeMessage="closeMessage" :centerDialogVisible="centerDialogVisible"
  164. v-if="centerDialogVisible"></myMessage>
  165. </fullscreen>
  166. </template>
  167. <script>
  168. import mySearch from "../../../components/search.vue";
  169. import myMessage from "../../../components/myMessage.vue"
  170. import toolList from '../../../components/toolList'
  171. import myUpload from '../../../components/upload'
  172. import uploadDown from '../../../components/uploadDown.vue'
  173. export default {
  174. components: {
  175. mySearch,
  176. myMessage,
  177. toolList,
  178. myUpload,
  179. uploadDown
  180. },
  181. data() {
  182. const woName = (rule, value, callback) => {
  183. if (!this.infolist.woName) {
  184. callback(new Error('不能为空'))
  185. } else {
  186. callback()
  187. }
  188. }
  189. const terminal = (rule, value, callback) => {
  190. if (!this.terminal) {
  191. callback(new Error('不能为空'))
  192. } else {
  193. callback()
  194. }
  195. }
  196. return {
  197. rules: {
  198. woName: [{
  199. required: true,
  200. trigger: 'blur',
  201. validator: woName
  202. }],
  203. terminal: [{
  204. required: true,
  205. trigger: 'change',
  206. validator: terminal
  207. }],
  208. },
  209. tooltit: '线上合作渠道合作引入',
  210. fullscreen: false,
  211. total: 0,
  212. pageSize: 1,
  213. tableData: [{}],
  214. dialogStatus: false,
  215. disableStatus: false,
  216. titname: '',
  217. infolist: {},
  218. userInfo: {},
  219. params: {},
  220. centerDialogVisible: false,
  221. messTit: '',
  222. delid: '',
  223. loading: false,
  224. loadinged: false,
  225. fileInfo: {
  226. limit: 5,
  227. url: '/bpm/api/upload',
  228. fileList: []
  229. },
  230. rovaList: [],
  231. vision: '',
  232. datalist: {
  233. url: '/bpm/api/download',
  234. type: 1
  235. },
  236. uploadstatus: false,
  237. rovaList: [],
  238. mydisable: 1,
  239. opname: '',
  240. opno: '',
  241. attList: [],
  242. options: [],
  243. // terminal:'720549017098297344',
  244. terminal:'719840012101021696',
  245. remark:'',
  246. visionsts:'1',
  247. }
  248. },
  249. methods: {
  250. closedia() {
  251. this.infolist = {};
  252. this.attList = [];
  253. this.fileInfo.fileList = [];
  254. this.dialogStatus = false;
  255. },
  256. //获取列表
  257. getList(v, n) {
  258. this.pageSize = n;
  259. let _this = this;
  260. this.loading = true;
  261. v.procName = "合作引入流程";
  262. this.$http({
  263. url: "/bpm/api/queryToDoAndFinishTaskList",
  264. method: "post",
  265. headers: {
  266. "Content-Type": "application/json",
  267. "page": '{"pageNo":"' + n + '","pageSize":"10"}'
  268. },
  269. data: v,
  270. }).then((res) => {
  271. this.tableData = res.data.data;
  272. this.total = res.data.totalRecord;
  273. this.loading = false;
  274. });
  275. },
  276. // 分页
  277. currchange(v) {
  278. this.pageSize = v;
  279. this.getList(this.params, this.pageSize);
  280. },
  281. //申请
  282. dialogCheck(v, n) {
  283. this.infolist.reportPassTime='';
  284. this.infolist.contractStartTime='';
  285. this.infolist.contractEndTime='';
  286. this.dialogStatus = true;
  287. let infolist = Object.assign({}, n);
  288. this.vision = '';
  289. this.visionsts = '';
  290. if (v === 1) {
  291. this.titname = '查看';
  292. this.disableStatus = true;
  293. } else if (v === 2) {
  294. this.titname = '审批';
  295. this.disableStatus = true;
  296. } else if (v === 3) {
  297. this.titname = '添加';
  298. this.disableStatus = false;
  299. return
  300. }
  301. this.$http({
  302. url: '/bpm/api/taskInit',
  303. method: "post",
  304. headers: {
  305. "Content-Type": "application/json",
  306. },
  307. data: {
  308. woNo: n.woNo
  309. },
  310. }).then((res) => {
  311. // this.infolist = Object.assign({}, res.data);
  312. this.terminal = infolist.procId;
  313. this.opname = res.data.opName;
  314. this.opno = res.data.opNo;
  315. this.infolist = JSON.parse(res.data.params.terminalRes);
  316. this.infolist.procId=infolist.procId;
  317. this.infolist.procVersion=infolist.procVersion;
  318. this.remark=infolist.remark;
  319. this.infolist.stepId=infolist.stepId;
  320. this.infolist.taskId=infolist.taskId;
  321. this.infolist.taskName=infolist.taskName;
  322. this.infolist.opName=infolist.opName;
  323. this.infolist.opNo=infolist.opNo;
  324. this.infolist.opTime=infolist.opTime;
  325. this.infolist.woNo=infolist.woNo;
  326. if (res.data.taskList[res.data.taskList.length - 1].taskName == '流程发起') {
  327. this.disableStatus = false;
  328. this.vision = '流程发起';
  329. }else if (res.data.taskList[res.data.taskList.length - 1].taskName == '部门主任审批') {
  330. this.vision = '审批';
  331. this.visionsts = '3';
  332. }else if (res.data.taskList[res.data.taskList.length - 1].taskName == '发起人填报') {
  333. this.vision = '发起人填报';
  334. }else if (res.data.taskList[res.data.taskList.length - 1].taskName == '合同信息填报') {
  335. this.vision = '合同信息填报';
  336. this.visionsts = '4';
  337. if(res.data.taskList[res.data.taskList.length - 1].sts == '1'){
  338. this.vision = '结束';
  339. this.visionsts = '4';
  340. }
  341. } else {
  342. this.vision = '审批';
  343. }
  344. this.datalist.attList = JSON.parse(res.data.params.attList);
  345. this.attList = [];
  346. this.fileInfo.fileList = [];
  347. this.datalist.attList.forEach(item => {
  348. item.id = item.attchFileId;
  349. this.fileInfo.fileList.push({
  350. name: item.fileName,
  351. url: '',
  352. id: item.id,
  353. attchFileId: item.attchFileId,
  354. fileName: item.fileName
  355. });
  356. this.attList.push({
  357. name: item.fileName,
  358. url: '',
  359. id: item.id,
  360. attchFileId: item.attchFileId,
  361. fileName: item.fileName
  362. });
  363. })
  364. this.rovaList = res.data.taskList;
  365. this.uploadstatus = true;
  366. });
  367. },
  368. //审批
  369. dialogCli(v) {
  370. this.dialogStatus = false;
  371. if (v === 3) {
  372. this.infolist = {};
  373. this.attList = [];
  374. this.fileInfo.fileList = [];
  375. return
  376. }
  377. let _this = this;
  378. this.infolist.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss")
  379. if(this.vision == '发起人填报'){
  380. this.infolist.reportPassTime?this.infolist.reportPassTime = _this.$formatDate(this.infolist.reportPassTime, "YYYY-MM-DD HH:mm:ss"):'';
  381. }
  382. if(this.vision == '合同信息填报'){
  383. this.infolist.contractStartTime?this.infolist.contractStartTime = _this.$formatDate(this.infolist.contractStartTime, "YYYY-MM-DD HH:mm:ss"):'';
  384. this.infolist.contractEndTime?this.infolist.contractEndTime = _this.$formatDate(this.infolist.contractEndTime, "YYYY-MM-DD HH:mm:ss"):'';
  385. }
  386. if (v === 1) {
  387. let params = {
  388. dealType: '1',
  389. dealTypeDesc: '打回',
  390. procId: this.infolist.procId,
  391. procVersion: this.infolist.procVersion,
  392. remark: this.remark,
  393. stepId: this.infolist.stepId,
  394. taskId: this.infolist.taskId,
  395. taskName: this.infolist.taskName,
  396. opName: this.infolist.opName,
  397. opNo: this.opno,
  398. opTime: this.infolist.opTime,
  399. params: {
  400. procExeCondiVal: '不同意',
  401. terminalRes: JSON.stringify(this.infolist),
  402. assigneeNo: this.opno,
  403. assigneeName: this.opname,
  404. },
  405. woNo: this.infolist.woNo,
  406. }
  407. this.submitInfo("/bpm/api/submitTask", params);
  408. } else if (v === 2) {
  409. let param = {
  410. dealType: '0',
  411. dealTypeDesc: '提交',
  412. procId: this.infolist.procId,
  413. procVersion: this.infolist.procVersion,
  414. remark: this.remark,
  415. stepId: this.infolist.stepId,
  416. taskId: this.infolist.taskId,
  417. taskName: this.infolist.taskName,
  418. opName: this.infolist.opName,
  419. opNo: this.infolist.opNo,
  420. opTime: this.infolist.opTime,
  421. params: {
  422. terminalRes: JSON.stringify(this.infolist)
  423. },
  424. woNo: this.infolist.woNo,
  425. }
  426. if(this.visionsts == '3'){
  427. param.params.assigneeNo = this.opno;
  428. param.params.assigneeName = this.opname;
  429. }
  430. if(this.vision == '流程发起'){
  431. let attList = [];
  432. for (let i = 0; i < this.attList.length; i++) {
  433. attList.push({
  434. id: this.attList[i].id,
  435. fileCode: this.attList[i].fileCode,
  436. fileName: this.attList[i].fileName,
  437. opName: this.attList[i].opName,
  438. opNo: this.attList[i].opNo,
  439. opTime: this.attList[i].opTime,
  440. woNo: this.infolist.woNo,
  441. attchFileId: this.attList[i].attchFileId,
  442. });
  443. }
  444. param.params.attList = JSON.stringify(attList)
  445. }
  446. this.submitInfo("/bpm/api/submitTask", param);
  447. }
  448. },
  449. //添加
  450. dialogCliadd(v) {
  451. let _this = this;
  452. let info = {};
  453. info.opTime = _this.$formatDate(new Date(), "YYYY-MM-DD HH:mm:ss");
  454. info.opNo = this.userInfo.loginNo;
  455. info.opName = this.userInfo.loginName;
  456. info.woTitle = this.infolist.woName;
  457. info.params = {};
  458. info.params.terminalRes = this.infolist;
  459. info.procId = this.terminal;
  460. for (let i = 0; i < this.options.length; i++) {
  461. if (this.terminal == this.options[i].procId) {
  462. info.procName = this.options[i].procName;
  463. info.procVersion = this.options[i].procVersion;
  464. }
  465. }
  466. let attList = [];
  467. for (let i = 0; i < this.attList.length; i++) {
  468. attList.push({
  469. id: this.attList[i].id,
  470. fileCode: this.attList[i].fileCode,
  471. fileName: this.attList[i].fileName,
  472. opName: this.attList[i].opName,
  473. opNo: this.attList[i].opNo,
  474. opTime: this.attList[i].opTime,
  475. woNo: this.infolist.woNo,
  476. attchFileId: this.attList[i].attchFileId,
  477. });
  478. }
  479. info.params.attList = JSON.stringify(attList)
  480. info.params.terminalRes = JSON.stringify(info.params.terminalRes);
  481. this.submitInfo("/bpm/api/startProc", info);
  482. },
  483. submitInfo(u, v) {
  484. let _this = this;
  485. this.$refs.infolist.validate(valid => {
  486. if (valid) {
  487. this.$http({
  488. url: u,
  489. method: "post",
  490. headers: {
  491. "Content-Type": "application/json",
  492. },
  493. data: v,
  494. }).then((res) => {
  495. if (res.data.result === 1) {
  496. _this.$message({
  497. message: res.data.desc,
  498. type: 'error'
  499. });
  500. } else {
  501. _this.$message({
  502. message: '成功',
  503. type: 'success'
  504. });
  505. _this.closedia();
  506. _this.getList(this.params, this.pageSize);
  507. }
  508. });
  509. }
  510. })
  511. },
  512. getStanding(){
  513. this.$router.push({
  514. path: '/standing',
  515. });
  516. this.setabList('引入流程台账', '/standing');
  517. },
  518. setabList(n, p) {
  519. let params = {
  520. children: "",
  521. name: n,
  522. rountPath: p,
  523. target: "_self",
  524. };
  525. for (let i = 0; i < this.$store.state.tabList.length; i++) {
  526. if (this.$store.state.tabList[i].name === params.name) {
  527. this.$store.state.tabList[i] = params;
  528. }
  529. }
  530. let set = new Set([...this.$store.state.tabList, params]);
  531. set.add(params);
  532. this.$store.commit("setDefaultActive", params.rountPath);
  533. this.$store.commit("setTabList", Array.from(set));
  534. },
  535. //流程
  536. getTermianl() {
  537. this.$http({
  538. url: "/bpm/api/queryBpmProcList",
  539. method: "post",
  540. headers: {
  541. "Content-Type": "application/json",
  542. "page": '{"pageNo":"' + 1 + '","pageSize":"100"}'
  543. },
  544. data: {},
  545. }).then((res) => {
  546. this.options = res.data.data;
  547. });
  548. },
  549. closeMessage(v) {
  550. this.centerDialogVisible = false;
  551. let _this = this;
  552. if (v === 1) {
  553. _this.$http({
  554. url: "/bpm/api/deleteBpmPrePlugin",
  555. method: "post",
  556. headers: {
  557. "Content-Type": "application/json",
  558. },
  559. data: {
  560. id: this.delid
  561. },
  562. }).then((res) => {
  563. if (res.data.result === 1) {
  564. _this.$message({
  565. message: res.data.desc,
  566. type: 'error'
  567. });
  568. } else {
  569. _this.$message({
  570. message: '删除成功',
  571. type: 'success'
  572. });
  573. _this.getList(this.params, this.pageSize);
  574. }
  575. });
  576. }
  577. },
  578. //删除
  579. delLine(v) {
  580. this.centerDialogVisible = true;
  581. this.messTit = '即将删除此条数据, 是否删除?';
  582. this.delid = v.id;
  583. },
  584. //文件返回值
  585. uploadBack(v) {
  586. this.attList = v;
  587. },
  588. //功能栏
  589. iconCli(v) {
  590. if (v === 1) {
  591. this.getList(this.params, this.pageSize);
  592. }
  593. if (v === 2) {
  594. this.fullscreen = !this.fullscreen
  595. }
  596. },
  597. getUser() {
  598. this.userInfo = JSON.parse(window.sessionStorage.userInfo);
  599. }
  600. },
  601. mounted() {
  602. this.getList({}, 1);
  603. this.getUser();
  604. this.getTermianl();
  605. },
  606. created() {
  607. }
  608. }
  609. </script>
  610. <style scoped lang="scss">
  611. .onetab {
  612. margin-bottom: 20px;
  613. padding: 0 20px;
  614. }
  615. .titbox {
  616. div {
  617. float: right;
  618. i {
  619. font-size: 22px;
  620. margin-left: 20px;
  621. cursor: pointer;
  622. }
  623. }
  624. }
  625. .tabbox {
  626. margin-top: 15px;
  627. }
  628. .pageBox {
  629. text-align: right;
  630. margin-top: 10px;
  631. }
  632. .info-line {
  633. width: 100%;
  634. display: block;
  635. padding-left: 20px;
  636. div {
  637. width: 50%;
  638. display: inline-block;
  639. }
  640. span {
  641. width: 100px;
  642. display: inline-block;
  643. text-align: left;
  644. i {
  645. color: red;
  646. display: inline-block;
  647. padding-right: 5px;
  648. }
  649. }
  650. .el-select,
  651. .el-input {
  652. width: calc(100% - 120px);
  653. }
  654. }
  655. .online {
  656. width: 100%;
  657. .el-select {
  658. width: calc(100% - 120px);
  659. }
  660. span {
  661. vertical-align: top;
  662. }
  663. .el-textarea {
  664. width: calc(100% - 120px);
  665. }
  666. }
  667. .adv-type {
  668. margin-top: 20px;
  669. display: flex;
  670. justify-content: space-between;
  671. flex-wrap: wrap;
  672. // border: 1px solid #ddd;
  673. border-radius: 5px;
  674. padding: 20px;
  675. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  676. div {
  677. width: 33%;
  678. text-align: center;
  679. height: 80px;
  680. overflow: hidden;
  681. min-width: 100px;
  682. cursor: pointer;
  683. padding-top: 10px;
  684. margin: 10px 0;
  685. }
  686. div:hover {
  687. background: #CFE8FC;
  688. border-radius: 5px;
  689. }
  690. span {
  691. width: 100%;
  692. display: inline-block;
  693. height: 40px;
  694. // line-height: 40px;
  695. i {
  696. color: #0074D9;
  697. font-size: 36px;
  698. }
  699. }
  700. }
  701. </style>