index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
  4. <el-form-item label="仓库名称" prop="fName">
  5. <el-input v-model="queryParams.fName" placeholder="请输入仓库名称" clearable size="small"
  6. @keyup.enter.native="handleQuery" />
  7. </el-form-item>
  8. <el-form-item label="状态" prop="status">
  9. <el-select v-model="queryParams.status" placeholder="仓库状态" clearable size="small">
  10. <el-option v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictLabel"
  11. :value="dict.dictValue" />
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item>
  15. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  16. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  17. </el-form-item>
  18. </el-form>
  19. <el-row :gutter="10" class="mb8">
  20. <el-col :span="1.5">
  21. <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
  22. v-hasPermi="['basicdata:warehouse:add']">新增</el-button>
  23. </el-col>
  24. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  25. </el-row>
  26. <el-table v-loading="loading" :data="deptList" row-key="fId" :default-expand-all="false" lazy
  27. :tree-props="{children: 'children', hasChildren: 'hasChildren'}" :load="getTreeLoad" ref="table">
  28. <el-table-column prop="fName" label="仓库名称" width="310"></el-table-column>
  29. <el-table-column prop="fTotalgross" label="库容(吨)" width="100"></el-table-column>
  30. <el-table-column prop="fLocation" label="库位" width="100">
  31. <template slot-scope="scope">
  32. <span v-if="scope.row.fLocation === 0">否</span>
  33. <span v-else>是</span>
  34. </template>
  35. </el-table-column>
  36. <el-table-column prop="fAddr" label="地址" width="200"></el-table-column>
  37. <el-table-column prop="fContacts" label="联系人" width="100"></el-table-column>
  38. <el-table-column prop="fTel" label="电话" width="150"></el-table-column>
  39. <el-table-column prop="fCharg" label="计费" width="50">
  40. <template slot-scope="scope">
  41. <span v-if="scope.row.fCharg === 0">否</span>
  42. <span v-else>是</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column prop="fIsBonded" label="保税" width="50">
  46. <template slot-scope="scope">
  47. <span v-if="scope.row.fIsBonded == 1">是</span>
  48. <span v-else>否</span>
  49. </template>
  50. </el-table-column>
  51. <el-table-column prop="supervise" label="监管" width="50">
  52. <template slot-scope="scope">
  53. <span v-if="scope.row.supervise === 0">否</span>
  54. <span v-else>是</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column prop="remark" label="备注" width="100"></el-table-column>
  58. <el-table-column prop="orderNum" label="排序" width="50"></el-table-column>
  59. <el-table-column prop="fStatus" label="状态" :formatter="statusFormat" width="50"></el-table-column>
  60. <el-table-column label="创建时间" align="center" prop="createTime" width="170">
  61. <template slot-scope="scope">
  62. <span>{{ parseTime(scope.row.createTime) }}</span>
  63. </template>
  64. </el-table-column>
  65. <el-table-column label="操作" align="center" width="200" fixed="right" class-name="small-padding fixed-width">
  66. <template slot-scope="scope">
  67. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
  68. v-hasPermi="['basicdata:warehouse:edit']">修改</el-button>
  69. <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
  70. v-hasPermi="['basicdata:warehouse:add']">新增</el-button>
  71. <el-button size="mini" type="text" icon="el-icon-plus" v-if="scope.row.fLocation === 1"
  72. @click="handleView(scope.row)">查看监控</el-button>
  73. <el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete"
  74. @click="handleDelete(scope.row)" v-hasPermi="['basicdata:warehouse:remove']">删除</el-button>
  75. </template>
  76. </el-table-column>
  77. </el-table>
  78. <el-dialog title="监控列表" v-dialogDrag :visible.sync="dialogVideoList" :close-on-click-modal="false">
  79. <el-table v-loading="loading" :data="list" style="width: 100%;">
  80. <el-table-column label="序号" type="index" width="50" />
  81. <el-table-column label="仓库" :width="200" prop="fWarehouseName" header-align="center" align="center"
  82. :show-overflow-tooltip="true" />
  83. <el-table-column label="库位" :width="200" prop="libraryPosition" header-align="center" align="center"
  84. :show-overflow-tooltip="true" />
  85. <el-table-column label="监控项目" :width="200" prop="projectId" header-align="center" align="center"
  86. :show-overflow-tooltip="true">
  87. <template slot-scope="scope">
  88. <span>
  89. {{ scope.row.projectId | projectIdFormat(projectIdOptions) }}
  90. </span>
  91. </template>
  92. </el-table-column>
  93. <el-table-column label="设备序列号" :width="200" prop="deviceName" header-align="center" align="center"
  94. :show-overflow-tooltip="true" />
  95. <el-table-column label="仓库" :width="200" prop="deviceSerial" header-align="center" align="center"
  96. :show-overflow-tooltip="true" />
  97. <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
  98. <template slot-scope="scope">
  99. <el-button size="mini" type="text" icon="el-icon-view" @click="rowView(scope.row)">
  100. 查看视频
  101. </el-button>
  102. </template>
  103. </el-table-column>
  104. </el-table>
  105. </el-dialog>
  106. <el-dialog title="查看监控" v-dialogDrag :visible.sync="dialogVideo" :close-on-click-modal="false" @closed="videoClose">
  107. <div style="width:100%; height:80vh;">
  108. <iframe v-if="dialogVideo" :src="iframeSrc" width="100%" height="100%" frameborder="0" scrolling="no">
  109. </iframe>
  110. </div>
  111. </el-dialog>
  112. <!-- 添加或修改仓库对话框 -->
  113. <el-dialog v-dialogDrag :fullscreen="dialogFull" :title="title" :visible.sync="open" :close-on-click-modal="false"
  114. width="70%" append-to-body>
  115. <template slot="title">
  116. <div class="avue-crud__dialog__header">
  117. <span class="el-dialog__title">
  118. <span
  119. style="display:inline-block;width:3px;height:20px;margin-right:5px; float: left;margin-top:2px"></span>
  120. 添加仓库
  121. </span>
  122. <div class="avue-crud__dialog__menu enlarge" @click="full">
  123. <i
  124. style="cursor: pointer;display: block;width:12px;height:12px;border:1px solid #909399;border-top:3px solid #909399;margin-top: -3px;"></i>
  125. </div>
  126. </div>
  127. </template>
  128. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  129. <el-row>
  130. <el-col :span="8" v-if="form.parentId !== 0">
  131. <el-form-item label="上级仓库" prop="parentId">
  132. <treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer"
  133. placeholder="选择上级仓库" />
  134. </el-form-item>
  135. </el-col>
  136. </el-row>
  137. <el-row>
  138. <el-col :span="8">
  139. <el-form-item label="仓库编号" prop="fNo">
  140. <el-input v-model="form.fNo" placeholder="请输入仓库编号" />
  141. </el-form-item>
  142. </el-col>
  143. <el-col :span="8">
  144. <el-form-item label="仓库名称" prop="fName">
  145. <el-input v-model="form.fName" placeholder="请输入仓库名称" @change="nameChange" />
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="8">
  149. <el-form-item label="是否为库位" prop="fLocation " label-width="82px">
  150. <el-select v-model="form.fLocation" style="width:100%">
  151. <el-option label="是" value="1" />
  152. <el-option label="否" value="0" />
  153. </el-select>
  154. </el-form-item>
  155. </el-col>
  156. </el-row>
  157. <el-row>
  158. <el-col :span="8">
  159. <el-form-item label="显示排序" prop="orderNum">
  160. <el-input-number v-model="form.orderNum" style="width:100%" controls-position="right" :min="0" />
  161. </el-form-item>
  162. </el-col>
  163. <el-col :span="8">
  164. <el-form-item label="地址" prop="fAddr">
  165. <el-input v-model="form.fAddr" placeholder="请输入地址" />
  166. </el-form-item>
  167. </el-col>
  168. <!-- </el-row>-->
  169. <!-- <el-row>-->
  170. <el-col :span="8">
  171. <el-form-item label="联系人" prop="fContacts">
  172. <el-input v-model="form.fContacts" placeholder="请输入联系人" />
  173. </el-form-item>
  174. </el-col>
  175. <el-col :span="8">
  176. <el-form-item label="电话" prop="fTel">
  177. <el-input v-model="form.fTel" placeholder="请输入电话"
  178. oninput='this.value=this.value.replace(/[^\-?\d]/g,"")' />
  179. </el-form-item>
  180. </el-col>
  181. <el-col :span="8">
  182. <el-form-item label="是否计费" prop="fCharg">
  183. <el-select v-model="form.fCharg" style="width: 100%">
  184. <el-option label="是" value="1" />
  185. <el-option label="否" value="0" />
  186. </el-select>
  187. </el-form-item>
  188. </el-col>
  189. <el-col :span="8">
  190. <el-form-item v-if="form.fLocation === '1'" label="库容(吨)" prop="fTotalgross">
  191. <el-input v-model="form.fTotalgross" placeholder="请输入库容(吨位)" />
  192. </el-form-item>
  193. </el-col>
  194. <el-col :span="8">
  195. <el-form-item label="状态">
  196. <el-radio-group v-model="form.fStatus">
  197. <el-radio v-for="dict in statusOptions" :key="dict.dictValue" :label="dict.dictValue">{{dict.dictLabel}}
  198. </el-radio>
  199. </el-radio-group>
  200. </el-form-item>
  201. </el-col>
  202. </el-row>
  203. <el-row>
  204. <el-col :span="8">
  205. <el-form-item label="是否保税">
  206. <el-select v-model="form.fIsBonded" style="width: 100%">
  207. <el-option label="是" value="1" />
  208. <el-option label="否" value="0" />
  209. </el-select>
  210. </el-form-item>
  211. </el-col>
  212. <el-col :span="8">
  213. <el-form-item label="简称" prop="fCname">
  214. <el-input v-model="form.fCname" placeholder="请输入简称"></el-input>
  215. </el-form-item>
  216. </el-col>
  217. <el-col :span="8">
  218. <el-form-item label="是否监管库" prop="supervise" label-width="82px">
  219. <el-select v-model="form.supervise" style="width: 100%">
  220. <el-option label="是" :value="1" />
  221. <el-option label="否" :value="0" />
  222. </el-select>
  223. </el-form-item>
  224. </el-col>
  225. </el-row>
  226. <!--<el-form-item label="状态,默认 T ,正常T 停用F 下拉选择">
  227. <el-radio-group v-model="form.fStatus">
  228. <el-radio label="1">请选择字典生成</el-radio>
  229. </el-radio-group>
  230. </el-form-item>-->
  231. <!--<el-form-item label="删除状态" prop="delFlag">
  232. <el-input v-model="form.delFlag" placeholder="请输入删除状态" />
  233. </el-form-item>-->
  234. <el-form-item label="备注" prop="remark">
  235. <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
  236. </el-form-item>
  237. </el-form>
  238. <up-load :relevantAttachments="relevantAttachments" :createBy="username"></up-load>
  239. <div slot="footer" class="dialog-footer">
  240. <el-button type="primary" @click="submitForm">确 定</el-button>
  241. <el-button @click="cancel">取 消</el-button>
  242. </div>
  243. </el-dialog>
  244. </div>
  245. </template>
  246. <script>
  247. import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild, lazyListDept } from "@/api/basicdata/dept";
  248. import { list } from "@/api/monitor/monitorList";
  249. import Treeselect from "@riophae/vue-treeselect";
  250. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  251. import Vue from 'vue'
  252. import upLoad from "@/views/Warehousing/components/upLoad";
  253. import Cookies from "js-cookie";
  254. import Axios from "axios";
  255. Vue.directive('dialogDrag', {
  256. bind(el, binding, vnode, oldVnode) {
  257. const dialogHeaderEl = el.querySelector('.el-dialog__header')
  258. const dragDom = el.querySelector('.el-dialog')
  259. const enlarge = el.querySelector('.enlarge')
  260. dialogHeaderEl.style.cursor = 'move'
  261. // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
  262. const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
  263. if (enlarge) {
  264. enlarge.onclick = (e) => {
  265. dragDom.style.top = '0px'
  266. dragDom.style.left = '0px'
  267. }
  268. }
  269. dialogHeaderEl.onmousedown = (e) => {
  270. // 鼠标按下,计算当前元素距离可视区的距离
  271. const disX = e.clientX - dialogHeaderEl.offsetLeft
  272. const disY = e.clientY - dialogHeaderEl.offsetTop
  273. // 获取到的值带px 正则匹配替换
  274. let styL, styT
  275. // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
  276. if (sty.left.includes('%')) {
  277. styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
  278. styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
  279. } else {
  280. styL = +sty.left.replace(/\px/g, '')
  281. styT = +sty.top.replace(/\px/g, '')
  282. }
  283. document.onmousemove = function (e) {
  284. // 通过事件委托,计算移动的距离
  285. const l = e.clientX - disX
  286. const t = e.clientY - disY
  287. // 移动当前元素
  288. if ((t + styT) >= 0) {
  289. dragDom.style.top = `${t + styT}px`
  290. }
  291. dragDom.style.left = `${l + styL}px`
  292. // 将此时的位置传出去
  293. // binding.value({x:e.pageX,y:e.pageY})
  294. }
  295. document.onmouseup = function (e) {
  296. document.onmousemove = null
  297. document.onmouseup = null
  298. }
  299. }
  300. }
  301. })
  302. export default {
  303. name: "Dept",
  304. components: {
  305. Treeselect,
  306. upLoad,
  307. },
  308. data() {
  309. return {
  310. total: 0,
  311. // 表格数据
  312. list: [],
  313. dialogVideoList: false,
  314. dialogVideo: false,
  315. //全屏放大
  316. dialogFull: false,
  317. // 遮罩层
  318. loading: true,
  319. // 显示搜索条件
  320. showSearch: true,
  321. // 表格树数据
  322. deptList: [],
  323. maps: [],
  324. // 仓库树选项
  325. deptOptions: [],
  326. // 弹出层标题
  327. title: "",
  328. // 是否显示弹出层
  329. open: false,
  330. // 状态数据字典
  331. statusOptions: [],
  332. // 查询参数
  333. queryParams: {
  334. fName: undefined,
  335. status: undefined
  336. },
  337. // 表单参数
  338. form: {
  339. fLocation: 0
  340. },
  341. // 表单校验
  342. rules: {
  343. fNo: [
  344. { required: true, message: "编号不能为空", trigger: "blur" }
  345. ],
  346. fAddr: [
  347. { required: true, message: "地址不能为空", trigger: "blur" }
  348. ],
  349. // fTotalgross: [
  350. // { required: true, message: "库容不能为空", trigger: "blur" }
  351. // ],
  352. parentId: [
  353. { required: true, message: "上级仓库不能为空", trigger: "blur" }
  354. ],
  355. fName: [
  356. { required: true, message: "仓库名称不能为空", trigger: "blur" }
  357. ],
  358. fCname: [
  359. { required: true, message: " ", trigger: "blur" }
  360. ],
  361. orderNum: [
  362. { required: true, message: "显示排序不能为空", trigger: "blur" }
  363. ],
  364. phone: [
  365. {
  366. pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
  367. message: "请输入正确的手机号码",
  368. trigger: "blur"
  369. }
  370. ]
  371. },
  372. relevantAttachments: [],
  373. username: null,
  374. projectIdOptions:[],
  375. };
  376. },
  377. created() {
  378. this.getList();
  379. this.getDicts("sys_normal_disable").then(response => {
  380. this.statusOptions = response.data;
  381. });
  382. this.getDicts("monitor_project").then((response) => {
  383. this.projectIdOptions = response.data;
  384. });
  385. this.username = Cookies.get("userName");
  386. },
  387. filters: {
  388. projectIdFormat(row, list) {
  389. let name = ""
  390. list.map((e) => {
  391. if (row == e.dictValue) {
  392. name = e.dictLabel;
  393. }
  394. });
  395. return name;
  396. }
  397. },
  398. methods: {
  399. handleView(row) {
  400. this.dialogVideoList = true;
  401. this.loading = true;
  402. let data = {
  403. fWarehouseId: row.parentId,
  404. libraryPositionId: row.fId
  405. }
  406. list(data).then(response => {
  407. this.list = response.rows;
  408. this.total = response.total;
  409. this.loading = false;
  410. });
  411. },
  412. rowView(row) {
  413. Axios.post("/prod-api/api/LiveBroadcast/getAccessToken").then(res => {
  414. Axios.post(`/prod-api/api/LiveBroadcast/getToken?productCode=1640070936703286&token=${res.data.data.access_token}`).then(res2 => {
  415. console.log(res2)
  416. Axios({
  417. method: 'POST',
  418. url: '/prod-api/api/LiveBroadcast/videoWeb',
  419. params: {
  420. deviceSerial: row.deviceSerial,
  421. projectId: row.projectId,
  422. channelNo: row.code,
  423. token: res.data.data.access_token,
  424. Authorization: res2.data.data.data.Authorization
  425. }
  426. })
  427. .then(response => {
  428. this.dialogVideo = true
  429. this.iframeSrc = response.data.data.data.previewUrl
  430. this.start()
  431. });
  432. })
  433. })
  434. },
  435. videoClose() {
  436. this.iframeSrc = this.$options.data().iframeSrc;
  437. this.end()
  438. },
  439. start() {
  440. // 将定时器名字赋值到变量中
  441. this.timer = setTimeout(() => {
  442. this.dialogVideo = false;
  443. }, 60000);
  444. },
  445. end() {
  446. clearInterval(this.timer);
  447. this.timer = null
  448. },
  449. //全屏放大
  450. full() {
  451. this.dialogFull = !this.dialogFull
  452. },
  453. /** 查询仓库列表 */
  454. getList() {
  455. this.loading = true;
  456. lazyListDept(this.queryParams).then(res => {
  457. this.deptList = res.data
  458. this.loading = false
  459. })
  460. // listDept(this.queryParams).then(response => {
  461. // this.deptList = this.handleTree(response.data, "fId");
  462. // this.loading = false;
  463. // });
  464. },
  465. getTreeLoad(tree, treeNode, resolve) {
  466. lazyListDept({ parentId: tree.fId }).then(res => {
  467. resolve(res.data)
  468. })
  469. },
  470. /** 转换仓库数据结构 */
  471. normalizer(node) {
  472. if (node.children && !node.children.length) {
  473. delete node.children;
  474. }
  475. return {
  476. id: node.fId,
  477. label: node.fName,
  478. children: node.children
  479. };
  480. },
  481. // 字典状态字典翻译
  482. statusFormat(row, column) {
  483. return this.selectDictLabel(this.statusOptions, row.fStatus);
  484. },
  485. // 取消按钮
  486. cancel() {
  487. this.open = false;
  488. this.reset();
  489. },
  490. // 表单重置
  491. reset() {
  492. this.form = {
  493. fId: undefined,
  494. parentId: undefined,
  495. fName: undefined,
  496. orderNum: undefined,
  497. leader: undefined,
  498. phone: undefined,
  499. email: undefined,
  500. status: "0",
  501. fLocation: '0'
  502. };
  503. this.relevantAttachments = []
  504. this.resetForm("form");
  505. },
  506. /** 搜索按钮操作 */
  507. handleQuery() {
  508. this.getList();
  509. },
  510. /** 重置按钮操作 */
  511. resetQuery() {
  512. this.resetForm("queryForm");
  513. this.handleQuery();
  514. },
  515. /** 新增按钮操作 */
  516. handleAdd(row) {
  517. this.reset();
  518. if (row != undefined) {
  519. this.form.parentId = row.fId;
  520. }
  521. this.$set(this.form, 'fStatus', '0')
  522. this.$set(this.form, 'supervise', 0)
  523. // this.form.fStatus = '0'
  524. this.open = true;
  525. this.title = "添加仓库";
  526. listDept().then(response => {
  527. this.deptOptions = this.handleTree(response.data, "fId");
  528. });
  529. },
  530. /** 修改按钮操作 */
  531. handleUpdate(row) {
  532. this.reset();
  533. getDept(row.fId).then(response => {
  534. this.form = response.data;
  535. this.form.fLocation = this.form.fLocation + ''
  536. this.form.fCharg = this.form.fCharg + ''
  537. this.relevantAttachments = this.form.annexList ? this.form.annexList : [];
  538. this.open = true;
  539. this.title = "修改仓库";
  540. });
  541. listDeptExcludeChild(row.fId).then(response => {
  542. this.deptOptions = this.handleTree(response.data, "fId");
  543. });
  544. },
  545. /** 提交按钮 */
  546. submitForm: function () {
  547. this.$refs["form"].validate(valid => {
  548. if (valid) {
  549. if (this.form.fId != undefined) {
  550. console.log(this.relevantAttachments)
  551. this.form.annexList = this.relevantAttachments
  552. updateDept(this.form).then(response => {
  553. this.msgSuccess("修改成功");
  554. this.open = false;
  555. this.getList();
  556. });
  557. } else {
  558. this.form.annexList = this.relevantAttachments
  559. addDept(this.form).then(response => {
  560. this.msgSuccess("新增成功");
  561. this.open = false;
  562. this.getList();
  563. });
  564. }
  565. }
  566. });
  567. },
  568. /** 删除按钮操作 */
  569. handleDelete(row) {
  570. this.$confirm('是否确认删除名称为"' + row.fName + '"的数据项?', "警告", {
  571. confirmButtonText: "确定",
  572. cancelButtonText: "取消",
  573. type: "warning"
  574. }).then(function () {
  575. return delDept(row.fId);
  576. }).then(() => {
  577. // this.getList();
  578. location.reload();
  579. this.msgSuccess("删除成功");
  580. })
  581. },
  582. nameChange() {
  583. this.$set(this.form, 'fCname', this.form.fName)
  584. },
  585. }
  586. };
  587. </script>
  588. <style lang="scss">
  589. .avue-crud__dialog__header {
  590. display: -webkit-box;
  591. display: -ms-flexbox;
  592. display: flex;
  593. -webkit-box-align: center;
  594. -ms-flex-align: center;
  595. align-items: center;
  596. -webkit-box-pack: justify;
  597. -ms-flex-pack: justify;
  598. justify-content: space-between;
  599. }
  600. .el-dialog__title {
  601. color: rgba(0, 0, 0, .85);
  602. font-weight: 500;
  603. word-wrap: break-word;
  604. }
  605. .avue-crud__dialog__menu {
  606. padding-right: 20px;
  607. float: left;
  608. }
  609. .avue-crud__dialog__menu i {
  610. color: #909399;
  611. font-size: 15px;
  612. }
  613. .el-icon-full-screen {
  614. cursor: pointer;
  615. }
  616. .el-icon-full-screen:before {
  617. content: "\e719";
  618. }
  619. </style>
  620. <style lang="scss" scoped>
  621. .tabSetting {
  622. display: flex;
  623. justify-content: flex-end;
  624. }
  625. .listStyle {
  626. display: flex;
  627. border-top: 1px solid #dcdfe6;
  628. border-left: 1px solid #dcdfe6;
  629. border-right: 1px solid #dcdfe6;
  630. }
  631. .listStyle:last-child {
  632. border-bottom: 1px solid #dcdfe6;
  633. }
  634. .progress {
  635. display: flex;
  636. align-items: center;
  637. padding: 2px;
  638. background-color: rgba(0, 0, 0, 0.05);
  639. height: 100%;
  640. }
  641. </style>