add-edit.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. <template>
  2. <view class="apply-credit">
  3. <view class="title">{{$t('approval.formInfo')}}</view>
  4. <view class="form-wrap">
  5. <u-form labelPosition="left" :model="form" :rules="rules" ref="form1" labelWidth='90'>
  6. <!-- 登记日期 -->
  7. <u-form-item :label="$t('spare.djDate')" borderBottom prop="setDate" @click="showSetDateCalendar = true" required>
  8. <u-input readonly v-model="form.setDate" border="none" :placeholder="$t('base.common.placeholderS')+$t('spare.djDate')" />
  9. </u-form-item>
  10. <!-- 入库 -->
  11. <template v-if="work == 'in'">
  12. <!-- 入库单号 -->
  13. <u-form-item :label="$t('spare.RKCode')" borderBottom prop="code" required>
  14. <u-input readonly v-model="form.code" border="none" :placeholder="$t('base.common.placeholderI')+$t('spare.RKCode')" />
  15. </u-form-item>
  16. <!-- 仓库 -->
  17. <u-form-item :label="$t('spare.store')" borderBottom prop="store" @click="showPopup('store')" required >
  18. <u-input readonly v-model="textForm.store" :placeholder="$t('base.common.placeholderS')+$t('spare.store')" border="none" />
  19. </u-form-item>
  20. <!-- 供应商 -->
  21. <u-form-item :label="$t('order.purveyId')" borderBottom prop="purveyId" @click="showPopup('purveyId')" required>
  22. <u-input readonly v-model="textForm.purveyId" border="none" :placeholder="$t('base.common.placeholderS')+$t('order.purveyId')" />
  23. </u-form-item>
  24. <!-- 采购员 -->
  25. <u-form-item :label="$t('spare.buyer')" borderBottom prop="buyer" @click="showPopup('buyer')">
  26. <u-input readonly v-model="textForm.buyer" border="none" :placeholder="$t('base.common.placeholderS')+$t('spare.buyer')" />
  27. </u-form-item>
  28. <!-- 送货单号 -->
  29. <u-form-item :label="$t('spare.delivery')" borderBottom prop="delivery">
  30. <u-input :readonly="type == 'view'" v-model="form.delivery" border="none" :placeholder="$t('base.common.placeholderI')+$t('spare.delivery')" />
  31. </u-form-item>
  32. <!-- 入库明细 -->
  33. <u-form-item :label="$t('spare.inStoreDetail')" borderBottom prop="detailList" @click="toAddDetail" v-if="type != 'view'">
  34. <u-input readonly border="none" :placeholder="$t('spare.setInStoreDetail')" />
  35. <u-icon
  36. slot="right"
  37. name="arrow-right"
  38. ></u-icon>
  39. </u-form-item>
  40. <!-- 用途 -->
  41. <u-form-item :label="$t('spare.purpose')" borderBottom prop="purpose">
  42. <u-input
  43. :readonly="type == 'view'"
  44. v-model="form.purpose"
  45. border="none"
  46. :placeholder="$t('base.common.placeholderI')+$t('spare.purpose')" />
  47. </u-form-item>
  48. </template>
  49. <!-- 出库 -->
  50. <template v-else>
  51. <!-- 入库单号 -->
  52. <u-form-item :label="$t('spare.CKCode')" borderBottom prop="code" required>
  53. <u-input readonly v-model="form.code" border="none" :placeholder="$t('base.common.placeholderI')+$t('spare.CKCode')" />
  54. </u-form-item>
  55. <!-- 仓库 -->
  56. <u-form-item :label="$t('spare.store')" borderBottom prop="store" @click="showPopup('store')" required >
  57. <u-input readonly v-model="textForm.store" :placeholder="$t('base.common.placeholderS')+$t('spare.store')" border="none" />
  58. </u-form-item>
  59. <!-- 部门 -->
  60. <u-form-item :label="$t('userinfo.department')" borderBottom prop="department" @click="showPopup('department')" required>
  61. <u-input readonly v-model="textForm.department" border="none" :placeholder="$t('base.common.placeholderS')+$t('userinfo.department')" />
  62. </u-form-item>
  63. <!-- 领料人 -->
  64. <u-form-item :label="$t('spare.takeUser')" borderBottom prop="requester" @click="showPopup('requester')">
  65. <u-input readonly v-model="textForm.requester" border="none" :placeholder="$t('base.common.placeholderS')+$t('spare.takeUser')" />
  66. </u-form-item>
  67. <!-- 出库明细 -->
  68. <u-form-item :label="$t('spare.outStoreDetail')" borderBottom prop="detailList" @click="toAddDetail" v-if="type != 'view'">
  69. <u-input readonly border="none" :placeholder="$t('spare.outStoreDetail')" />
  70. <u-icon
  71. slot="right"
  72. name="arrow-right"
  73. ></u-icon>
  74. </u-form-item>
  75. </template>
  76. <!-- 备注 -->
  77. <u-form-item :label="$t('approval.remark')" borderBottom prop="remark">
  78. <u-input :readonly="type == 'view'" v-model="form.remark" border="none" :placeholder="$t('approval.remark')" />
  79. </u-form-item>
  80. </u-form>
  81. </view>
  82. <view class="title">{{work == 'in'?$t('spare.inStoreDetail'):$t('spare.outStoreDetail')}}</view>
  83. <template v-if="form.detailList.length">
  84. <view class="order-card" v-for="(item, index) in form.detailList" :key="index">
  85. <view class="order-info">
  86. <p class="info-line">
  87. <text class="label">{{$t('spare.spareName')}}:</text>
  88. <text class="info">
  89. <template v-if="id || item.sourceType == '101'">
  90. {{`${item.materialCode}_${item.materialName}_${item.materialSpec}_${getLabel(item.materialUnit,unitList)}`}}
  91. </template>
  92. <template v-else>
  93. {{`${item.code}_${item.name}_${item.spec}_${getLabel(item.unit,unitList)}`}}
  94. </template>
  95. </text>
  96. </p>
  97. <!-- 入库 -->
  98. <template v-if="work == 'in'">
  99. <p class="info-line">
  100. <text class="label">{{$t('spare.source')}}</text>
  101. <text class="info">{{item.sourceType == '102'?$t('spare.batchAdd'):$t('mine.order')+item.orderCode}}</text>
  102. </p>
  103. <p class="info-line">
  104. <text class="label">{{$t('spare.inStoreNumber')}}:</text>
  105. <text class="info">{{item.count || ''}}</text>
  106. </p>
  107. <p class="info-line">
  108. <text class="label">{{$t('spare.shelf')}}:</text>
  109. <u-icon class="info" name="list" size="30" @click="openShelf(item)" color="#2979ff"></u-icon>
  110. </p>
  111. <p class="info-line">
  112. <text class="label">{{$t('approval.remark')}}:</text>
  113. <text class="info">{{item.remark || ''}}</text>
  114. </p>
  115. </template>
  116. <!-- 出库 -->
  117. <template v-else>
  118. <p class="info-line">
  119. <text class="label">{{$t('spare.source')}}:</text>
  120. <text class="info">{{item.sourceType == '102'?$t('spare.batchAdd'):$t('mine.order')+':'+item.takeCode}}</text>
  121. </p>
  122. <p class="info-line">
  123. <text class="label">{{$t('spare.canOutNumber')}}:</text>
  124. <text class="info">
  125. {{item.sourceType == '101'?(item.number - item.outNum):item.totalNum}}
  126. </text>
  127. </p>
  128. <p class="info-line">
  129. <text class="label">{{$t('spare.outStoreNumber')}}:</text>
  130. <text class="info">{{item.count || ''}}</text>
  131. </p>
  132. <p class="info-line">
  133. <text class="label">{{$t('spare.shelf')}}:</text>
  134. <u-icon class="info" name="list" size="30" @click="openShelf(item)" color="#2979ff"></u-icon>
  135. </p>
  136. <p class="info-line">
  137. <text class="label">{{$t('approval.remark')}}:</text>
  138. <u-input class="info" suffixIcon="edit-pen" :placeholder="$t('approval.remark')" border="none" v-model="item.remark" />
  139. </p>
  140. </template>
  141. </view>
  142. </view>
  143. </template>
  144. <template v-else>
  145. <u-empty mode="list" :text="$t('spare.setBuyDetail')" icon="https://cdn.uviewui.com/uview/empty/list.png">
  146. </u-empty>
  147. </template>
  148. <view class="btn-wrap" v-if="type != 'view'">
  149. <u-button type="primary" color='#4680F9' @click="submit('form1')">{{$t('base.common.submit')}}</u-button>
  150. </view>
  151. <!-- 仓库 -->
  152. <PopupSelect ref="store" kind="store" :option="storeOptions" @onConfirm="onConfirm"/>
  153. <!-- 供应商 -->
  154. <PopupSelect ref="purveyId" kind="purveyId" :option="purveyIdOptions" @onConfirm="onConfirm"/>
  155. <!-- 部门 -->
  156. <PopupSelect ref="department" kind="department" :option="departmentOptions" @onConfirm="onConfirm"/>
  157. <!-- 领料人 -->
  158. <PopupSelect ref="requester" kind="requester" :option="requesterOptions" @onConfirm="onConfirm"/>
  159. <!-- 采购员 -->
  160. <PopupSelect ref="buyer" kind="buyer" :option="buyerOptions" @onConfirm="onConfirm"/>
  161. <!-- 申请日期 -->
  162. <u-calendar
  163. color="#4680F9"
  164. round='25'
  165. :show="showSetDateCalendar"
  166. @confirm="onSetDateConfirm"
  167. @close="showSetDateCalendar=false">
  168. </u-calendar>
  169. <u-toast ref="loadingToast" />
  170. <!-- 货架 -->
  171. <u-popup :show="shelfShow" mode="center" @close="shelfShow = false" >
  172. <view class="picker-card">
  173. <view style="height:100%;overflow-y:auto;display:block">
  174. <view class="order-card shelf-card" v-for="(item, index) in currentRow.shelfList" :key="index">
  175. <view class="order-info">
  176. <p class="info-line">
  177. <text class="label">{{$t('spare.shelf')}}:</text>
  178. <text class="info">{{item.shelf}}</text>
  179. </p>
  180. <p class="info-line">
  181. <text class="label">{{$t('spare.floor')}}:</text>
  182. <text class="info">{{item.floor}}</text>
  183. </p>
  184. <p class="info-line">
  185. <text class="label">{{$t('spare.seat')}}:</text>
  186. <text class="info">{{item.seat}}</text>
  187. </p>
  188. <p class="info-line">
  189. <text class="label">{{$t('spare.sign')}}:</text>
  190. <text class="info">{{item.sign}}</text>
  191. </p>
  192. <p class="info-line">
  193. <text class="label">{{$t('spare.number')}}:</text>
  194. <text class="info">{{item.num}}</text>
  195. </p>
  196. </view>
  197. </view>
  198. </view>
  199. <view class="card-oper">
  200. <view class="btn">
  201. <u-button type='primary' @click="shelfShow = false">{{$t('settings.confirmText')}}</u-button>
  202. </view>
  203. </view>
  204. </view>
  205. </u-popup>
  206. </view>
  207. </template>
  208. <script>
  209. import PopupSelect from '../../components/popup-select/index'
  210. import { getObj,getStockStore,addObj } from '../../api/warehousing'
  211. import { getLabel } from '../../utils/util'
  212. import {request} from '../../utils/request'
  213. import { fetchList,depLtist } from '../../api/stock'
  214. import dayjs from 'dayjs'
  215. import {
  216. getCode,
  217. getClientList,
  218. getUserListByType
  219. } from "../../api/receivable"
  220. export default {
  221. components:{
  222. PopupSelect
  223. },
  224. data(){
  225. return{
  226. id:'',
  227. type:'', //类型 add新增/edit编辑/view查看
  228. work:'', //in 入库 out 出库
  229. showSetDateCalendar:false,
  230. shelfShow:false,
  231. getLabel,
  232. currentRow:{},
  233. form:{
  234. setDate:dayjs().format('YYYY-MM-DD'),
  235. code:'',
  236. store:'', //仓库
  237. purveyId:'', //供应商
  238. buyer:'', //采购员
  239. delivery:'', //送货单
  240. purpose:'', //用途
  241. requester:'', //申请人
  242. department:'', //部门
  243. kind:'11',
  244. detailList:[],
  245. remark:'',
  246. },
  247. textForm:{
  248. store:'',
  249. purveyId: '',
  250. buyer:'',
  251. },
  252. rules: {
  253. setDate:[{ required: true, message: this.$t('base.common.placeholderS')+'登记日期', trigger: "change" }],
  254. store:[{ required: true, message: this.$t('base.common.placeholderS')+'仓库', trigger: "change" }],
  255. purveyId:[{ required: true, message: this.$t('base.common.placeholderS')+this.$t('order.purveyId'), trigger: "change" }],
  256. code:[{ required: true, message:this.$t('base.common.placeholderS')+this.$t('spare.orderCode'), trigger: "change" }],
  257. department:[{ required: true, message:this.$t('base.common.placeholderS')+this.$t('spare.orderCode'), trigger: "change" }],
  258. detailList:[{
  259. required: true,
  260. validator:(rule,value,callback)=>{
  261. if(this.form.detailList.length){
  262. callback()
  263. }else{
  264. callback(new Error("入库明细不能为空"))
  265. }
  266. }
  267. }],
  268. },
  269. purveyIdOptions:[{text:this.$t('order.noData'),value:null}],
  270. buyerOptions:[{text:this.$t('order.noData'),value:null}],
  271. storeOptions:[{text:this.$t('order.noData'),value:null}],
  272. departmentOptions:[{text:this.$t('order.noData'),value:null}],
  273. requesterOptions:[{text:this.$t('order.noData'),value:null}],
  274. unitList:[],
  275. }
  276. },
  277. onLoad(options) {
  278. console.log(options);
  279. this.id = options.id
  280. this.type = options.type
  281. this.work = options.work
  282. if(this.work == 'in'){
  283. this.form.kind ='11'
  284. }else{
  285. this.form.kind ='14'
  286. }
  287. this.setPageTitle()
  288. this.getOption()
  289. },
  290. methods:{
  291. //提交审批
  292. submit(ref){
  293. let _this=this
  294. this.$refs[ref].validate().then(() => {
  295. this.$refs.loadingToast.show({
  296. type:"loading",
  297. message: _this.$t('base.common.loading'),
  298. duration:'100000',
  299. })
  300. let data
  301. if(_this.work == 'in'){
  302. data = _this.form
  303. }else{
  304. _this.form.detailList = _this.form.detailList.map(item=>{
  305. item.shelfList = item.materialShelves
  306. return item
  307. })
  308. data = _this.form
  309. }
  310. addObj(data).then(res=>{
  311. if(res.data.code == 0){
  312. this.$refs.loadingToast.hide()
  313. uni.showModal({
  314. title: _this.$t('settings.tips'),
  315. content: _this.$t('spare.submitSuccess'),
  316. showCancel: false,
  317. success: ({ confirm, cancel }) => {
  318. if(confirm){
  319. uni.navigateBack({ delta: 1 })
  320. }
  321. }
  322. })
  323. }else{
  324. this.$refs.loadingToast.hide()
  325. uni.showModal({
  326. title: _this.$t('settings.tips'),
  327. content: res.data.msg || _this.$t('spare.submitfailed'),
  328. showCancel: false,
  329. })
  330. }
  331. })
  332. })
  333. },
  334. //查看或编辑获取详情
  335. getDetail(){
  336. getObj(this.id).then(res=>{
  337. if(res.data.code == 0){
  338. Object.keys(this.form).forEach((key) => {
  339. this.form[key] = res.data.data[key]
  340. })
  341. this.textForm.store = res.data.data.storeName
  342. this.textForm.purveyId = res.data.data.purveyName
  343. this.textForm.buyerName = res.data.data.buyerName
  344. }
  345. })
  346. },
  347. //打开货架
  348. openShelf(item){
  349. console.log(item);
  350. this.currentRow = item
  351. this.shelfShow = true
  352. },
  353. //获取选项
  354. getOption(){
  355. //获取单位
  356. request({
  357. url:'/admin/dict/type/spare_unit',
  358. method:'get',
  359. })
  360. .then(res=>{
  361. if(res.data.code == 0){
  362. this.unitList = res.data.data
  363. }
  364. })
  365. //订单编码
  366. if(this.type == 'add'){
  367. getCode(this.work == 'in'?'118':'120',dayjs().format('YYYY-MM-DD')).then(res=>{
  368. if(res.data.code == 0){
  369. this.form.code = res.data.data
  370. }
  371. })
  372. }
  373. if(this.work == 'in'){
  374. //获取供应商
  375. getClientList( {type:'103'}).then(res=>{
  376. if(res.data.code == 0){
  377. let arr=[]
  378. res.data.data.forEach(item=>{
  379. arr.push({
  380. text:item.name,
  381. value:item.id
  382. })
  383. })
  384. if(arr.length){
  385. arr.unshift({text:this.$t('order.notSelected'),value:null})
  386. }else{
  387. arr.unshift({text:this.$t('order.noData'),value:null})
  388. }
  389. this.purveyIdOptions = arr
  390. }
  391. })
  392. //获取采购员
  393. getUserListByType('101').then(res=>{
  394. let arr=[]
  395. res.data.data.forEach(item=>{
  396. arr.push({
  397. text:item.name,
  398. value:item.userId
  399. })
  400. })
  401. if(arr.length){
  402. arr.unshift({text:this.$t('order.notSelected'),value:null})
  403. }else{
  404. arr.unshift({text:this.$t('order.noData'),value:null})
  405. }
  406. this.buyerOptions = arr
  407. })
  408. }else if(this.work == 'out'){
  409. //获取部门
  410. depLtist().then(res=>{
  411. let arr=res.data.data.map(item=>{
  412. return {
  413. text:item.name,
  414. value:item.deptId
  415. }
  416. })
  417. if(arr.length){
  418. arr.unshift({text:this.$t('order.notSelected'),value:null})
  419. }else{
  420. arr.unshift({text:this.$t('order.noData'),value:null})
  421. }
  422. this.departmentOptions=arr
  423. })
  424. }
  425. //获取仓库
  426. getStockStore('').then(res=>{
  427. if(res.data.code == 0){
  428. let arr=[]
  429. res.data.data.forEach(item=>{
  430. arr.push({
  431. text:item.name,
  432. value:item.id
  433. })
  434. })
  435. if(arr.length){
  436. arr.unshift({text:this.$t('order.notSelected'),value:null})
  437. }else{
  438. arr.unshift({text:this.$t('order.noData'),value:null})
  439. }
  440. this.storeOptions = arr
  441. }
  442. })
  443. },
  444. //切换选择部门
  445. changeDept(id){
  446. let data = {
  447. size:50,
  448. current:1,
  449. deptId:id,
  450. }
  451. fetchList(data).then(res=>{
  452. let arr = res.data.data.records.map(j=>{
  453. return {
  454. text:j.name,
  455. value:j.userId,
  456. }
  457. })
  458. console.log(arr);
  459. if(arr.length){
  460. arr.unshift({text:this.$t('order.notSelected'),value:null})
  461. }else{
  462. arr.unshift({text:this.$t('order.noData'),value:null})
  463. }
  464. this.requesterOptions = arr
  465. })
  466. },
  467. //去添加明细
  468. toAddDetail(){
  469. let _this = this
  470. if(this.work == 'in'){
  471. if(this.form.purveyId){
  472. uni.navigateTo({ url: `/subpages/spare/choosespare?purveyId=${this.form.purveyId}&work=in&content=${JSON.stringify(this.form.detailList)}`})
  473. }else{
  474. uni.showModal({
  475. title: _this.$t('settings.tips'),
  476. content: _this.$t('base.common.placeholderS')+_this.$t('order.purveyId'),
  477. showCancel: false,
  478. success: ({ confirm, cancel }) => {
  479. }
  480. })
  481. }
  482. }else{
  483. if(this.form.department && this.form.store){
  484. uni.navigateTo({ url: `/subpages/spare/choosespare?dept=${this.form.department}&work=out&content=${JSON.stringify(this.form.detailList)}`})
  485. }else{
  486. uni.showModal({
  487. title: _this.$t('settings.tips'),
  488. content: '请先选择仓库和部门',
  489. showCancel: false,
  490. success: ({ confirm, cancel }) => {
  491. }
  492. })
  493. }
  494. }
  495. },
  496. //确定选择
  497. onConfirm(value,kind){
  498. if(kind == 'department' && value.value != this.form[kind]){
  499. this.changeDept(value.value)
  500. }
  501. if(value.value){
  502. this.form[kind]=value.value
  503. this.textForm[kind]=value.text
  504. }else{
  505. this.form[kind]=''
  506. this.textForm[kind]=''
  507. }
  508. },
  509. //选择申请日期
  510. onSetDateConfirm(date){
  511. this.form.setDate = dayjs(date).format('YYYY-MM-DD');
  512. this.showSetDateCalendar = false;
  513. },
  514. //设置页面标题
  515. setPageTitle(){
  516. let str=''
  517. if(this.work == 'in'){
  518. str+='入库'
  519. }else{
  520. str+='出库'
  521. }
  522. if(this.type == 'add'){
  523. str+='新增'
  524. }else if(this.type == 'edit'){
  525. this.getDetail()
  526. str+='编辑'
  527. }else if(this.type == 'view'){
  528. this.getDetail()
  529. str+='查看'
  530. }
  531. uni.setNavigationBarTitle({
  532. title: str
  533. });
  534. },
  535. //显示选择
  536. showPopup(refs){
  537. if(this.type == 'view'){
  538. return
  539. }
  540. this.$refs[refs].showPicker=true
  541. },
  542. }
  543. }
  544. </script>
  545. <style lang="scss" scoped>
  546. @import '../../common/css/apply.scss';
  547. .order-card{
  548. position: relative;
  549. box-shadow:0 0 16rpx 0px rgba(0, 0, 0, 0.1);
  550. // background-color: #fff;
  551. border-radius: 20rpx;
  552. overflow: hidden;
  553. // margin-top: 24rpx;
  554. margin: 24rpx 24rpx 0;
  555. z-index: 50;
  556. display: block;
  557. .order-card-title{
  558. display: flex;
  559. flex-direction: row;
  560. justify-content: space-between;
  561. // background: linear-gradient(to right, rgb(245, 249, 255), #fff);
  562. padding: 16rpx 24rpx;
  563. line-height: 50rpx;
  564. font-size: 32rpx;
  565. font-weight: 600;
  566. color: #fff;
  567. box-shadow:0 0 16rpx 0px rgba(0, 0, 0, 0.1);
  568. }
  569. .order-info {
  570. background-color: #fff;
  571. font-size: 28rpx;
  572. line-height: 56rpx;
  573. padding: 24rpx;
  574. color: #333;
  575. position: relative;
  576. .info-line {
  577. display: flex;
  578. flex-direction: row;
  579. align-items: center;
  580. line-height: 72rpx;
  581. .label {
  582. width: 200rpx;
  583. text-align: center;
  584. font-size: 24rpx;
  585. }
  586. .info {
  587. flex: 1;
  588. font-weight: bold;
  589. font-size: 28rpx;
  590. }
  591. .tag{
  592. padding: 0 16rpx 0 12rpx;
  593. border-top-right-radius: 40rpx;
  594. border-bottom-right-radius: 40rpx;
  595. height: 40rpx;
  596. line-height: 40rpx;
  597. }
  598. .tag-ls{
  599. border: 1px solid #f9ae3d;
  600. background-color: #fdf6ec;
  601. color: #f9ae3d;
  602. }
  603. .tag-gd{
  604. border: 1px solid #3c9cff;
  605. background-color: #ecf5ff;
  606. color: #3c9cff;
  607. }
  608. .tag-gx{
  609. border: 1px solid #5ac725;
  610. background-color: #f5fff0;
  611. color: #5ac725;
  612. }
  613. }
  614. .qrcode-logo{
  615. position: absolute;
  616. width: 128rpx;
  617. height: 128rpx;
  618. bottom: 24rpx;
  619. right: 24rpx;
  620. .img{
  621. width: 100%;
  622. height: 100%;
  623. }
  624. }
  625. }
  626. .card-oper{
  627. background-color: #fff;
  628. display: flex;
  629. flex-direction: row;
  630. justify-content: flex-end;
  631. padding: 24rpx;
  632. .btn{
  633. width: 25%;
  634. margin-left: 32rpx;
  635. }
  636. }
  637. }
  638. .shelf-card{
  639. margin: 0 0 24rpx;
  640. display: block;
  641. .order-info{
  642. flex-direction: row;
  643. flex-wrap: wrap;
  644. .info-line{
  645. width: 50%;
  646. .label{
  647. width: 120rpx;
  648. }
  649. }
  650. }
  651. }
  652. // /deep/ .u-popup__content{
  653. // height: 70%;
  654. // width: 90%;
  655. // overflow-y: scroll;
  656. // border-radius: 6px;
  657. // background-color: #f8f8f8;
  658. // }
  659. .picker-card{
  660. padding: 32rpx 32rpx 144rpx;
  661. position: relative;
  662. height: 100%;
  663. overflow-y: scroll;
  664. display: block;
  665. .card-oper{
  666. position: absolute;
  667. width: 100%;
  668. bottom: 0;
  669. left:0;
  670. display: flex;
  671. flex-direction: row;
  672. justify-content: space-between;
  673. padding: 24rpx;
  674. .btn{
  675. width: 100%;
  676. }
  677. }
  678. }
  679. </style>