CraftDetail.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751
  1. <template>
  2. <div class="app-container">
  3. <el-radio-group v-model="tabPosition" style="margin-bottom: 30px">
  4. <el-radio-button label="craftInfo">工艺信息</el-radio-button>
  5. <el-radio-button label="deviceList">设备列表</el-radio-button>
  6. <el-radio-button label="Loto">锁定站</el-radio-button>
  7. <el-radio-button label="sopList">SOP列表</el-radio-button>
  8. </el-radio-group>
  9. <!-- 工艺信息-->
  10. <div class="craft" v-if="this.tabPosition == 'craftInfo'">
  11. <Tinymce />
  12. <!-- 富文本编辑器-->
  13. </div>
  14. <!-- 设备列表 -->
  15. <div class="device" v-if="this.tabPosition == 'deviceList'">
  16. <el-row :gutter="10" class="mb8">
  17. <el-col :span="1.5">
  18. <el-button
  19. v-if="this.tabPosition == 'deviceList'"
  20. v-no-more-click
  21. type="primary"
  22. plain
  23. icon="el-icon-plus"
  24. size="mini"
  25. @click="handleAdd"
  26. v-hasPermi="['iscs:machinery:add']"
  27. >新增
  28. </el-button>
  29. </el-col>
  30. <el-col :span="1.5">
  31. <el-button
  32. v-no-more-click
  33. type="danger"
  34. plain
  35. icon="el-icon-delete"
  36. size="mini"
  37. :disabled="multiple"
  38. @click="handleDelete"
  39. v-hasPermi="['iscs:machinery:remove']"
  40. >批量删除
  41. </el-button
  42. >
  43. </el-col>
  44. <!-- <el-col :span="1.5">
  45. <el-button
  46. v-no-more-click
  47. type="info"
  48. plain
  49. icon="el-icon-sort"
  50. size="mini"
  51. @click="toggleExpandAll"
  52. >展开/折叠
  53. </el-button>
  54. </el-col> -->
  55. <right-toolbar
  56. :showSearch.sync="showSearch"
  57. @queryTable="getList"
  58. ></right-toolbar>
  59. </el-row>
  60. <el-table
  61. v-if="refreshTable"
  62. v-loading="loading"
  63. :data="deptList"
  64. row-key="machineryId"
  65. :default-expand-all="isExpandAll"
  66. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
  67. @selection-change="handleSelectionChange"
  68. >
  69. <el-table-column type="selection" width="55" align="center"/>
  70. <el-table-column
  71. prop="machineryCode"
  72. label="设备编码"
  73. ></el-table-column>
  74. <el-table-column
  75. prop="machineryName"
  76. label="设备名称"
  77. ></el-table-column>
  78. <el-table-column
  79. prop="machineryImg"
  80. label="设备图"
  81. >
  82. <template slot-scope="scope">
  83. <img :src="scope.row.machineryImg" alt="" style="width: 50px; height: 50px;"/>
  84. </template>
  85. </el-table-column>
  86. <!-- <el-table-column-->
  87. <!-- label="设备详情"-->
  88. <!-- align="center"-->
  89. <!-- class-name="small-padding fixed-width"-->
  90. <!-- >-->
  91. <!-- <template slot-scope="scope">-->
  92. <!-- <el-button-->
  93. <!-- v-no-more-click-->
  94. <!-- size="mini"-->
  95. <!-- type="text"-->
  96. <!-- @click="handleLook(scope.row)"-->
  97. <!-- >查看-->
  98. <!-- </el-button>-->
  99. <!-- </template>-->
  100. <!-- </el-table-column>-->
  101. <el-table-column
  102. label="操作"
  103. align="center"
  104. class-name="small-padding fixed-width"
  105. >
  106. <template slot-scope="scope">
  107. <el-button
  108. v-no-more-click
  109. size="mini"
  110. type="text"
  111. icon="el-icon-edit"
  112. @click="handleUpdate(scope.row)"
  113. v-hasPermi="['iscs:machinery:edit']"
  114. >编辑
  115. </el-button>
  116. <el-button
  117. v-no-more-click
  118. size="mini"
  119. type="text"
  120. icon="el-icon-delete"
  121. @click="handleDelete(scope.row)"
  122. v-hasPermi="['iscs:machinery:remove']"
  123. >删除
  124. </el-button>
  125. </template>
  126. </el-table-column>
  127. </el-table>
  128. </div>
  129. <!-- LOTO站 -->
  130. <div class="loto">
  131. <MapData v-if="tabPosition=='Loto'" :machineryId="this.$route.query.machineryId"></MapData>
  132. </div>
  133. <!-- SOP列表 -->
  134. <div class="sopList" v-if="this.tabPosition == 'sopList'">
  135. <el-row :gutter="10" class="mb8">
  136. <el-col :span="1.5">
  137. <el-button
  138. v-no-more-click
  139. type="primary"
  140. plain
  141. icon="el-icon-plus"
  142. size="mini"
  143. @click="handleAddSopList"
  144. v-hasPermi="['iscs:machinery:add']"
  145. >新增
  146. </el-button>
  147. </el-col>
  148. <el-col :span="1.5">
  149. <el-button
  150. v-no-more-click
  151. type="danger"
  152. plain
  153. icon="el-icon-delete"
  154. size="mini"
  155. :disabled="multiple"
  156. @click="handleSopDelete"
  157. v-hasPermi="['iscs:machinery:remove']"
  158. >批量删除
  159. </el-button
  160. >
  161. </el-col>
  162. </el-row>
  163. <el-table
  164. v-if="refreshTable"
  165. v-loading="loading"
  166. :data="SopList"
  167. row-key="machineryId"
  168. :default-expand-all="isExpandAll"
  169. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
  170. @selection-change="handleSelectionSopChange"
  171. >
  172. <el-table-column type="selection" width="55" align="center"/>
  173. <el-table-column
  174. prop="sopName"
  175. label="sop名称"
  176. ></el-table-column>
  177. <el-table-column
  178. prop="machineryName"
  179. label="工作内容"
  180. ></el-table-column>
  181. <el-table-column
  182. label="操作"
  183. align="center"
  184. class-name="small-padding fixed-width"
  185. >
  186. <template slot-scope="scope">
  187. <el-button
  188. v-no-more-click
  189. size="mini"
  190. type="text"
  191. icon="el-icon-edit"
  192. @click="handleSopUpdate(scope.row)"
  193. v-hasPermi="['iscs:machinery:edit']"
  194. >编辑
  195. </el-button>
  196. <!-- <el-button
  197. v-no-more-click
  198. size="mini"
  199. type="text"
  200. icon="el-icon-plus"
  201. @click="handleAdd(scope.row)"
  202. v-hasPermi="['iscs:machinery:add']"
  203. >新增
  204. </el-button> -->
  205. <!-- v-if="scope.row.parentId != 0"-->
  206. <el-button
  207. v-no-more-click
  208. size="mini"
  209. type="text"
  210. icon="el-icon-delete"
  211. @click="handleSopDelete(scope.row)"
  212. v-hasPermi="['iscs:machinery:remove']"
  213. >删除
  214. </el-button>
  215. </template>
  216. </el-table-column>
  217. </el-table>
  218. </div>
  219. <pagination
  220. v-show="total1 > 0&&tabPosition=='deviceList'"
  221. :total="total1"
  222. :page.sync="queryParams.current"
  223. :limit.sync="queryParams.size"
  224. @pagination="getList"
  225. />
  226. <pagination
  227. v-show="total2 > 0&&tabPosition=='sopList'"
  228. :total="total2"
  229. :page.sync="queryParams.current"
  230. :limit.sync="queryParams.size"
  231. @pagination="getList"
  232. />
  233. <!-- 添加或修改设备列表对话框 -->
  234. <el-dialog :title="title" :visible.sync="open" width="460px" append-to-body>
  235. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  236. <!-- <el-form-item label="所属工艺" prop="parentId">-->
  237. <!-- <treeselect-->
  238. <!-- v-model="form.parentId"-->
  239. <!-- :options="machineryOptions"-->
  240. <!-- :normalizer="normalizer"-->
  241. <!-- placeholder="选择上级"-->
  242. <!-- />-->
  243. <!-- </el-form-item>-->
  244. <el-form-item label="设备名称" prop="machineryName">
  245. <el-input
  246. v-model="form.machineryName"
  247. placeholder="请输入设备名称"
  248. />
  249. </el-form-item>
  250. <el-row>
  251. <el-col :span="17">
  252. <el-form-item label="设备编号" prop="machineryCode">
  253. <el-input
  254. v-model="form.machineryCode"
  255. placeholder="请输入设备编号"
  256. />
  257. </el-form-item>
  258. </el-col>
  259. <el-col :span="7">
  260. <el-form-item label-width="30">
  261. <el-switch
  262. v-model="autoGenFlag"
  263. active-color="#13ce66"
  264. active-text="自动生成"
  265. @change="handleAutoGenChange(autoGenFlag)"
  266. >
  267. </el-switch>
  268. </el-form-item>
  269. </el-col>
  270. </el-row>
  271. <!-- mars岗位-->
  272. <el-form-item label="岗位" prop="workstationId">
  273. <treeselect
  274. v-model="form.workstationId"
  275. :options="formMarsOptions"
  276. :normalizer="Marsnormalizer"
  277. placeholder="请选择岗位"
  278. disabled
  279. />
  280. </el-form-item>
  281. <el-form-item label="所属电柜" prop="lotoId">
  282. <el-select
  283. style="width: 300px"
  284. v-model="form.lotoId"
  285. placeholder="请选择所属电柜"
  286. disabled
  287. >
  288. <el-option
  289. v-for="dict in LotoOptions"
  290. :key="dict.value"
  291. :label="dict.label"
  292. :value="dict.value"
  293. />
  294. </el-select>
  295. </el-form-item>
  296. <el-form-item label="设备图" prop="machineryImg">
  297. <ImageUploadSingle
  298. :limit="1"
  299. :value="form.machineryImg"
  300. :fileSize="5"
  301. @onUploaded="handleIconUplaoded"
  302. @onRemoved="handleIconRemoved"
  303. ></ImageUploadSingle>
  304. </el-form-item>
  305. </el-form>
  306. <div slot="footer" class="dialog-footer">
  307. <el-button v-no-more-click type="primary" @click="submitForm"
  308. >确 定
  309. </el-button
  310. >
  311. <el-button v-no-more-click @click="cancel">取 消</el-button>
  312. </div>
  313. </el-dialog>
  314. <!-- 添加或修改sopLise对话框 -->
  315. <el-dialog :title="titlesop" :visible.sync="openSop" width="470px" append-to-body>
  316. <el-form ref="sopform" :model="sopform" :rules="rules" label-width="100px">
  317. <el-form-item label="所属岗位" prop="workstationId" >
  318. <treeselect v-model="sopform.workstationId" :options="marsOptions" :normalizer="Marsnormalizer" placeholder="选择岗位" disabled/>
  319. </el-form-item>
  320. <el-form-item label="设备/工艺" prop="machineryId" >
  321. <treeselect v-model="sopform.machineryId" :options="machineryOptions" :normalizer="normalizer" placeholder="选择设备/工艺" disabled/>
  322. </el-form-item>
  323. <el-form-item label="SOP类型" prop="sopType">
  324. <el-select v-model="sopform.sopType" placeholder="请选择SOP类型" clearable>
  325. <el-option
  326. v-for="dict in dict.type.sop_type"
  327. :key="dict.value"
  328. :label="dict.label"
  329. :value="dict.value"
  330. />
  331. </el-select>
  332. </el-form-item>
  333. </el-form>
  334. <div slot="footer" class="dialog-footer">
  335. <el-button v-no-more-click type="primary" @click="submitSopForm">确 定</el-button>
  336. <el-button v-no-more-click @click="cancel">取 消</el-button>
  337. </div>
  338. </el-dialog>
  339. </div>
  340. </template>
  341. <script>
  342. import {
  343. listTechnology,
  344. addTechnology,
  345. updateTechnology,
  346. delTechnology,
  347. getTechnologyInfo
  348. } from '@/api/system/machinery'
  349. import Treeselect from '@riophae/vue-treeselect'
  350. import '@riophae/vue-treeselect/dist/vue-treeselect.css'
  351. import { genCode } from '@/api/system/autocode/rule'
  352. import { listMarsDept } from '@/api/system/marsdept'
  353. import { listLoto } from '@/api/mes/lotoStation/lotoStation'
  354. import MapData from '@/views/mes/dv/technology/technologyDetail/MapData.vue'
  355. import {
  356. addinsertIsMarsSop,
  357. deleteIsMarsSopByMarsSopIds,
  358. getIsMarsSopPage, selectIsMarsSopById,
  359. updateIsMarsSop
  360. } from '@/api/mes/sop/sopindex'
  361. import Tinymce from '@/components/tinymce/example/Index.vue'
  362. import { delMachinery } from '@/api/mes/dv/machinery'
  363. export default {
  364. name: 'Dept',
  365. dicts: ['sys_normal_disable','sop_type'],
  366. components: { Treeselect, MapData,Tinymce },
  367. data() {
  368. return {
  369. // 遮罩层
  370. loading: true,
  371. //自动生成编码
  372. autoGenFlag: false,
  373. tabPosition: 'craftInfo',
  374. total1:0,//设备列表
  375. total2:0,//sop列表
  376. // 非多个禁用
  377. multiple: true,
  378. // 显示搜索条件
  379. showSearch: true,
  380. // 表格树数据
  381. deptList: [],
  382. // mars树选项
  383. marsOptions: [],
  384. // 新增设备时 岗位树结构
  385. formMarsOptions:[],
  386. //工艺树
  387. machineryOptions: [],
  388. // 电柜
  389. lotoOptions: [],
  390. // 弹出层标题
  391. title: '',
  392. titlesop:'',
  393. // 是否显示弹出层
  394. open: false,
  395. openSop:false,//新增sop列表
  396. // 是否展开,默认全部展开
  397. isExpandAll: true,
  398. // 重新渲染表格状态
  399. refreshTable: true,
  400. // 查询参数
  401. queryParams: {
  402. current: 1,
  403. size: 10,
  404. machineryName: undefined,
  405. machineryCode: undefined,
  406. machineryId: undefined,
  407. },
  408. LotoOptions: [], //电柜绑定
  409. // 表单参数
  410. form: {
  411. },
  412. sopform:{
  413. },
  414. ids:null,//设备列表多选
  415. sopids:null,//sop列表多选
  416. SopList: [],//sopLisT
  417. queryParamsSop: {
  418. current: 1,
  419. size: 10,
  420. machineryId: undefined,
  421. machineryType:undefined,
  422. },
  423. machineryId:null,//
  424. // 表单校验
  425. rules: {
  426. machineryCode: [
  427. { required: true, message: '设备编码不能为空', trigger: 'blur' }
  428. ],
  429. machineryName: [
  430. { required: true, message: '设备名称不能为空', trigger: 'blur' }
  431. ],
  432. workstationId: [
  433. { required: true, message: '岗位不能为空', trigger: 'blur' }
  434. ],
  435. lotoId: [{ required: true, message: '电柜不能为空', trigger: 'blur' }]
  436. }
  437. }
  438. },
  439. watch: {
  440. // 监听 tabPosition 的变化
  441. tabPosition(newVal) {
  442. if (newVal === 'craftInformation') {
  443. // 当 tabPosition 为 "craftInformation" 时跳转
  444. this.$router.push('/technology/technologyList')
  445. }
  446. }
  447. },
  448. created() {
  449. this.getList()
  450. this.getOtherList()
  451. this.getTechnologyAllData()
  452. this.form.machineryId = this.$route.query.machineryId
  453. this.machineryId = this.$route.query.machineryId
  454. },
  455. methods: {
  456. /** 查询部门列表 */
  457. getList() {
  458. this.loading = true
  459. const data={
  460. ...this.queryParams,
  461. parentId: this.$route.query.machineryId,
  462. machineryType:'设备'
  463. }
  464. listTechnology(data).then((response) => {
  465. debugger;
  466. const filterData = response.data.records
  467. this.total1=response.data.total
  468. this.deptList = filterData
  469. this.loading = false
  470. })
  471. },
  472. // 获取sop新增选设备工艺的回显数据
  473. getTechnologyAllData(){
  474. const data={
  475. current: 1,
  476. size: -1,
  477. }
  478. listTechnology(data).then((response) => {
  479. this.machineryOptions = response.data.records
  480. this.loading = false
  481. })
  482. const data1 = {
  483. pasge: 1,
  484. size: -1
  485. }
  486. listMarsDept(data1).then((response) => {
  487. this.marsOptions = response.data.records
  488. // 下面数据是给新增设备的时候回显数据
  489. this.formMarsOptions = this.handleTree(response.data.records,"workstationId","parentId")
  490. })
  491. listLoto(data1).then((response) => {
  492. this.LotoOptions = response.data.records.map((item) => {
  493. return {
  494. value: item.lotoId,
  495. label: item.lotoName
  496. }
  497. })
  498. });
  499. },
  500. getOtherList(){
  501. this.queryParamsSop.machineryId=this.$route.query.machineryId
  502. getIsMarsSopPage(this.queryParamsSop).then(response => {
  503. debugger;
  504. this.SopList = response.data.records
  505. this.total2=response.data.total
  506. this.loading = false
  507. })
  508. },
  509. /** 转换部门数据结构 */
  510. Marsnormalizer(node) {
  511. if (node.children && !node.children.length) {
  512. delete node.children
  513. }
  514. return {
  515. id: node.workstationId,
  516. label: node.workstationName,
  517. children: node.children
  518. }
  519. },
  520. /** 转换mars设备工艺数据结构 */
  521. normalizer(node) {
  522. if (node.children && !node.children.length) {
  523. delete node.children
  524. }
  525. return {
  526. id: node.machineryId,
  527. label: node.machineryName,
  528. children: node.children
  529. }
  530. },
  531. // 取消按钮
  532. cancel() {
  533. this.open = false
  534. this.openSop=false
  535. this.reset()
  536. },
  537. // 表单重置
  538. reset() {
  539. this.form = {
  540. machineryId: undefined,
  541. parentId: undefined,
  542. machineryName: undefined,
  543. machineryCode: undefined,
  544. }
  545. this.autoGenFlag = false
  546. this.resetForm('form')
  547. this.resetForm('sopform')
  548. },
  549. //自动生成编码
  550. handleAutoGenChange(autoGenFlag) {
  551. if (autoGenFlag) {
  552. genCode('TECHNOLOGY_CODE').then((response) => {
  553. console.log(response, '设备工艺编码')
  554. this.form.machineryCode = response
  555. })
  556. } else {
  557. this.form.machineryCode = null
  558. }
  559. },
  560. //图标上传成功
  561. handleIconUplaoded(imgUrl) {
  562. this.form.machineryImg = imgUrl[0].url
  563. },
  564. // 图标移除
  565. handleIconRemoved(imgUrl) {
  566. this.form.machineryImg = null
  567. },
  568. /** 搜索按钮操作 */
  569. handleQuery() {
  570. this.getList()
  571. },
  572. /** 重置按钮操作 */
  573. resetQuery() {
  574. this.resetForm('queryForm')
  575. this.handleQuery()
  576. },
  577. /** 展开/折叠操作 */
  578. toggleExpandAll() {
  579. this.refreshTable = false
  580. this.isExpandAll = !this.isExpandAll
  581. this.$nextTick(() => {
  582. this.refreshTable = true
  583. })
  584. },
  585. callback(openType) {
  586. getTechnologyInfo(this.$route.query.machineryId).then((response) => {
  587. console.log(response, '工艺新增sop');
  588. this.sopform.workstationId = response.data.workstationId;
  589. this.sopform.machineryId = response.data.machineryId;
  590. this.form.workstationId = response.data.workstationId;
  591. this.form.lotoId = response.data.lotoId;
  592. this.form.machineryType = '设备';
  593. console.log(this.form, '工艺新增sop-id--设备的回显');
  594. // 根据 openType 打开不同的弹窗
  595. if (openType === 'device') {
  596. this.open = true;
  597. this.title = '新增设备';
  598. } else if (openType === 'sop') {
  599. this.openSop = true;
  600. this.titlesop = '新增SOP';
  601. }
  602. });
  603. },
  604. /** 新增按钮操作 */
  605. handleAdd() {
  606. this.reset();
  607. this.form.parentId = this.$route.query.machineryId;
  608. this.callback('device');
  609. },
  610. /** 新增sop按钮操作 */
  611. handleAddSopList() {
  612. this.reset();
  613. this.callback('sop');
  614. },
  615. /** 修改按钮操作 */
  616. handleUpdate(row) {
  617. this.reset()
  618. this.form.machineryType='设备'
  619. getTechnologyInfo(row.machineryId).then((response) => {
  620. this.form = response.data
  621. this.open = true
  622. this.title = '修改设备'
  623. })
  624. },
  625. handleSopUpdate(row) {
  626. this.reset()
  627. selectIsMarsSopById(row.sopId).then(response => {
  628. this.sopform = response.data
  629. this.openSop = true
  630. this.titlesop = '修改SOP'
  631. })
  632. },
  633. /** 提交按钮 */
  634. submitForm: function() {
  635. this.$refs['form'].validate((valid) => {
  636. if (valid) {
  637. if (this.form.machineryId != undefined) {
  638. updateTechnology(this.form).then((response) => {
  639. this.$modal.msgSuccess('修改成功')
  640. this.open = false
  641. this.getList()
  642. })
  643. } else {
  644. addTechnology(this.form).then((response) => {
  645. this.$modal.msgSuccess('新增成功')
  646. this.open = false
  647. this.getList()
  648. })
  649. }
  650. }
  651. })
  652. },
  653. // sop新增
  654. submitSopForm: function() {
  655. this.$refs['sopform'].validate((valid) => {
  656. if (valid) {
  657. if (this.sopform.sopId != undefined) {
  658. updateIsMarsSop(this.sopform).then(response => {
  659. this.$modal.msgSuccess('修改成功')
  660. this.openSop = false
  661. this.getOtherList()
  662. })
  663. } else {
  664. addinsertIsMarsSop(this.sopform).then(response => {
  665. this.$modal.msgSuccess('新增成功')
  666. this.openSop = false
  667. this.getOtherList()
  668. })
  669. }
  670. }
  671. })
  672. },
  673. // 多选框选中数据
  674. handleSelectionChange(selection) {
  675. this.ids = selection.map((item) => item.machineryId)
  676. this.codes = selection.map((item) => item.machineryCode)
  677. this.single = selection.length !== 1
  678. this.multiple = !selection.length
  679. },
  680. // sop列表多选
  681. handleSelectionSopChange(selection) {
  682. this.sopids = selection.map((item) => item.sopId)
  683. this.single = selection.length !== 1
  684. this.multiple = !selection.length
  685. },
  686. /** 删除按钮操作 */
  687. handleDelete(row) {
  688. const machineryIds = row.machineryId || this.ids;
  689. this.$modal.confirm('确认删除数据项?').then(function() {
  690. return delTechnology(machineryIds);
  691. }).then(() => {
  692. this.getList();
  693. this.$modal.msgSuccess("删除成功");
  694. }).catch(() => {});
  695. },
  696. handleSopDelete(row){
  697. const sopIds = row.sopId || this.sopids;
  698. this.$modal.confirm('确认删除数据项?').then(function() {
  699. return deleteIsMarsSopByMarsSopIds(sopIds);
  700. }).then(() => {
  701. this.getOtherList();
  702. this.$modal.msgSuccess("删除成功");
  703. }).catch(() => {});
  704. }
  705. }
  706. }
  707. </script>
  708. <style scoped>
  709. .app-container {
  710. width: 100%;
  711. height: 100%;
  712. }
  713. .left {
  714. width: 15%;
  715. height: 100%;
  716. margin-right: 10px;
  717. /* background: green; */
  718. }
  719. .deptTree {
  720. width: 100%;
  721. height: 90%;
  722. /* background: pink; */
  723. }
  724. .right {
  725. width: 83%;
  726. height: 100%;
  727. /* background: yellow; */
  728. }
  729. </style>