Controltree.vue 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989
  1. <template>
  2. <div class="controltree-box">
  3. <div class="controltree-w">
  4. <div class="controltree-ul" >
  5. <div class="controltree-li" v-for="(item,index) in treeData" :key="index">
  6. {{item.rootName}}
  7. <div v-if="item.childList!==undefined && item.childList!= null&&item.childList.length>0" class="second-ul">
  8. <div class="second-ul-haed">
  9. <div>版块步骤</div>
  10. <div>预计完成时间</div>
  11. <div>完成时间</div>
  12. </div>
  13. <div class="onefloors" v-if="item.childList[0].childList==undefined||item.childList[0].childList==null||item.childList[0].childList.length<=0">
  14. <div v-for="(seconditem,index) in item.childList" :key="index" class="li-steps-li">
  15. <div :style="filter_color(seconditem.stepStatus)">{{seconditem.jobContent}}</div>
  16. <div>{{seconditem.expectBeginDt.split(" ")[0]}}~{{seconditem.expectEndDt.split(" ")[0]}}</div>
  17. <div>{{seconditem.expectEndDt.split(" ")[0]}}</div>
  18. </div>
  19. <div @click="addfigures(item)" class="addonebtn">
  20. <i class="el-icon-edit"></i>
  21. 编 辑
  22. </div>
  23. </div>
  24. <div class="onefloor" v-if="item.childList[0].childList!==undefined&&item.childList[0].childList!=null&&item.childList[0].childList.length>0" style="padding:5px">
  25. <div v-for="(seconditem,index) in item.childList" :key="index" class="second-li">
  26. <div class="level-title">
  27. <span>{{seconditem.jobContent.split("-")[1]}}</span>
  28. <div @click="levelAddfigures(seconditem,index)" class="levelTwo-btn">
  29. <i class="el-icon-edit"></i>
  30. 编 辑
  31. </div>
  32. </div>
  33. <div class="li-steps-ul">
  34. <div class="zanwu" v-if="!seconditem.childList">暂无事件</div>
  35. <div v-for="(stepsitem,index) in seconditem.childList" :key="index" class="li-steps-li">
  36. <div :style="filter_color(stepsitem.stepStatus)">{{stepsitem.jobContent}}</div>
  37. <div>{{stepsitem.expectBeginDt.split(" ")[0]}}~{{stepsitem.expectEndDt.split(" ")[0]}}</div>
  38. <div>{{stepsitem.expectEndDt.split(" ")[0]}}</div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. <el-dialog title="编 辑" :visible.sync="outerVisible">
  48. <el-dialog
  49. width="30%"
  50. :title="titleName"
  51. :visible.sync="innerVisible"
  52. append-to-body>
  53. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  54. <div class="flx-box">
  55. <el-form-item label="管控编号" label-width="80px" prop="scheduleId">
  56. <el-input :readonly="true" v-model="ruleForm.scheduleId"></el-input>
  57. </el-form-item>
  58. <el-form-item label="操作标识" label-width="80px" prop="step">
  59. <el-input :readonly="true" v-model="ruleForm.step"></el-input>
  60. </el-form-item>
  61. <el-form-item label="节点标识" label-width="80px" prop="parentStep">
  62. <el-input :readonly="true" v-model="ruleForm.parentStep"></el-input>
  63. </el-form-item>
  64. <el-form-item label="指派员工" prop="duty" label-width="80px">
  65. <el-select v-model="ruleForm.duty" placeholder="请选择员工">
  66. <el-option v-for="(item,index) in employeeColumn" :key="index" :label="item.sysUserName" :value="item.sysUserId"></el-option>
  67. </el-select>
  68. </el-form-item>
  69. <!-- <el-form-item label="指派员工" label-width="80px" prop="duty">
  70. <el-input v-model="ruleForm.duty"></el-input>
  71. </el-form-item> -->
  72. <el-form-item label="操作名称" label-width="80px" prop="JobContent">
  73. <el-input v-model="ruleForm.JobContent"></el-input>
  74. </el-form-item>
  75. <el-form-item label="操作人ID" label-width="80px" prop="CreateUserId">
  76. <el-input :readonly="true" v-model="ruleForm.CreateUserId"></el-input>
  77. </el-form-item>
  78. <el-form-item label="开始时间" label-width="80px" required>
  79. <el-form-item prop="ExpectBeginDt">
  80. <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.ExpectBeginDt" style="width: 100%;"></el-date-picker>
  81. </el-form-item>
  82. </el-form-item>
  83. <el-form-item label="结束时间" label-width="80px" required>
  84. <el-form-item prop="ExpectEndDt">
  85. <el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.ExpectEndDt" style="width: 100%;"></el-date-picker>
  86. </el-form-item>
  87. </el-form-item>
  88. </div>
  89. <el-form-item label="备注" label-width="80px" prop="Remark">
  90. <el-input type="textarea" v-model="ruleForm.Remark"></el-input>
  91. </el-form-item>
  92. <div>
  93. <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
  94. <el-button @click="resetForm('ruleForm')">重置</el-button>
  95. </div>
  96. </el-form>
  97. </el-dialog>
  98. <div class="dialog-abb">
  99. <el-button type="primary" @click="addBtn()">添 加</el-button>
  100. </div>
  101. <el-table
  102. :data="educationalList"
  103. border
  104. style="width: 100%">
  105. <el-table-column
  106. prop="stepName"
  107. label="步骤名称"
  108. width="180">
  109. </el-table-column>
  110. <el-table-column
  111. prop="expectBeginDt"
  112. :formatter="filteryear"
  113. label="开始时间"
  114. width="180">
  115. </el-table-column>
  116. <el-table-column
  117. prop="expectEndDt"
  118. :formatter="filteryears"
  119. width="180"
  120. label="结束时间">
  121. </el-table-column>
  122. <el-table-column
  123. prop="remark"
  124. label="备注">
  125. </el-table-column>
  126. <el-table-column label="操作" width="130">
  127. <template slot-scope="scope">
  128. <el-button
  129. size="mini"
  130. @click="handleEdit(scope.$index, scope.row)"><i class="el-icon-edit"></i></el-button>
  131. <el-button
  132. size="mini"
  133. type="danger"
  134. @click="handleDelete(scope.$index, scope.row,educationalList)"><i class="el-icon-delete"></i></el-button>
  135. </template>
  136. </el-table-column>
  137. </el-table>
  138. <div slot="footer" class="dialog-footer">
  139. <el-button @click="outerVisible = false">取 消</el-button>
  140. <el-button type="primary">确 定</el-button>
  141. </div>
  142. </el-dialog>
  143. </div>
  144. </template>
  145. <script>
  146. import { el } from '@fullcalendar/core/internal-common'
  147. export default {
  148. data() {
  149. return {
  150. token:'',
  151. treeData: [{
  152. id: 1,
  153. label: "团组出行",
  154. },
  155. {
  156. id: 2,
  157. label: "确认出团",
  158. },
  159. {
  160. id: 3,
  161. label: "经费预算",
  162. panduan:"wu",
  163. children:[
  164. {
  165. id:15,
  166. label: "完成经费预算",
  167. date:"2023-01-12 ~ 2023-02-10",
  168. enddate:'2023-02-10'
  169. }
  170. ]
  171. },
  172. {
  173. id: 4,
  174. label: " 市场部人员报价对接/反馈",
  175. panduan:"wu",
  176. children:[
  177. {
  178. id:18,
  179. label: "完成报价对接/反馈",
  180. date:"2023-01-12 ~ 2023-02-10",
  181. enddate:'2023-02-10'
  182. },
  183. {
  184. id:19,
  185. label: "录入最终总经费预算",
  186. date:"2023-01-12 ~ 2023-02-10",
  187. enddate:'2023-02-10'
  188. },
  189. {
  190. id:20,
  191. label: "上传明细单",
  192. date:"2023-01-12 ~ 2023-02-10",
  193. enddate:'2023-02-10'
  194. }
  195. ]
  196. },
  197. {
  198. id: 5,
  199. label: "报批流程"
  200. },
  201. {
  202. id: 6,
  203. label: "护照/签证",
  204. panduan:"wu",
  205. children:[
  206. {
  207. id:22,
  208. label: "签证费用录入",
  209. date:"2023-01-12 ~ 2023-02-10",
  210. enddate:'2023-02-10',
  211. state:1
  212. },
  213. {
  214. id:23,
  215. label: "归还护照",
  216. date:"2023-01-12 ~ 2023-02-10",
  217. enddate:'2023-02-10',
  218. state:2
  219. },
  220. {
  221. id:24,
  222. label: "出签+取护照",
  223. date:"2023-01-12 ~ 2023-02-10",
  224. enddate:'2023-02-10',
  225. state:3
  226. },
  227. {
  228. id:25,
  229. label: "送签",
  230. date:"2023-01-12 ~ 2023-02-10",
  231. enddate:'2023-02-10',
  232. state:3
  233. },
  234. {
  235. id:26,
  236. label: "填资料",
  237. date:"2023-01-12 ~ 2023-02-10",
  238. enddate:'2023-02-10',
  239. state:1
  240. },
  241. {
  242. id:27,
  243. label: "取护照资料",
  244. date:"2023-01-12 ~ 2023-02-10",
  245. enddate:'2023-02-10',
  246. state:1
  247. },
  248. {
  249. id:28,
  250. label: "收集资料",
  251. date:"2023-01-12 ~ 2023-02-10",
  252. enddate:'2023-02-10',
  253. state:1
  254. }
  255. ]
  256. },
  257. {
  258. id: 7,
  259. label: "各版块操作",
  260. panduan:"you",
  261. children:[
  262. {
  263. id:29,
  264. label: "机票",
  265. children:[
  266. {
  267. id:42,
  268. label: "询价并导入黑屏代码",
  269. date:"2023-01-12 ~ 2023-02-10",
  270. enddate:'2023-02-10',
  271. state:1
  272. },
  273. {
  274. id:43,
  275. label: "机票已占位",
  276. date:"2023-01-12 ~ 2023-02-10",
  277. enddate:'2023-02-10',
  278. state:1
  279. },
  280. {
  281. id:44,
  282. label: "已出票",
  283. date:"2023-01-12 ~ 2023-02-10",
  284. enddate:'2023-02-10',
  285. state:2
  286. },
  287. {
  288. id:45,
  289. label: "机票费用录入",
  290. date:"2023-01-12 ~ 2023-02-10",
  291. enddate:'',
  292. state:3
  293. }
  294. ]
  295. },
  296. {
  297. id:30,
  298. label: "酒店",
  299. children:[
  300. {
  301. id:46,
  302. label: "酒店费用录入",
  303. date:"2023-01-12 ~ 2023-02-10",
  304. enddate:'2023-02-10'
  305. }
  306. ]
  307. },
  308. {
  309. id:31,
  310. label: "OP",
  311. children:[
  312. {
  313. id:47,
  314. label: "OP费用录入",
  315. date:"2023-01-12 ~ 2023-02-10",
  316. enddate:'2023-02-10'
  317. }
  318. ]
  319. },
  320. {
  321. id:32,
  322. label: "商邀",
  323. children:[
  324. {
  325. id:48,
  326. label: "报批/商邀费用录入",
  327. date:"2023-01-12 ~ 2023-02-10",
  328. enddate:'2023-02-10'
  329. }
  330. ]
  331. },
  332. {
  333. id:33,
  334. label: "其他",
  335. children:[
  336. {
  337. id:49,
  338. label: "增减款项录入",
  339. date:"2023-01-12 ~ 2023-02-10",
  340. enddate:'2023-02-10'
  341. }
  342. ]
  343. }
  344. ]
  345. },
  346. {
  347. id: 8,
  348. label: "费用审批",
  349. panduan:"wu",
  350. children:[
  351. {
  352. id:34,
  353. label: "机票费用审批",
  354. date:"2023-01-12 ~ 2023-02-10",
  355. enddate:'2023-02-10',
  356. state:1
  357. },
  358. {
  359. id:35,
  360. label: "酒店费用审批",
  361. date:"2023-01-12 ~ 2023-02-10",
  362. enddate:'2023-02-10',
  363. state:1
  364. },
  365. {
  366. id:36,
  367. label: "OP费用审批",
  368. date:"2023-01-12 ~ 2023-02-10",
  369. enddate:'2023-02-10',
  370. state:1
  371. },
  372. {
  373. id:37,
  374. label: "商邀费用审批",
  375. date:"2023-01-12 ~ 2023-02-10",
  376. enddate:'2023-02-10',
  377. state:1
  378. },
  379. {
  380. id:38,
  381. label: "增减款项审批",
  382. date:"2023-01-12 ~ 2023-02-10",
  383. enddate:'2023-02-10',
  384. state:1
  385. }
  386. ]
  387. },
  388. {
  389. id: 9,
  390. label: "付款给供应商",
  391. panduan:"wu",
  392. children:[
  393. {
  394. id:39,
  395. label: "OP费用付款",
  396. date:"2023-01-12 ~ 2023-02-10",
  397. enddate:'2023-02-10',
  398. state:1
  399. },
  400. {
  401. id:40,
  402. label: "商邀费用付款",
  403. date:"2023-01-12 ~ 2023-02-10",
  404. enddate:'2023-02-10',
  405. state:1
  406. },
  407. {
  408. id:41,
  409. label: "增减款项付款",
  410. date:"2023-01-12 ~ 2023-02-10",
  411. enddate:'2023-02-10',
  412. state:1
  413. }
  414. ]
  415. },
  416. {
  417. id: 10,
  418. label: "开行前会"
  419. },
  420. {
  421. id: 11,
  422. label: "送机"
  423. },
  424. {
  425. id: 12,
  426. label: "数据/附件归档"
  427. },
  428. {
  429. id: 13,
  430. label: "接机"
  431. },
  432. {
  433. id: 14,
  434. label: "客户意见表"
  435. }
  436. ],
  437. educationalList:[
  438. ],
  439. outerVisible: false,
  440. innerVisible: false,
  441. //添加表单数据
  442. ruleForm: {
  443. scheduleId: '',
  444. step: '',
  445. parentStep: '',
  446. duty: '',
  447. JobContent: '',
  448. CreateUserId: '',
  449. ExpectBeginDt: '',
  450. ExpectEndDt: '',
  451. Remark: '',
  452. },
  453. //表单数据非空验明
  454. rules: {
  455. duty: [
  456. { required: true, message: '请选择员工', trigger: 'change' }
  457. ],
  458. ExpectBeginDt: [
  459. { type: 'date', required: true, message: '请选择开始日期', trigger: 'change' }
  460. ],
  461. ExpectEndDt: [
  462. { type: 'date', required: true, message: '请选择结束日期', trigger: 'change' }
  463. ],
  464. JobContent: [
  465. { required: true, message: '请输入操作名称', trigger: 'blur' },
  466. ]
  467. },
  468. //员工列
  469. employeeColumn:[],
  470. //添加参数
  471. addArgument:{},
  472. //标题名称
  473. titleName:'',
  474. stepID:''
  475. }
  476. },
  477. created(){
  478. },
  479. methods:{
  480. filter_color(val){
  481. if(val==0){
  482. return "color:red"
  483. }
  484. if(val==1){
  485. return "color:#159bfb"
  486. }
  487. if(val==2){
  488. return "color:#green"
  489. }
  490. },
  491. getControl(){
  492. var url="/api/Groups/PostSearchGrpSchedule";
  493. var that=this;
  494. that.fullscreenLoading = true;
  495. var data = JSON.stringify({
  496. "paras": "{\"PortType\":\"1\",\"SearchType\":\"1\",\"ScheduleId\":\"24\"}"
  497. });
  498. this.$axios({
  499. method: 'post',
  500. url:url,
  501. headers:{
  502. Authorization:'Bearer '+that.token,
  503. 'Content-Type':'application/json;charset=UTF-8'
  504. },
  505. data:data
  506. }).then(function(res){
  507. console.log(res)
  508. if(res.data.code==200){
  509. that.treeData=res.data.data.rootList
  510. console.log(that.treeData)
  511. console.log(res.data.data)
  512. that.ruleForm.scheduleId=res.data.data.primary.id;
  513. that.employeeColumn=res.data.data.personList;
  514. that.employeeColumn=res.data.data.personList;
  515. // that.$message({
  516. // message: res.data.msg,
  517. // type: 'success',
  518. // offset:50
  519. // });
  520. // that.fullscreenLoading = false;
  521. }else{
  522. // that.$message({
  523. // message:res.data.msg,
  524. // type: 'warning',
  525. // offset:50
  526. // });
  527. // that.fullscreenLoading = false;
  528. }
  529. })
  530. },
  531. handleClose(done) {
  532. this.$confirm('确认关闭?')
  533. .then(_ => {
  534. done();
  535. })
  536. .catch(_ => {});
  537. },
  538. addBtn(){
  539. this.titleName="添 加"
  540. this.innerVisible = true;
  541. this.ruleForm.parentStep=this.addArgument.parentStep;
  542. this.ruleForm.step=this.addArgument.step;
  543. this.ruleForm.duty="";
  544. this.ruleForm.JobContent="";
  545. this.ruleForm.ExpectBeginDt="";
  546. this.ruleForm.ExpectEndDt="";
  547. this.ruleForm.Remark="";
  548. },
  549. addfigures(val){
  550. console.log(val.childList);
  551. this.outerVisible = true;
  552. this.addArgument.parentStep=val.root,
  553. this.addArgument.step=val.root+"01",
  554. this.educationalList=val.childList;
  555. },
  556. levelAddfigures(val,index){
  557. console.log(val);
  558. console.log(index);
  559. this.outerVisible = true;
  560. this.educationalList=val.childList;
  561. this.addArgument.parentStep=60+((index+1)+"");
  562. this.addArgument.step=val.step+"1";
  563. console.log(this.addArgument)
  564. },
  565. //处理时间
  566. disposeTime(val){
  567. var date = new Date(val);
  568. var y = date.getFullYear();
  569. var m = date.getMonth() + 1;
  570. m = m < 10 ? ('0' + m) : m;
  571. var d = date.getDate();
  572. d = d < 10 ? ('0' + d) : d;
  573. let time = y + '-' + m + '-' + d;
  574. return time
  575. },
  576. //修改详情
  577. reviseInfo(){
  578. var url="/api/Groups/PostUpdateGrpScheduleDetail";
  579. var that=this;
  580. that.fullscreenLoading = true;
  581. this.$axios({
  582. method: 'post',
  583. url:url,
  584. headers:{
  585. Authorization:'Bearer '+that.token,
  586. 'Content-Type':'application/json;charset=UTF-8'
  587. },
  588. data:{
  589. id:Number(that.stepID),
  590. duty:Number(that.ruleForm.duty),
  591. stepStatus:0,
  592. jobContent:that.ruleForm.JobContent,
  593. expectBeginDt:that.disposeTime(that.ruleForm.ExpectBeginDt) +' '+ "09:00:00",
  594. expectEndDt:that.disposeTime(that.ruleForm.ExpectEndDt) +' '+ "18:00:00",
  595. remark:that.ruleForm.Remark,
  596. }
  597. }).then(function(res){
  598. console.log(res)
  599. if(res.data.code==200){
  600. that.$message({
  601. message: res.data.msg,
  602. type: 'success',
  603. offset:50
  604. });
  605. that.fullscreenLoading = false;
  606. }else{
  607. that.$message({
  608. message:res.data.msg,
  609. type: 'warning',
  610. offset:50
  611. });
  612. that.fullscreenLoading = false;
  613. }
  614. })
  615. },
  616. //新增详情
  617. addopinfo(){
  618. var url="/api/Groups/PostInsertGrpScheduleDetail";
  619. var that=this;
  620. that.fullscreenLoading = true;
  621. this.$axios({
  622. method: 'post',
  623. url:url,
  624. headers:{
  625. Authorization:'Bearer '+that.token,
  626. 'Content-Type':'application/json;charset=UTF-8'
  627. },
  628. data:{
  629. scheduleId:that.ruleForm.scheduleId,
  630. step:Number(that.ruleForm.step),
  631. parentStep:that.ruleForm.parentStep,
  632. duty:that.ruleForm.duty,
  633. jobContent:that.ruleForm.JobContent,
  634. expectBeginDt:that.disposeTime(that.ruleForm.ExpectBeginDt) +' '+ "09:00:00",
  635. expectEndDt:that.disposeTime(that.ruleForm.ExpectEndDt) +' '+ "18:00:00",
  636. createUserId:that.ruleForm.CreateUserId,
  637. remark:that.ruleForm.Remark,
  638. }
  639. }).then(function(res){
  640. console.log(res)
  641. if(res.data.code==200){
  642. that.$message({
  643. message: res.data.msg,
  644. type: 'success',
  645. offset:50
  646. });
  647. that.fullscreenLoading = false;
  648. }else{
  649. that.$message({
  650. message:res.data.msg,
  651. type: 'warning',
  652. offset:50
  653. });
  654. that.fullscreenLoading = false;
  655. }
  656. })
  657. },
  658. submitForm(formName) {
  659. this.$refs[formName].validate((valid) => {
  660. if (valid) {
  661. if(this.titleName=="添 加"){
  662. this.addopinfo();
  663. }else if(this.titleName=="修 改"){
  664. this.reviseInfo();
  665. }
  666. } else {
  667. console.log('error submit!!');
  668. return false;
  669. }
  670. });
  671. },
  672. resetForm(formName) {
  673. this.$refs[formName].resetFields();
  674. },
  675. filteryear(val){
  676. let gstime=val.expectBeginDt.split(' ')[0]
  677. return gstime;
  678. },
  679. filteryears(val){
  680. let gstime=val.expectEndDt.split(' ')[0]
  681. return gstime;
  682. },
  683. //编辑
  684. handleEdit(index, row) {
  685. console.log(index, row);
  686. this.stepID=row.step;
  687. this.titleName="修 改";
  688. this.innerVisible = true;
  689. this.ruleForm.parentStep=row.root;
  690. this.ruleForm.step=row.step;
  691. this.ruleForm.JobContent=row.jobContent;
  692. this.ruleForm.duty=row.duty;
  693. this.ruleForm.ExpectEndDt=row.expectEndDt;
  694. this.ruleForm.ExpectBeginDt=row.expectBeginDt;
  695. this.ruleForm.Remark=row.remark;
  696. },
  697. //删除
  698. handleDelete(index, row,rows) {
  699. console.log(index, row.step);
  700. var url="/api/Groups/PostDeleteGrpScheduleDetail";
  701. var that=this;
  702. that.fullscreenLoading = true;
  703. this.$axios({
  704. method: 'post',
  705. url:url,
  706. headers:{
  707. Authorization:'Bearer '+that.token,
  708. 'Content-Type':'application/json;charset=UTF-8'
  709. },
  710. data:{
  711. id:row.step,
  712. duty:that.ruleForm.CreateUserId
  713. }
  714. }).then(function(res){
  715. console.log(res)
  716. if(res.data.code==200){
  717. that.$message({
  718. message: res.data.msg,
  719. type: 'success',
  720. offset:50
  721. });
  722. rows.splice(index, 1);
  723. that.fullscreenLoading = false;
  724. }else{
  725. that.$message({
  726. message:res.data.msg,
  727. type: 'warning',
  728. offset:50
  729. });
  730. that.fullscreenLoading = false;
  731. }
  732. })
  733. }
  734. },
  735. filters:{
  736. },
  737. mounted(){
  738. this.token=JSON.parse(localStorage.getItem('userinif')).token;
  739. this.ruleForm.CreateUserId=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
  740. this.getControl()
  741. }
  742. }
  743. </script>
  744. <style>
  745. ul li{
  746. list-style: none;
  747. }
  748. .controltree-box{
  749. background-color: #fff;
  750. box-shadow: 0 0 5px #0005;
  751. border-radius: 10px;
  752. display: flex;
  753. justify-content: center;
  754. padding: 100px 0;
  755. }
  756. .controltree-ul{
  757. display: flex;
  758. flex-direction: column;
  759. }
  760. .controltree-w{
  761. display: inline-block;
  762. margin: 0 auto;
  763. }
  764. .controltree-li{
  765. display: inline-block;
  766. padding: 10px 20px;
  767. box-shadow: 0 0 5px #0005;
  768. border-radius: 5px;
  769. text-align: center;
  770. position: relative;
  771. }
  772. .controltree-li:not(:last-child){
  773. margin-bottom: 250px;
  774. }
  775. .controltree-li:not(:last-child)::after{
  776. content: "";
  777. display: inline-block;
  778. width: 1px;
  779. height: 245px;
  780. position: absolute;
  781. left: 50%;
  782. top: 44px;
  783. background-color: #F1B72C;
  784. }
  785. .controltree-li:nth-child(2n) .second-ul::before{
  786. content: "";
  787. display: inline-block;
  788. width: 115px;
  789. height: 1px;
  790. position: absolute;
  791. left: -115px;
  792. top: 20px;
  793. background-color: #F1B72C;
  794. }
  795. .controltree-li:nth-child(2n+1) .second-ul::before{
  796. content: "";
  797. display: inline-block;
  798. width: 115px;
  799. height: 1px;
  800. position: absolute;
  801. right: -115px;
  802. top: 20px;
  803. background-color: #1E5DA5;
  804. }
  805. .second-ul{
  806. width: 480px;
  807. position: absolute;
  808. top: 0px;
  809. box-shadow: 0 0 5px #0005;
  810. border-radius: 5px;
  811. }
  812. .second-li{
  813. text-align: left;
  814. position: relative;
  815. margin-bottom: 10px;
  816. }
  817. .controltree-li:nth-child(2n+1) .second-ul{
  818. flex-direction: row-reverse;
  819. color: #1E5DA5;
  820. }
  821. .controltree-li:nth-child(2n+1) .second-ul .second-ul-haed{
  822. background-color: #1E5DA5;
  823. }
  824. .controltree-li:nth-child(2n) .second-ul .second-ul-haed{
  825. background-color: #F1B72C;
  826. }
  827. .second-ul-haed{
  828. display: flex;
  829. justify-content: space-between;
  830. color: #fff;
  831. border-radius: 5px 5px 0px 0px;
  832. }
  833. .second-ul-haed>div{
  834. padding: 10px 0;
  835. }
  836. .second-ul-haed>div:nth-child(1){
  837. width: 30%;
  838. }
  839. .second-ul-haed>div:nth-child(2){
  840. border-left: 1px solid #fff;
  841. border-right:1px solid #fff ;
  842. width: 50%;
  843. }
  844. .second-ul-haed>div:nth-child(3){
  845. width: 20%;
  846. }
  847. /*.controltree-li:nth-child(2n+1) .second-ul .second-li::after{
  848. content: "";
  849. display: inline-block;
  850. width: 24px;
  851. height: 2px;
  852. position: absolute;
  853. left: 21px;
  854. top: 10px;
  855. background-color: #1E5DA5;
  856. }*/
  857. .controltree-li:nth-child(2n) .second-ul{
  858. left: 300px;
  859. color: #F1B72C;
  860. }
  861. .controltree-li:nth-child(2n+1) .second-ul{
  862. right: 300px;
  863. color: #1E5DA5;
  864. }
  865. .controltree-li:nth-child(2n){
  866. background-color: #F1B72C;
  867. color: #fff;
  868. }
  869. .controltree-li:nth-child(2n+1){
  870. background-color: #1E5DA5;
  871. color: #fff;
  872. }
  873. /*.controltree-li:nth-child(2n) .second-ul .second-li::after{
  874. content: "";
  875. display: inline-block;
  876. width: 24px;
  877. height: 2px;
  878. position: absolute;
  879. right: 21px;
  880. top: 10px;
  881. background-color: #F1B72C;
  882. }*/
  883. .second-li span{
  884. display: inline-block;
  885. width: 30%;
  886. color: #555;
  887. font-size: 17px;
  888. font-weight: 600;
  889. margin-bottom: 5px;
  890. }
  891. .li-steps-li{
  892. display: flex;
  893. align-items: center;
  894. color: #8f8383;
  895. }
  896. .li-steps-li>div{
  897. font-size: 13px;
  898. padding: 5px 0;
  899. text-align: center;
  900. height: 100%;
  901. padding: 11px 0;
  902. }
  903. .li-steps-li{
  904. border: 1px solid #f7f7f7;
  905. }
  906. .li-steps-li:not(:first-child){
  907. border-top: none;
  908. }
  909. .li-steps-li>div:not(:first-child){
  910. border-left:1px solid #f7f7f7 ;
  911. }
  912. .li-steps-li>div:nth-child(1){
  913. width: 30%;
  914. }
  915. .li-steps-li>div:nth-child(2){
  916. width: 50%;
  917. }
  918. .li-steps-li>div:nth-child(3){
  919. width: 20%;
  920. }
  921. .zanwu{
  922. font-size: 12px;
  923. color: #8f8383;
  924. width: 30%;
  925. text-align: center;
  926. padding: 5px;
  927. }
  928. .onefloors{
  929. position: relative;
  930. }
  931. .addonebtn{
  932. font-size: 14px;
  933. color: #606266;
  934. position: absolute;
  935. padding: 5px 10px;
  936. box-shadow: 0 0 5px #0005;
  937. border-radius:5px ;
  938. }
  939. .level-title{
  940. display: flex;
  941. justify-content: space-between;
  942. }
  943. .levelTwo-btn{
  944. font-size: 14px;
  945. color: #606266;
  946. padding: 5px 10px;
  947. box-shadow: 0 0 5px #0005;
  948. border-radius:5px ;
  949. }
  950. .controltree-box .el-dialog{
  951. border-radius:5px;
  952. }
  953. .controltree-box .el-dialog__body{
  954. padding-top: 10px;
  955. }
  956. .dialog-abb{
  957. text-align: right;
  958. padding-bottom: 5px;
  959. }
  960. .controltree-li:nth-child(2n+1) .addonebtn{
  961. top: -52px;
  962. right: -94px;
  963. }
  964. .controltree-li:nth-child(2n) .addonebtn{
  965. top: -52px;
  966. left: -94px;
  967. }
  968. .flx-box{
  969. display: flex;
  970. flex-wrap: wrap;
  971. justify-content: space-between;
  972. }
  973. .flx-box>.el-form-item{
  974. width: 48%;
  975. }
  976. .el-dialog{
  977. border-radius: 5px; ;
  978. }
  979. .onefloor{
  980. max-height: 520px;
  981. overflow-y: auto;
  982. }
  983. </style>