wuliaoPosition.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756
  1. <template>
  2. <div class="sample-content">
  3. <div @click="clickBtn" style="cursor: pointer">
  4. <el-input
  5. placeholder="请输入内容"
  6. :value="showValue"
  7. id="valueDom"
  8. ></el-input>
  9. </div>
  10. <div class="selectArea" v-if="ifshow">
  11. <div @click="close" class="close-content">
  12. <i class="el-icon-close"></i><el-button class="closeBtn">关闭视图</el-button>
  13. </div>
  14. <div class="top-content">
  15. <div class="top-title">库存可视化</div>
  16. <div class="query-content">
  17. <el-form :inline="true" :model="formInline" class="demo-form-inline">
  18. <el-form-item label="仓库区域:">
  19. <el-select
  20. v-model="formInline.cang_ku_ming_chen_value"
  21. placeholder="请选择样品"
  22. >
  23. <el-option
  24. v-for="(item, index) in cangkuOption"
  25. :key="index"
  26. placeholder="区域"
  27. :label="item.cang_ku_ming_chen"
  28. :value="item.cang_ku_ming_chen"
  29. ></el-option>
  30. </el-select>
  31. </el-form-item>
  32. <el-form-item style="margin-left: 50px" label="货架名称: ">
  33. <el-select
  34. v-model="formInline.qu_yu_value"
  35. placeholder="请选择区域名称"
  36. >
  37. <el-option
  38. v-for="(item, index) in quyu_arr"
  39. :key="index"
  40. placeholder="区域"
  41. :label="item.qu_yu_"
  42. :value="item.qu_yu_"
  43. ></el-option>
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item>
  47. <button
  48. type="button"
  49. class="el-button el-button--primary el-button--mini"
  50. @click="onSubmits"
  51. >
  52. <i class="ibps-icon-search"></i><span>查询</span>
  53. </button>
  54. </el-form-item>
  55. </el-form>
  56. </div>
  57. </div>
  58. <div class="test-quyu">
  59. <div class="test-list">
  60. <ul class="list-items">
  61. <li
  62. class="list-item quyu-item"
  63. :style="{
  64. background: quyuShow == item.qu_yu_ ? '#FF9900' : '#e5baba',
  65. }"
  66. @click="qu_yu_Event"
  67. v-for="item in quyu_arr"
  68. :key="item.qu_yu_"
  69. >
  70. <div v-if="item.qu_yu_.includes('冰箱')">
  71. {{ item.qu_yu_ | freezerFilters }}({{ item.cun_chu_tiao_jian }})
  72. </div>
  73. <div v-if="!item.qu_yu_.includes('冰箱')">
  74. {{ item.qu_yu_ | freezerFilters }}
  75. </div>
  76. </li>
  77. </ul>
  78. </div>
  79. </div>
  80. <div class="body-content">
  81. <div class="right-view">
  82. <div class="goods-items">
  83. <div
  84. class="show-demo"
  85. v-for="(item, index) in listData"
  86. :key="index"
  87. >
  88. <div>
  89. <div class="goods-level">
  90. <div class="level-dsc">
  91. <!-- 第{{ index | indexfilter(listData) }}层 -->
  92. 第{{ index }}层
  93. </div>
  94. <div class="goods-list">
  95. <div
  96. v-for="(it, index) in listData[index]"
  97. :key="index"
  98. class="goods-dsc"
  99. :style="{ background:(it.num) ? '#67c23a':'#e6a23c'}"
  100. @click="closeView(it)"
  101. >
  102. <div class="top-dsc">
  103. <div class="position">
  104. <p>存放数量:{{ it.num || '/'}}</p>
  105. <p>存放位置:{{ it.wei_zhi_ || it.cun_fang_wei_zhi_ }}</p>
  106. <div style="text-align: left;">
  107. <div slot="footer" class="dialog-footer" style="width:100px;display: inline-block;vertical-align: top;" @click="chakan($event,it)">详细信息查看</div>
  108. <!-- <span style="width: 115px; display: inline-block; white-space: break-spaces;text-align: left;">{{ it.huo_hao_ || "空" }} </span> -->
  109. </div>
  110. </div>
  111. <!-- <div class="position">
  112. <div style="text-align: left;">
  113. <div style="width:38px;display: inline-block;vertical-align: top;">名称:</div>
  114. <span style="width: 115px; display: inline-block; white-space: break-spaces;text-align: left;">{{ it.wu_liao_ming_chen || '空' }} </span>
  115. </div>
  116. <p>
  117. 编码:{{
  118. it.wu_liao_bian_ma_ || it.wu_liao_bian_ma_
  119. }}
  120. </p>
  121. <p>位置:{{ it.wei_zhi_ || it.cun_fang_wei_zhi_ }}</p>
  122. <div style="text-align: left;">
  123. <div style="width:38px;display: inline-block;vertical-align: top;">货号:</div>
  124. <span style="width: 115px; display: inline-block; white-space: break-spaces;text-align: left;">{{ it.huo_hao_ || "空" }} </span>
  125. </div>
  126. </div> -->
  127. <!-- <div class="right-content">
  128. <p>入库批号:{{ it.ru_ku_pi_hao_ || "空" }}</p>
  129. <p>存储条件:{{ it.cun_chu_yao_qiu_ || "空" }}</p>
  130. <p>有效期:{{ it.you_xiao_qi_ || "空" }}</p>
  131. <p>库存量:{{ it.ku_cun_liang_ || "空" }}</p>
  132. </div> -->
  133. <!-- <div class="condition">{{ it.cun_chu_tiao_jian }}</div> -->
  134. </div>
  135. <div class="bottom-dsc">
  136. <!-- {{ it.wu_pin_ming_cheng | specimenFilters }} -->
  137. </div>
  138. </div>
  139. </div>
  140. </div>
  141. </div>
  142. <div class="goodshelf-name" v-if="index == 1">
  143. {{ desString }}
  144. </div>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. <el-dialog width="70%" :title="innertitle" :visible.sync="innerVisible" append-to-body>
  150. <div style="height: 70vh;padding: 20px;">
  151. <template>
  152. <el-table :data="tableData" border style="width: 100%">
  153. <el-table-column prop="wu_liao_ming_chen" label="名称">
  154. </el-table-column>
  155. <el-table-column prop="wu_liao_bian_ma_" label="编码" width="180">
  156. </el-table-column>
  157. <el-table-column prop="huo_hao_" label="货号" width="150">
  158. <template slot-scope="scope">
  159. {{ scope.row.huo_hao_ || '/' }}
  160. </template>
  161. </el-table-column>
  162. <el-table-column prop="ru_ku_pi_hao_" label="入库批号" width="150">
  163. </el-table-column>
  164. <el-table-column prop="cun_chu_yao_qiu_" label="存储条件" width="150">
  165. <template slot-scope="scope">
  166. {{ scope.row.cun_chu_yao_qiu_ || '/' }}
  167. </template>
  168. </el-table-column>
  169. <el-table-column prop="you_xiao_qi_" label="有效期" width="120">
  170. <template slot-scope="scope">
  171. {{ scope.row.you_xiao_qi || '/' }}
  172. </template>
  173. </el-table-column>
  174. <el-table-column prop="ku_cun_liang_" label="库存" width="120">
  175. </el-table-column>
  176. </el-table>
  177. </template>
  178. </div>
  179. </el-dialog>
  180. </div>
  181. </div>
  182. </template>
  183. <script>
  184. import curdPost from "@/business/platform/form/utils/custom/joinCURD.js";
  185. export default {
  186. data() {
  187. return {
  188. cangkuOption: [],
  189. formInline: {
  190. cang_ku_ming_chen_value: "耗材库",
  191. qu_yu_value: "1号 货架",
  192. huo_jia_value: "",
  193. },
  194. huojiaInfo: {
  195. empty: "",
  196. al: "",
  197. },
  198. listData: [],
  199. desString: "",
  200. warehouseOptions: [],
  201. quyu_arr: [],
  202. huo_jia_arr: [],
  203. // qu_yu_value: "",
  204. desShow: true,
  205. quyuShow: "",
  206. huojiashow: "",
  207. firstLoadActive: "false",
  208. selectActive: "",
  209. cenghao: [],
  210. warehouse: [],
  211. loading: false,
  212. pagination: {},
  213. secondshow: false,
  214. ifshow: false,
  215. showValue: "",
  216. value: "111",
  217. tableData: [],
  218. innertitle:'',
  219. innerVisible: false,
  220. };
  221. },
  222. props: {
  223. field: Object,
  224. formData: {
  225. type: Object,
  226. default() {
  227. return {};
  228. },
  229. },
  230. },
  231. filters: {
  232. indexfilter: function (value, data) {
  233. if (data[0]) {
  234. return value + 1;
  235. } else {
  236. return value;
  237. }
  238. },
  239. laySlice: function (value) {
  240. return value.split("-")[2];
  241. },
  242. freezerFilters: function (value) {
  243. if (value.includes("冷藏柜")) {
  244. return value.replace("冷藏柜", "冰箱");
  245. } else if (value.includes("冷冻柜")) {
  246. return value.replace("冷冻柜", "冰箱");
  247. } else {
  248. return value;
  249. }
  250. },
  251. specimenFilters: function (value) {
  252. if (value == "" || value == undefined) {
  253. return "未占用";
  254. } else {
  255. return value;
  256. }
  257. },
  258. bian_hao_Filters: function (value) {
  259. if (!value || value == undefined || value == "") {
  260. return "无";
  261. } else {
  262. return value;
  263. }
  264. },
  265. },
  266. // mounted() {
  267. // this.loadQueryData();
  268. // this.firstLoadViewData();
  269. // this.firstLoadQuyu("试剂库1");
  270. // },
  271. methods: {
  272. closeView(value) {
  273. if (value.wei_zhi_) {
  274. this.showValue = value.wei_zhi_;
  275. } else if (value.cun_fang_wei_zhi_) {
  276. this.showValue = value.cun_fang_wei_zhi_;
  277. }
  278. // values.cun_fang_wei_zhi_;
  279. const name2 = "cunFangWeiZhi"; //位置
  280. const value2 = this.showValue; //字段的值
  281. this.$emit("change-data", name2, value2);
  282. const name1 = "cangKuMingCheng"; //仓库名
  283. const value1 = this.formInline.cang_ku_ming_chen_value; //字段的值
  284. this.$emit("change-data", name1, value1);
  285. this.ifshow = !this.ifshow;
  286. },
  287. close() {
  288. this.ifshow = !this.ifshow;
  289. },
  290. firstLoadQuyu(cang_ku) {
  291. let sqlString = `select distinct qu_yu_,cun_chu_tiao_jian from t_ck where cang_ku_ming_chen = '${cang_ku}' order by qu_yu_ asc`;
  292. var this_ = this;
  293. curdPost("sql", sqlString).then((response) => {
  294. this_.quyu_arr = response.variables.data;
  295. if (!this.firstLoadActive) {
  296. this_.formInline.qu_yu_value = "";
  297. }
  298. });
  299. },
  300. firstLoadViewData() {
  301. //首次加载视图数据 默认中心仓库 耗材区
  302. this.formInline.cang_ku_ming_chen_value = "试剂库1";
  303. this.formInline.qu_yu_value = "1号试剂柜";
  304. this.selectActive = 1;
  305. this.firstLoadActive = true;
  306. this.quyuShow = "1号试剂柜";
  307. var sqlString = `select * from t_mjwlgl where cang_ku_ming_chen = '试剂库1' and cun_fang_wei_zhi_ like '%SJG1%' and ku_cun_liang_ !='0'`
  308. this.queryLoad(sqlString, "SJG1");
  309. },
  310. sqlSlice(value) {
  311. switch (value) {
  312. case "货架":
  313. return "HJ";
  314. case "试剂柜":
  315. return "SJG";
  316. case "冰箱":
  317. return "BX";
  318. default:
  319. "";
  320. }
  321. },
  322. loadQueryData() {
  323. //查询选择仓库数据查询
  324. var sqlString = "select distinct cang_ku_ming_chen from t_ck ORDER BY cang_ku_ming_chen DESC";
  325. var this_ = this;
  326. curdPost("sql", sqlString).then((response) => {
  327. this_.cangkuOption = response.variables.data;
  328. this_.cangkuOption.forEach((item, index) => {
  329. if (!item) {
  330. this_.cangkuOption.splice(index, 1);
  331. }
  332. });
  333. this_.cangkuOption[0] = this_.cangkuOption.splice(1,1,this_.cangkuOption[0])[0];
  334. this_.cangkuOption[3] = this_.cangkuOption.splice(4,1,this_.cangkuOption[3])[0];
  335. });
  336. },
  337. onSubmits() {
  338. this.desShow = false;
  339. //头部按钮查询事
  340. let py = this.formInline.qu_yu_value.split("号")[1].replace(/^\s*/g, "");
  341. let num = this.formInline.qu_yu_value.split("号")[0];
  342. let quyu = this.sqlSlice(py);
  343. let type = (quyu + num).replace(/^\s*/g, "");
  344. let cang_ku_ming_chen_ = this.formInline.cang_ku_ming_chen_value
  345. var sqlString =`select * from t_mjwlgl where cang_ku_ming_chen = '${cang_ku_ming_chen_}' and ku_cun_liang_ !='0'and cun_fang_wei_zhi_ like '%type'`
  346. this.queryLoad(sqlString, type);
  347. },
  348. async queryLoad(sql, py) {
  349. //数据加载
  350. let this_ = this;
  351. var datas = [];
  352. this.cenghao = [];
  353. const labelsMap = {}; // map存储
  354. let typeData = [];
  355. let typeArr = [];
  356. var sqltype = `select DISTINCT wei_zhi_ from t_ck where wei_zhi_ like ` + "'%" + py +"%'" + " and cang_ku_ming_chen ='" +this.formInline.cang_ku_ming_chen_value +"' ORDER BY wei_zhi_ ASC ";
  357. let classSql =`select DISTINCT SUBSTR(wei_zhi_,1,6) AS wei_zhi_ from t_ck where wei_zhi_ like ` +"'%" + py +"%'" +" and cang_ku_ming_chen ='" +this.formInline.cang_ku_ming_chen_value + "' ORDER BY wei_zhi_ ASC ";
  358. let wuliaos =[]
  359. await curdPost("sql", sql).then((res) => {
  360. wuliaos = res.variables.data;
  361. });
  362. var newArr = [...new Set(wuliaos.map((i) => i.cun_fang_wei_zhi_))]; // 去重的时候需要注意和普通数组不同
  363. var list = [];
  364. newArr.forEach((i) => {
  365. list.push(wuliaos.filter((t) => t.cun_fang_wei_zhi_ === i));
  366. });
  367. var mlist = [];
  368. list.forEach((i, index) => {
  369. mlist.push({
  370. cun_fang_wei_zhi_: newArr[index],
  371. num: i.length,
  372. });
  373. });
  374. curdPost("sql", sqltype).then((res) => {
  375. typeData = res.variables.data; //查询具体仓库某个货架的所有位置
  376. typeData.forEach((item) => {
  377. // 组件以货架分层的数据: {1:[],2:[],3:[],4:[],5:[],6}
  378. const num = item.wei_zhi_.split("-")[1];
  379. labelsMap[num] = [];
  380. });
  381. for (let item of mlist) {
  382. for (let it of typeData) {
  383. if (item.cun_fang_wei_zhi_ == it.wei_zhi_) {
  384. it.num = item.num;
  385. }
  386. }
  387. }
  388. // 初始化位置
  389. for (var prop in labelsMap) {
  390. typeData.forEach((item) => {
  391. // 组件以货架分层的数据: {1:[],2:[],3:[],4:[],5:[],6}
  392. const num = item.wei_zhi_.split("-")[1];
  393. if (num === prop) {
  394. labelsMap[prop].push({
  395. cun_fang_wei_zhi_: item.wei_zhi_,
  396. wu_liao_ming_chen: "",
  397. num: item.num || "",
  398. });
  399. }
  400. });
  401. }
  402. this_.listData = labelsMap;
  403. // curdPost("sql", sql).then((res) => {
  404. // datas = res.variables.data; //具体仓库某个货架的所有物料数据
  405. // typeData.forEach((item) => {
  406. // typeArr[item.wei_zhi_] = [];
  407. // if (datas.length == 0) {
  408. // typeArr[item.wei_zhi_].push(item);
  409. // } else {
  410. // datas.forEach((it, index) => {
  411. // if (item.wei_zhi_ == it.cun_fang_wei_zhi_) {
  412. // typeArr[item.wei_zhi_].push(it);
  413. // } else if (
  414. // item.wei_zhi_ != it.cun_fang_wei_zhi_ &&
  415. // index == datas.length - 1
  416. // ) {
  417. // typeArr[item.wei_zhi_].push(item);
  418. // }
  419. // });
  420. // }
  421. // });
  422. // curdPost("sql", classSql).then((res2) => {
  423. // let resData = res2.variables.data;
  424. // resData.forEach((item) => {
  425. // let layer = item.wei_zhi_;
  426. // layer = layer.split("-")[1];
  427. // labelsMap[layer] = [];
  428. // for (var prop in typeArr) {
  429. // if (typeArr.hasOwnProperty(prop)) {
  430. // // console.log(prop,item.wei_zhi_);
  431. // if (prop.includes(item.wei_zhi_)) {
  432. // labelsMap[layer].push(...typeArr[prop]);
  433. // // console.log(labelsMap)
  434. // }
  435. // }
  436. // }
  437. // });
  438. // // console.log(labelsMap, "数据");
  439. // this_.listData = labelsMap;
  440. // });
  441. // });
  442. });
  443. },
  444. qu_yu_Event(e) {
  445. //点击区域事件,加载可视化视\
  446. let value = e.target.innerText;
  447. if (value.includes("(")) {
  448. let index = value.indexOf("(");
  449. value = value.slice(0, index);
  450. }
  451. let num = value.slice(0, 1);
  452. let py = value.split("号")[1].replace(/^\s*/g, "");
  453. let quyu = this.sqlSlice(py);
  454. let type = (quyu + num).replace(/^\s*/g, "");
  455. let cang_ku_ming_chen_ = this.formInline.cang_ku_ming_chen_value
  456. var sqlString =`select * from t_mjwlgl where cun_fang_wei_zhi_ like '%${type}%' and cang_ku_ming_chen = '${cang_ku_ming_chen_}' and ku_cun_liang_ !='0'`
  457. this.queryLoad(sqlString, type);
  458. this.formInline.qu_yu_value = value;
  459. this.quyuShow = value;
  460. },
  461. blackEvent() {
  462. this.desShow = true;
  463. },
  464. clickBtn() {
  465. this.loadQueryData();
  466. this.firstLoadViewData();
  467. this.firstLoadQuyu("试剂库1");
  468. this.ifshow = !this.ifshow;
  469. },
  470. async chakan(event, value) {
  471. // event.preventDefault();
  472. event.stopPropagation();
  473. if(value.num == 0 || !value.num){
  474. this.$message({
  475. message: '该位置暂无物料',
  476. type: 'warning'
  477. });
  478. return
  479. }
  480. this.innerVisible = true;
  481. let cang_ku_ming_chen = this.formInline.cang_ku_ming_chen_value;
  482. this.innertitle = `${cang_ku_ming_chen} ${value.cun_fang_wei_zhi_}明细`
  483. let sql = `select * from t_mjwlgl where cang_ku_ming_chen = '${cang_ku_ming_chen}'and cun_fang_wei_zhi_ = '${value.cun_fang_wei_zhi_}' and ku_cun_liang_ != '0'`;
  484. let data = [];
  485. await curdPost("sql", sql).then((res) => {
  486. data = res.variables.data;
  487. });
  488. this.tableData = data
  489. },
  490. },
  491. watch: {
  492. //监控仓库名称变化 触发第一次加载数据
  493. "formInline.cang_ku_ming_chen_value": async function (newdata) {
  494. this.firstLoadQuyu(newdata);
  495. },
  496. "formInline.qu_yu_value": function (newdata) {
  497. this.qu_yu_value = newdata;
  498. this.quyuShow = newdata;
  499. this.firstLoadActive = false;
  500. },
  501. //。。。。。省略部分代码
  502. formData: {
  503. handler(val) {
  504. //根据实际逻辑处理
  505. if (!this.showValue) {
  506. this.showValue = val.cunFangWeiZhi;
  507. }
  508. },
  509. deep: true,
  510. immediate: true,
  511. },
  512. },
  513. };
  514. </script>
  515. <style lang="scss" scoped>
  516. ul {
  517. margin: 0;
  518. }
  519. p {
  520. padding: 0;
  521. margin: 0;
  522. }
  523. .close-content {
  524. position: absolute;
  525. right: 100px;
  526. top: 50px;
  527. //
  528. background: #f56c6c;
  529. font-size: 16px;
  530. padding:0px 4px;
  531. border-radius: 5px;
  532. color: #ffffff;
  533. .closeBtn {
  534. background: #f56c6c;
  535. border: none;
  536. padding: 2px;
  537. color: #ffffff;
  538. }
  539. }
  540. .sample-content {
  541. cursor: pointer;
  542. .selectArea {
  543. width: 100%;
  544. height: 100%;
  545. overflow: scroll;
  546. position: fixed;
  547. top: 0px;
  548. left: 0px;
  549. background: white;
  550. z-index: 2147483647!important;
  551. }
  552. .top-content {
  553. width: 100%;
  554. .top-title {
  555. text-align: center;
  556. font-weight: bold;
  557. width: 100%;
  558. font-size: 18px;
  559. line-height: 40px;
  560. }
  561. .query-content {
  562. display: flex;
  563. margin-left: 25px;
  564. }
  565. }
  566. .test-quyu,
  567. .huojia {
  568. width: 100%;
  569. .list-items {
  570. display: flex;
  571. cursor: pointer;
  572. .wDTianjian::after {
  573. content: "2-6";
  574. }
  575. .quyu-item {
  576. border: 1px solid #a172ab;
  577. background: #0099cc;
  578. }
  579. .huojia-item {
  580. background: #99ccff;
  581. }
  582. .list-item {
  583. padding: 4px 6px;
  584. height: 20px;
  585. background-color: #cec6a4;
  586. text-align: center;
  587. line-height: 20px;
  588. margin-left: 20px;
  589. margin-bottom: 6px;
  590. /* margin-top: 6px; */
  591. border-radius: 10px;
  592. font-size: 14px;
  593. position: relative;
  594. .tiaojian {
  595. // position: absolute;
  596. // right: 0px;
  597. // top: 0px;
  598. // background-color: #f56c6c;
  599. // border-radius: 10px;
  600. // color: #fff;
  601. // display: inline-block;
  602. // font-size: 12px;
  603. // height: 18px;
  604. // line-height: 18px;
  605. // padding: 0 6px;
  606. // text-align: center;
  607. // white-space: nowrap;
  608. // border: 1px solid #fff;
  609. font-size: 12px;
  610. }
  611. }
  612. }
  613. .cangku-mingchen {
  614. width: 100%;
  615. text-align: left;
  616. margin-left: 50px;
  617. }
  618. }
  619. .body-content {
  620. margin-bottom: 70px;
  621. display: flex;
  622. box-sizing: border-box;
  623. height: calc(100vh - 240px);
  624. // overflow-x: hidden;
  625. // overflow-y: scroll;
  626. .black {
  627. position: fixed;
  628. top: 300px;
  629. right: 100px;
  630. width: 100px;
  631. height: 40px;
  632. line-height: 40px;
  633. text-align: center;
  634. background-color: #e6a23c;
  635. z-index: 99;
  636. }
  637. .left-table {
  638. // width: 40%;
  639. ::v-deep .el-table {
  640. width: 40%;
  641. }
  642. }
  643. .right-view {
  644. z-index: 99;
  645. width: 100%;
  646. .goods-items {
  647. width: 100%;
  648. overflow: hidden;
  649. border: solid 2px rgb(202, 236, 247);
  650. display: flex;
  651. flex-direction: column-reverse;
  652. .show-demo {
  653. width: 100%;
  654. border-bottom: 1px solid bisque;
  655. margin: 0 auto;
  656. text-align: center;
  657. // overflow-y: scroll;
  658. .goods-level {
  659. display: flex;
  660. position: relative;
  661. margin-bottom: 6px;
  662. }
  663. .level-dsc {
  664. margin-top: 12px;
  665. position: absolute;
  666. bottom: 0;
  667. left: 10px;
  668. }
  669. .goods-list {
  670. display: flex;
  671. // justify-content: flex-start;
  672. flex-wrap: wrap-reverse;
  673. align-content: flex-start;
  674. margin-left: 50px;
  675. margin-right: 15px;
  676. .goods-dsc {
  677. cursor: pointer;
  678. // width: 170px;
  679. // height: 80px;
  680. padding: 6px 6px;
  681. border-radius: 5px;
  682. // background: #e6a23c;
  683. margin-left: 12px;
  684. margin-top: 6px;
  685. // background-color: aliceblue;
  686. box-sizing: border-box;
  687. .top-dsc {
  688. display: flex;
  689. justify-content: space-between;
  690. font-size: 12px;
  691. height: 18px;
  692. line-height: 18px;
  693. .position > p {
  694. text-align: left;
  695. // color: #fbe8ff;
  696. }
  697. .right-content > p {
  698. margin-left: 1px;
  699. // color: #fbe8ff;
  700. text-align: left;
  701. }
  702. // .condition {
  703. // // color: #fbe8ff;
  704. // }
  705. }
  706. .bottom-dsc {
  707. width: 100%;
  708. font-size: 18px;
  709. height: 42px;
  710. line-height: 60px;
  711. margin-top: 20px;
  712. // color: #fbe8ff;
  713. }
  714. .goods-demo {
  715. display: block;
  716. width: 70px;
  717. height: 90px;
  718. border: 1px solid rgb(10, 9, 8);
  719. text-align: center;
  720. margin: 0;
  721. }
  722. .goods-code {
  723. text-align: center;
  724. width: 100%;
  725. height: 20px;
  726. line-height: 20px;
  727. }
  728. }
  729. }
  730. .goodshelf-name {
  731. margin-bottom: 49px;
  732. }
  733. .shelf {
  734. width: 100%;
  735. height: 40px;
  736. line-height: 40px;
  737. text-align: center;
  738. }
  739. }
  740. }
  741. }
  742. }
  743. .body-content::-webkit-scrollbar {
  744. display: none; /*隐藏滚动条*/
  745. }
  746. }
  747. </style>