addressManager.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. <template>
  2. <div class="m-container">
  3. <h2>
  4. <div class="squrt"></div>
  5. 教学点管理
  6. </h2>
  7. <div class="m-core">
  8. <div
  9. @click="openTeaching('create')"
  10. v-permission="'school/add'"
  11. class="newBand"
  12. >
  13. 新建
  14. </div>
  15. <save-form
  16. :inline="true"
  17. class="searchForm"
  18. @submit="search"
  19. :model="searchForm"
  20. >
  21. <el-form-item>
  22. <el-input
  23. type="text"
  24. clearable
  25. v-model.trim="searchForm.search"
  26. placeholder="教学点名称"
  27. ></el-input>
  28. </el-form-item>
  29. <el-form-item>
  30. <el-select
  31. v-model.trim="searchForm.organId"
  32. clearable
  33. filterable
  34. placeholder="请选择分部"
  35. >
  36. <el-option
  37. v-for="item in selects.branchs"
  38. :key="item.id"
  39. :label="item.name"
  40. :value="item.id"
  41. ></el-option>
  42. </el-select>
  43. </el-form-item>
  44. <el-form-item>
  45. <el-button native-type="submit" type="danger">搜索</el-button>
  46. </el-form-item>
  47. </save-form>
  48. <!-- 列表 -->
  49. <div class="tableWrap">
  50. <el-table
  51. :data="tableList"
  52. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  53. >
  54. <el-table-column align="center" width="55" prop="id" label="编号">
  55. </el-table-column>
  56. <el-table-column align="center" prop="name" label="教学点名称">
  57. </el-table-column>
  58. <el-table-column align="center" prop="organName" label="所属分部">
  59. </el-table-column>
  60. <el-table-column
  61. align="center"
  62. label="教学点来源"
  63. :formatter="filterOrgan"
  64. width="120px"
  65. >
  66. <!-- <template slot-scope="scope">
  67. {{ scope.row.cooperationOrganId ? scope.row.cooperationOrganId : '租赁' }}
  68. </template> -->
  69. </el-table-column>
  70. <el-table-column align="center" width="120px" label="租赁费用">
  71. <template slot-scope="scope">
  72. {{ scope.row.cooperationOrganId ? "免费" : scope.row.remark }}
  73. </template>
  74. </el-table-column>
  75. <el-table-column align="center" label="上课地点详情">
  76. <template slot-scope="scope">
  77. {{ scope.row.address.split(",").join("") }}
  78. </template>
  79. </el-table-column>
  80. <el-table-column align="center" prop="delFlag" label="状态">
  81. <template slot-scope="scope">
  82. {{ scope.row.delFlag == 2 ? "停用" : "启用" }}
  83. </template>
  84. </el-table-column>
  85. <!-- <el-table-column align='center'
  86. label="课酬补贴">
  87. <template slot-scope="scope">
  88. {{ scope.row.subsidy ? scope.row.subsidy : '无' }}
  89. </template>
  90. </el-table-column> -->
  91. <el-table-column align="center" label="操作">
  92. <template slot-scope="scope">
  93. <el-button
  94. @click="openTeaching('update', scope.row)"
  95. v-permission="'school/update'"
  96. type="text"
  97. >修改</el-button
  98. >
  99. <el-button
  100. v-if="scope.row.delFlag == 0"
  101. v-permission="'school/update'"
  102. @click="onUpdateSubmit(scope.row, 2)"
  103. type="text"
  104. >停用</el-button
  105. >
  106. <el-button
  107. v-if="scope.row.delFlag == 2"
  108. v-permission="'school/update'"
  109. @click="onUpdateSubmit(scope.row, 0)"
  110. type="text"
  111. >启用</el-button
  112. >
  113. <el-button
  114. @click="onUpdateSubmit(scope.row, 1)"
  115. v-permission="'school/update'"
  116. type="text"
  117. >删除</el-button
  118. >
  119. </template>
  120. </el-table-column>
  121. </el-table>
  122. <pagination
  123. sync
  124. :total.sync="pageInfo.total"
  125. :page.sync="pageInfo.page"
  126. :limit.sync="pageInfo.limit"
  127. :page-sizes="pageInfo.page_size"
  128. @pagination="getList"
  129. />
  130. </div>
  131. </div>
  132. <el-dialog
  133. :title="formTitle[formActionTitle]"
  134. :visible.sync="teachingStatus"
  135. @close="onFormClose('ruleForm')"
  136. width="500px"
  137. >
  138. <el-form :model="form" :rules="rules" ref="ruleForm">
  139. <el-form-item
  140. label="教学点名称"
  141. prop="name"
  142. :label-width="formLabelWidth"
  143. >
  144. <el-input v-model.trim="form.name" autocomplete="off"></el-input>
  145. </el-form-item>
  146. <el-form-item
  147. label="教学点来源"
  148. prop="source"
  149. :label-width="formLabelWidth"
  150. >
  151. <template v-if="formActionTitle == 'update'">
  152. <el-select
  153. v-model.trim="form.source"
  154. style="width: 100% !important"
  155. filterable
  156. clearable
  157. disabled
  158. >
  159. <el-option label="合作单位" value="1"></el-option>
  160. <el-option label="租赁" value="2"></el-option>
  161. </el-select>
  162. </template>
  163. <template v-else>
  164. <el-select
  165. v-model.trim="form.source"
  166. filterable
  167. style="width: 100% !important"
  168. clearable
  169. >
  170. <el-option label="合作单位" value="1"></el-option>
  171. <el-option label="租赁" value="2"></el-option>
  172. </el-select>
  173. </template>
  174. </el-form-item>
  175. <el-form-item
  176. v-if="form.source == 1"
  177. prop="cooperationOrganId"
  178. label="合作单位"
  179. :label-width="formLabelWidth"
  180. >
  181. <el-select
  182. v-model.trim="form.cooperationOrganId"
  183. filterable
  184. style="width: 100% !important"
  185. clearable
  186. @change="onCooperationChange"
  187. >
  188. <el-option
  189. v-for="item in cooperationList"
  190. :key="item.value"
  191. :label="item.label"
  192. :value="item.value"
  193. ></el-option>
  194. </el-select>
  195. </el-form-item>
  196. <el-form-item
  197. v-if="form.source == 2"
  198. prop="remark"
  199. label="租赁费用"
  200. :label-width="formLabelWidth"
  201. >
  202. <el-input v-model.trim="form.remark" type="number" autocomplete="off"></el-input>
  203. </el-form-item>
  204. <el-form-item
  205. v-if="form.source == 2"
  206. prop="organId"
  207. label="所属分部"
  208. :label-width="formLabelWidth"
  209. >
  210. <el-select
  211. v-model.trim="form.organId"
  212. clearable
  213. style="width: 100% !important"
  214. filterable
  215. >
  216. <el-option
  217. v-for="item in selects.branchs"
  218. :key="item.id"
  219. :label="item.name"
  220. :value="item.id"
  221. ></el-option>
  222. </el-select>
  223. </el-form-item>
  224. <el-form-item
  225. prop="address"
  226. :show-message="addressMessage"
  227. label="上课地点"
  228. :label-width="formLabelWidth"
  229. >
  230. <el-input
  231. class="text-address"
  232. v-model.trim="form.address"
  233. :disabled="true"
  234. >
  235. <el-button
  236. slot="append"
  237. @click="addMap"
  238. type="primary"
  239. icon="el-icon-plus"
  240. >选择</el-button
  241. >
  242. </el-input>
  243. </el-form-item>
  244. <el-form-item
  245. label="课酬补贴"
  246. prop="subsidy"
  247. :label-width="formLabelWidth"
  248. >
  249. <el-input
  250. v-model.trim.number="form.subsidy"
  251. type="number"
  252. autocomplete="off"
  253. ></el-input>
  254. </el-form-item>
  255. </el-form>
  256. <span slot="footer" class="dialog-footer">
  257. <el-button @click="onTeachingCancel('ruleForm')">取 消</el-button>
  258. <el-button type="primary" @click="onTeachingSubmit('ruleForm')"
  259. >确 定</el-button
  260. >
  261. </span>
  262. </el-dialog>
  263. <el-dialog
  264. :close-on-click-modal="false"
  265. title="选择地图"
  266. custom-class="map-container"
  267. :visible.sync="mapStatus"
  268. width="800px"
  269. >
  270. <div style="padding: 0 20px">
  271. <el-alert
  272. style="margin: 10px 0"
  273. title="选中地点:"
  274. :closable="false"
  275. type="info"
  276. :description="addressDetail.address"
  277. >
  278. </el-alert>
  279. <el-amap-search-box
  280. class="search-box"
  281. value="searchValue"
  282. :search-option="searchOption"
  283. :on-search-result="onSearchResult"
  284. ></el-amap-search-box>
  285. <el-amap
  286. :zoom="zoom"
  287. :plugin="plugin"
  288. :center="center"
  289. :events="events"
  290. >
  291. <el-amap-marker
  292. :events="markerEvents()"
  293. v-for="(marker, index) in markers"
  294. :key="index"
  295. :position="marker"
  296. ></el-amap-marker>
  297. </el-amap>
  298. </div>
  299. <span slot="footer" class="dialog-footer">
  300. <el-button @click="mapStatus = false">取 消</el-button>
  301. <el-button type="primary" @click="setAddrss">确 定</el-button>
  302. </span>
  303. </el-dialog>
  304. </div>
  305. </template>
  306. <script>
  307. import pagination from "@/components/Pagination/index";
  308. // 地图
  309. (function () {
  310. let func = EventTarget.prototype.addEventListener;
  311. let supportsPassive = false;
  312. try {
  313. let opts = Object.defineProperty({}, "passive", {
  314. get: function () {
  315. supportsPassive = true;
  316. },
  317. });
  318. document.addEventListener("testPassive", null, opts);
  319. document.removeEventListener("testPassive", null, opts);
  320. } catch (e) {}
  321. EventTarget.prototype.addEventListener = function (type, fn, capture) {
  322. this.func = func;
  323. capture = capture instanceof Object ? capture : {};
  324. capture.passive = supportsPassive;
  325. this.func(type, fn, capture);
  326. };
  327. })();
  328. import {
  329. schoolQueryPage,
  330. schoolAdd,
  331. schoolUpdate,
  332. queryByOrganId,
  333. schoolDel,
  334. } from "@/api/systemManage";
  335. import { getEmployeeOrgan } from "@/api/buildTeam";
  336. import store from "@/store";
  337. import VueAMap from "vue-amap";
  338. // Vue.use(VueAMap)
  339. VueAMap.initAMapApiLoader({
  340. key: "b1e6ac2eb28902ce91a490edf194e000",
  341. plugin: ["AMap.Geolocation", "AMap.PlaceSearch", "AMap.Geocoder"],
  342. v: "1.4.4",
  343. });
  344. export default {
  345. name: "addressManager",
  346. components: { pagination },
  347. data() {
  348. let self = this;
  349. return {
  350. searchForm: {
  351. search: null,
  352. organId: null,
  353. },
  354. searchLsit: [],
  355. tableList: [],
  356. pageInfo: {
  357. // 分页规则
  358. limit: 10, // 限制显示条数
  359. page: 1, // 当前页
  360. total: 0, // 总条数
  361. page_size: [10, 20, 40, 50], // 选择限制显示条数
  362. },
  363. formActionTitle: "create",
  364. formTitle: {
  365. create: "添加教学点",
  366. update: "修改教学点",
  367. },
  368. teachingStatus: false, // 添加教学点
  369. formLabelWidth: "100px",
  370. addressDetail: {},
  371. form: {
  372. name: null, // 教学点名称
  373. source: null, // 来源
  374. cooperationOrganId: null, // 合作单位
  375. remark: null, // 费用
  376. address: null, // 上课地点
  377. subsidy: null, // 课酬补贴
  378. organId: null, // 分部编号
  379. },
  380. selectOrganId: null, // 选中的分部编号
  381. rules: {
  382. name: [
  383. { required: true, message: "请输入教学点名称", trigger: "blur" },
  384. ],
  385. source: [
  386. { required: true, message: "请选择教学点来源", trigger: "change" },
  387. ],
  388. remark: [{ required: true, message: "请输入租赁费用", trigger: "blur" }],
  389. address: [
  390. { required: true, message: "请选择上课地点", trigger: "blur" },
  391. ],
  392. cooperationOrganId: [
  393. { required: true, message: "请选择合作单位", trigger: "change" },
  394. ],
  395. organId: [
  396. { required: true, message: "请选择所属分部", trigger: "change" },
  397. ],
  398. subsidy: [
  399. { type: "number", message: "课酬补贴只能为数字", trigger: "blur" },
  400. ],
  401. },
  402. events: {
  403. init(o) {},
  404. zoomchange: (e) => {
  405. console.log(e);
  406. },
  407. zoomend: (e) => {
  408. //获取当前缩放zoom值
  409. console.log(this.$refs.map.$$getInstance().getZoom());
  410. console.log(e);
  411. },
  412. click: (e) => {
  413. this.getpoient(e);
  414. },
  415. },
  416. addressMessage: true,
  417. mapStatus: false,
  418. zoom: 16,
  419. center: [114.34371, 30.55939],
  420. markers: [],
  421. plugin: [],
  422. searchOption: {
  423. city: "",
  424. citylimit: true,
  425. pageSize: 1, // 单页显示结果条数
  426. pageIndex: 1, // 页码
  427. autoFitView: true, // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
  428. },
  429. cooperationList: [], // 合作单位列表
  430. searchValue: "测试",
  431. activeAddress: {},
  432. };
  433. },
  434. mounted() {
  435. this.getList();
  436. this.getBreachList();
  437. },
  438. methods: {
  439. onTeachingSubmit(formName) {
  440. // 添加数据
  441. this.$refs[formName].validate((valid) => {
  442. if (valid) {
  443. // if(this.form.source == 1) { // 判断是租赁还是合作单位
  444. // this.form.organId = this.selectOrganId
  445. // }
  446. if (this.formActionTitle == "create") {
  447. schoolAdd(this.form).then((res) => {
  448. if (res.code == 200) {
  449. this.$message.success("添加成功");
  450. this.teachingStatus = false;
  451. this.getList();
  452. } else {
  453. this.$message.error(res.msg);
  454. }
  455. });
  456. } else if (this.formActionTitle == "update") {
  457. schoolUpdate(this.form).then((res) => {
  458. if (res.code == 200) {
  459. this.$message.success("修改成功");
  460. this.teachingStatus = false;
  461. this.getList();
  462. } else {
  463. this.$message.error(res.msg);
  464. }
  465. });
  466. }
  467. } else {
  468. return false;
  469. }
  470. });
  471. },
  472. onTeachingCancel(formName) {
  473. this.teachingStatus = false;
  474. this.$refs[formName].clearValidate();
  475. },
  476. addMap() {
  477. //
  478. this.mapStatus = true;
  479. // let poi = this.addressDetail.poi
  480. // let address = this.addressDetail.address
  481. this.addressDetail.address = this.form.address
  482. this.addressDetail.poi = this.form.longitudeLatitude
  483. let poi = this.form.longitudeLatitude;
  484. let address = this.form.address;
  485. // 获取经纬度
  486. if (poi) {
  487. this.markers = [];
  488. this.center = [poi.split(",")[0], poi.split(",")[1]];
  489. this.markers.push([poi.split(",")[0], poi.split(",")[1]]);
  490. } else if (address && poi == "") {
  491. let that = this;
  492. //构造地点查询类
  493. let placeSearch = new AMap.PlaceSearch({
  494. pageSize: 1, // 单页显示结果条数
  495. pageIndex: 1, // 页码
  496. });
  497. //关键字查询
  498. placeSearch.search(address, function (status, result) {
  499. if (status === "complete") {
  500. let pois = result.poiList.pois[0];
  501. poi = pois.location.lng + "," + pois.location.lat;
  502. that.center = [pois.location.lng, pois.location.lat];
  503. that.markers.push([pois.location.lng, pois.location.lat]);
  504. }
  505. });
  506. }
  507. },
  508. onCooperationChange(value) {
  509. this.cooperationList.forEach((item) => {
  510. if (item.value == value) {
  511. // this.selectOrganId = item.organId
  512. this.form.organId = item.organId;
  513. }
  514. });
  515. },
  516. onSearchResult(pois) {
  517. // 搜索出来的Marker
  518. this.markers = []; // 搜索时进行数据重置
  519. let latSum = 0;
  520. let lngSum = 0;
  521. if (pois.length > 0) {
  522. pois.forEach((poi) => {
  523. let { lng, lat } = poi;
  524. lngSum += lng;
  525. latSum += lat;
  526. this.markers.push([poi.lng, poi.lat]);
  527. });
  528. let center = {
  529. lng: lngSum / pois.length,
  530. lat: latSum / pois.length,
  531. };
  532. this.center = [center.lng, center.lat];
  533. }
  534. },
  535. getpoient(e) {
  536. let geocoder = new AMap.Geocoder();
  537. let that = this;
  538. geocoder.getAddress(e.lnglat, function (status, result) {
  539. if (status === "complete" && result.regeocode) {
  540. result.regeocode.lnglat = e.lnglat;
  541. let ct = result.regeocode.addressComponent;
  542. that.addressDetail = {
  543. address:
  544. ct.province +
  545. "," +
  546. ct.city +
  547. "," +
  548. ct.district +
  549. "," +
  550. ct.township +
  551. ct.street +
  552. ct.streetNumber,
  553. poi: e.lnglat.lng + "," + e.lnglat.lat,
  554. };
  555. that.onSearchResult([{lng:e.lnglat.lng,lat:e.lnglat.lat}])
  556. // console.log(that.form.address,that.form.longitudeLatitude)
  557. // that.form.address = result.regeocode.formattedAddress;
  558. // that.mapStatus = false
  559. // that.addressMessage = false
  560. } else {
  561. that.$message.error("请重新选择地址");
  562. }
  563. });
  564. },
  565. markerEvents() {
  566. // marker 事件添加
  567. let that = this;
  568. return {
  569. click: (e) => {
  570. this.getpoient(e);
  571. },
  572. };
  573. },
  574. setAddrss() {
  575. this.form.address = this.addressDetail.address;
  576. this.form.longitudeLatitude = this.addressDetail.poi;
  577. this.mapStatus = false;
  578. this.addressMessage = false;
  579. },
  580. getList() {
  581. let searchForm = this.searchForm;
  582. let params = {
  583. search: searchForm.search ? searchForm.search : null,
  584. organId: searchForm.organId ? searchForm.organId : null,
  585. rows: this.pageInfo.limit,
  586. page: this.pageInfo.page,
  587. };
  588. schoolQueryPage(params).then((res) => {
  589. if (res.code == 200 && res.data) {
  590. this.tableList = res.data.rows;
  591. this.pageInfo.total = res.data.total;
  592. }
  593. });
  594. },
  595. async getBreachList() {
  596. // 获取分部列表
  597. // 获取当前用户分部
  598. await this.$store.dispatch("setBranchs");
  599. let branchIds = [];
  600. this.selects.branchs.forEach((item) => {
  601. branchIds.push(item.id);
  602. });
  603. await queryByOrganId({
  604. organId: branchIds.join(","),
  605. }).then((res) => {
  606. if (res.code == 200) {
  607. // 判断是否有数据
  608. if (!res.data && res.data.length <= 0) return;
  609. res.data.forEach((r) => {
  610. this.cooperationList.push({
  611. value: r.id,
  612. organId: r.organId,
  613. label: r.name,
  614. });
  615. });
  616. }
  617. });
  618. },
  619. openTeaching(type, row) {
  620. console.log(row);
  621. // 重置数据
  622. // this.form = {
  623. // id: null,
  624. // name: null, // 教学点名称
  625. // linkman: null, // 来源
  626. // job: null, // 费用
  627. // mobileNo: null, // 合作单位
  628. // }
  629. this.teachingStatus = true;
  630. this.formActionTitle = type;
  631. // this.form.organId = ''
  632. // 修改的时候赋值
  633. if (type == "update") {
  634. // this.addressDetail = {
  635. // address: row.address,
  636. // poi: row.longitudeLatitude,
  637. // };
  638. this.form = {
  639. id: row.id,
  640. name: row.name, // 教学点名称
  641. source: row.cooperationOrganId ? "1" : "2", // 来源
  642. cooperationOrganId: row.cooperationOrganId, // 合作单位
  643. remark: row.remark, // 费用
  644. address: row.address.split(",").join(""), // 上课地点
  645. subsidy: row.subsidy, // 课酬补贴
  646. organId: row.organId,
  647. longitudeLatitude:row.longitudeLatitude
  648. };
  649. }
  650. },
  651. onFormClose(formName) {
  652. // 关闭弹窗重置验证
  653. // this.$refs[formName].clearValidate()
  654. this.form = {
  655. name: null, // 教学点名称
  656. source: null, // 来源
  657. cooperationOrganId: null, // 合作单位
  658. remark: null, // 费用
  659. address: null, // 上课地点
  660. subsidy: null, // 课酬补贴
  661. };
  662. this.$refs[formName].resetFields();
  663. },
  664. filterOrgan(val) {
  665. let result = "";
  666. if (val.cooperationOrganId) {
  667. this.cooperationList.forEach((res) => {
  668. if (res.value == val.cooperationOrganId) {
  669. result = res.label;
  670. }
  671. });
  672. } else {
  673. result = "租赁";
  674. }
  675. return result;
  676. },
  677. onUpdateSubmit(row, type) {
  678. let msg;
  679. if (type == 2) {
  680. msg = "停用";
  681. } else if (type == 0) {
  682. msg = "启用";
  683. } else {
  684. msg = "删除";
  685. }
  686. this.$confirm(`您确定${msg}吗?`, "提示", {
  687. confirmButtonText: "确定",
  688. cancelButtonText: "取消",
  689. type: "warning",
  690. }).then(() => {
  691. schoolUpdate({
  692. id: row.id,
  693. delFlag: type,
  694. }).then((res) => {
  695. if (res.code == 200) {
  696. this.$message.success("修改成功");
  697. this.teachingStatus = false;
  698. if (type == 2 || type == 0) {
  699. row.delFlag = type;
  700. } else {
  701. this.getList();
  702. }
  703. } else {
  704. this.$message.error(res.msg);
  705. }
  706. });
  707. });
  708. },
  709. search() {
  710. this.pageInfo.page = 1;
  711. this.getList();
  712. },
  713. },
  714. };
  715. </script>
  716. <style lang="scss">
  717. .el-select {
  718. width: auto !important;
  719. }
  720. .el-vue-amap-container {
  721. width: 100%;
  722. height: 50vh !important;
  723. }
  724. * {
  725. // touch-action: pan-y;
  726. touch-action: none;
  727. }
  728. .map-container {
  729. .el-dialog__body {
  730. padding: 0;
  731. }
  732. }
  733. .el-input-group__append,
  734. .el-button--primary {
  735. background: #14928a;
  736. border-color: #14928a;
  737. color: #fff;
  738. &:hover,
  739. &:active,
  740. &:focus {
  741. background: #14928a;
  742. border-color: #14928a;
  743. color: #fff;
  744. }
  745. }
  746. .el-vue-search-box-container {
  747. position: absolute !important;
  748. left: 30px;
  749. margin-top: 10px;
  750. z-index: 99999 !important;
  751. }
  752. </style>