quality_testing.vue 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171
  1. <template>
  2. <view class="center">
  3. <view class='navbar' style='position:fixed;background:#fff;top:0;width:100%;z-index:3;'>
  4. <view class="back-btn cuIcon-back" @click="navBack"></view>
  5. <view class='header-content' v-if='managementType==3'>出库质检</view>
  6. <view class='header-content' v-if='managementType==1'>入库质检</view>
  7. </view>
  8. <view class="header">
  9. <view style='background:#fff;display:flex;' class="cu-bar search">
  10. <view style='flex:6;' class="search-form round Medium">
  11. <text style='color: #ccc;text-indent:6px;' class="cuIcon-search"></text>
  12. <input v-if='managementType==1' type="text" maxlength="20" v-model="searchKeyWord"
  13. @confirm="doSearch()" placeholder="输入编号、客户名、车牌号" confirm-type="search"></input>
  14. <input v-if='managementType==3' type="text" maxlength="20" v-model="searchKeyWord"
  15. @confirm="doSearch()" placeholder="输入合同编号、车牌号" confirm-type="search"></input>
  16. </view>
  17. <view @click='doSearch()' class="Regular" style="width:4%;flex:1;">搜索</view>
  18. <u-icon @click='emptysearch' class="cuIcon" v-if='searchKeyWord.length>0' size="34"
  19. name="close-circle-fill" color="#D6D9E0"></u-icon>
  20. <!-- <text @click='emptysearch' v-if='searchKeyWord.length>0' class='tip_text cuIcon-roundclosefill'></text> -->
  21. </view>
  22. <view class='changewarehouse'>
  23. <view @click='show=true'>{{warehouseName?warehouseName:'选择仓库'}}<text class='cuIcon-unfold'></text></view>
  24. <u-picker @confirm="warehousechange" range-key='warehouseName' mode="selector" v-model="show"
  25. :range="selector"></u-picker>
  26. </view>
  27. <view >
  28. <view @click='show=true' class="company">
  29. <image class='icon' style='width:19px;height:19px;' src="../../static/img/icon_qiye@3x.png"
  30. mode=""></image> {{compName}}
  31. </view>
  32. </view>
  33. </view>
  34. <view class="content">
  35. <view style='background:#fff;' class="flex">
  36. <view class='line' :class='statusType==""?"active":""' @click='clickstatus("")'>全部</view>
  37. <view class='line' :class='statusType=="0"?"active":""' @click='clickstatus("0")'>待初检</view>
  38. <view class='line' :class='statusType=="1"?"active":""' @click='clickstatus("1")'>待复检</view>
  39. <view class='line' :class='statusType=="2"?"active":""' @click='clickstatus("2")'>待确认</view>
  40. </view>
  41. <view class="item-style" v-for='item in gridList' @click='examine(item)'>
  42. <view class="row1">
  43. <view class="row1-left">
  44. <view class="left status3" v-if="item.confirm=='1'">确</view>
  45. <view v-else>
  46. <view class="left status1" v-if="item.status=='待初检'">钎</view>
  47. <view class="left status1" v-if="item.status=='已质检'">检</view>
  48. <view class="left status2" v-if="item.status=='已称皮重'">皮</view>
  49. <view class="left status3" v-if="item.status=='已称毛重'">毛</view>
  50. <view class="left status1" v-if="item.status=='已初检'">初</view>
  51. <view class="left status2" v-if="item.status=='已复检'">复</view>
  52. <view class="left status3" v-if="item.confirm=='1'">确</view>
  53. </view>
  54. <view>
  55. <view class="top-title">
  56. <view v-if='managementType==1'>{{item.qualityNo}}</view>
  57. <view v-if='managementType==3'>{{item.contractNo}}</view>
  58. </view>
  59. <view class="bottom">{{item.updateDate}}</view>
  60. </view>
  61. </view>
  62. <view class="right">{{item.customer}}</view>
  63. <view class='right'>{{item.qualityInspector}} {{item.reInspector}}</view>
  64. </view>
  65. <view v-if='item.status!="待初检"' class="row2">
  66. <view v-if='managementType==1'>{{item.customerName}}</view>
  67. <view>{{item.carNumber}}</view>
  68. <view>{{item.goodsName}}({{item.waterContent}}水)</view>
  69. </view>
  70. <view class="row3">
  71. <view
  72. v-if='getRoles("acquisitionQuality.delete")&&item.weighingManagement&&item.weighingManagement.status=="已质检"&&managementType==1'
  73. @click.stop='del(item)' class='button'>删除</view>
  74. <view v-if='getRoles("acquisitionQuality.qview")&&item.status=="待初检"&&managementType==1'
  75. @click.stop='edit(item,3)' class='button'>钎样</view>
  76. <view v-if='getRoles("acquisitionQuality.initial")&&(!item.waterContent||item.status=="待初检")&&managementType==1'
  77. @click.stop='edit(item,0)' class='button'>初检</view>
  78. <view
  79. v-if='getRoles("acquisitionQuality.con")&&item.confirm!="1"&&item.status=="已复检"&&managementType==1'
  80. @click.stop='edit(item,2)' class='button'>确认</view>
  81. <view v-if='getRoles("acquisitionQuality.again")&&item.status=="已初检"&&item.confirm!="1"&&managementType==1'
  82. @click.stop='edit(item,1)' class='button'>复检</view>
  83. <view v-if='getRoles("acquisitionQualityOut.edit")&&item.status=="已称毛重"&&managementType==3'
  84. @click.stop='quality_testing(item)' class='button'>质检</view>
  85. <view v-if='item.status!="待初检"&&managementType==1'
  86. @click.stop='print(item)' class='button'>小票</view>
  87. </view>
  88. </view>
  89. <!-- <view class='wrap' v-for='item in gridList' @click='examine(item)'>
  90. <view class='flex justify-between'>
  91. <view v-if='item.status=="已质检"'>
  92. <view class='type type-zhi'>检</view>
  93. </view>
  94. <view v-if='item.status=="已称毛重"'>
  95. <view class='type type-mao'>毛</view>
  96. </view>
  97. <view v-if='item.status=="已称皮重"'>
  98. <view class='type type-pi'>皮</view>
  99. </view>
  100. <view>
  101. <view v-if='managementType==1' class='qualityNo'>{{item.qualityNo}}</view>
  102. <view v-if='managementType==3' class='qualityNo'>{{item.contractNo}}</view>
  103. <view class='time'>{{item.updateDate}}</view>
  104. </view>
  105. <view v-if='item.status=="已质检"' class='qualityInspector'>{{item.qualityInspector}}</view>
  106. <view v-else></view>
  107. </view>
  108. <view class="flex justify-around customerinformation">
  109. <view v-if='managementType==1'>{{item.customerName}}</view>
  110. <view>{{item.carNumber}}</view>
  111. <view>{{item.goodsName}}({{item.waterContent}}水)</view>
  112. </view>
  113. <view class='flex buttons'>
  114. <view v-if='item.status=="已质检"&&managementType==1' @click.stop='del(item)' class='button'>删除</view>
  115. <view v-if='item.status!="已称皮重"&&managementType==1' @click.stop='edit(item)' class='button'>编辑</view>
  116. <view v-if='item.status=="已称毛重"&&managementType==3' @click.stop='quality_testing(item)' class='button'>质检</view>
  117. </view>
  118. </view> -->
  119. <!-- <view class='flex buttons'>
  120. <view v-if='item.status=="已质检"&&managementType==1' @click.stop='del(item)' class='button'>删除</view>
  121. <view v-if='item.status!="已称皮重"&&managementType==1' @click.stop='edit(item)' class='button'>编辑</view>
  122. <view v-if='item.status=="已称毛重"&&managementType==3' @click.stop='quality_testing(item)' class='button'>质检</view>
  123. </view> -->
  124. </view>
  125. <view v-show="isContent">
  126. <uni-load-more :status="loadStatus"></uni-load-more>
  127. </view>
  128. <view v-if='managementType==1&&getRoles("acquisitionQuality.qview")||managementType==1&&getRoles("acquisitionQuality.initial")' class="footer">
  129. <view @click='add' class="button">新增</view>
  130. </view>
  131. </view>
  132. </template>
  133. <script>
  134. import dragButton from "@/components/drag-button/drag-button.vue";
  135. import {
  136. mapState
  137. } from 'vuex';
  138. let startY = 0,
  139. moveY = 0,
  140. pageAtTop = true;
  141. export default {
  142. components: {
  143. dragButton
  144. },
  145. data() {
  146. return {
  147. compName:'',
  148. inputShow: false,
  149. modalName: '',
  150. mycarStyle: '',
  151. feild: undefined,
  152. params: {},
  153. selector: [],
  154. isContent: false,
  155. loadStatus: 'noMore',
  156. inputContent: '',
  157. coverTransform: 'translateY(0px)',
  158. coverTransition: '0s',
  159. moving: false,
  160. footprintList: [],
  161. searchKeyWord: '',
  162. statusType:'',
  163. isVip: false,
  164. userInfoTmp: [],
  165. inputStatus: 'none',
  166. carInfo: [],
  167. gridCol: 4,
  168. show: false,
  169. pageSize: 10,
  170. currentPage: 1,
  171. gridBorder: false,
  172. headUrl: "../../static/img/myimg/YongHu@3x.png",
  173. userphone: "",
  174. username: "请更改昵称",
  175. gridList: [],
  176. managementType: 1,
  177. warehouseName: '',
  178. showTran: true,
  179. companyId: 1,
  180. current: 4,
  181. warehouseCount: '',
  182. warehouseTradeCount:'',
  183. commonWarehouseNo: '',
  184. cangid: '',
  185. warehouse: {},
  186. }
  187. },
  188. // #ifndef MP
  189. onNavigationBarButtonTap(e) {
  190. const index = e.index;
  191. if (index === 0) {
  192. this.navTo('/pages/set/set');
  193. } else if (index === 1) {
  194. // #ifdef APP-PLUS
  195. const pages = getCurrentPages();
  196. const page = pages[pages.length - 1];
  197. const currentWebview = page.$getAppWebview();
  198. currentWebview.hideTitleNViewButtonRedDot({
  199. index
  200. });
  201. // #endif
  202. uni.navigateTo({
  203. url: '/pages/notice/notice'
  204. })
  205. }
  206. },
  207. onBackPress() {
  208. uni.switchTab({
  209. url: '/pages/user/user'
  210. });
  211. return true
  212. },
  213. // #endif
  214. computed: {
  215. ...mapState(['hasLogin', 'userInfo']),
  216. // 手机号中间4位加*
  217. starUserphone() {
  218. let reg = /^(\d{3})\d{4}(\d{4})$/;
  219. if (this.userphone) {
  220. return this.userphone.replace(reg, "$1****$2");
  221. }
  222. }
  223. },
  224. onPullDownRefresh() {
  225. this.currentPage = 1
  226. this.gridList = []
  227. this.getList(true)
  228. setTimeout(function() {
  229. uni.stopPullDownRefresh();
  230. }, 1000);
  231. },
  232. onReachBottom() {
  233. this.currentPage += 1
  234. this.getList(false)
  235. // this.getMoreNews()
  236. },
  237. onLoad(options) {
  238. this.managementType = options.managementType
  239. },
  240. onShow() {
  241. uni.setStorageSync('isClick', false)
  242. uni.showLoading({
  243. title: "正在加载"
  244. })
  245. this.pageSize = 10
  246. this.currentPage = 1
  247. var that = this
  248. if (this.cangid) {
  249. uni.setStorageSync("cangid", this.cangid)
  250. } else {
  251. this.cangid = uni.getStorageSync("cangid")
  252. }
  253. this.gridList = []
  254. this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouseSelf', {
  255. compId: '',
  256. personCharge: this.userInfo.phone
  257. }).then(res => {
  258. if (res.data.data) {
  259. let list = res.data.data
  260. for (var i = 0; i < list.length; i++) {
  261. if (that.cangid && that.cangid == list[i].id) {
  262. that.warehouse = list[i]
  263. that.warehouseName = list[i].warehouseName
  264. that.warehouseCount = list[i].count
  265. that.warehouseTradeCount = list[i].tradeCount
  266. that.commonWarehouseNo = list[i].commonWarehouseNo
  267. // uni.setStorageSync('purchasePriceList',list[i].purchasePriceList)
  268. break
  269. }
  270. }
  271. that.selector = res.data.data
  272. if (that.selector.length > 0 && !that.cangid) {
  273. that.warehouse = that.selector[0]
  274. that.warehouseName = that.selector[0].warehouseName
  275. that.warehouseCount = that.selector[0].count
  276. that.warehouseTradeCount = that.selector[0].tradeCount
  277. that.commonWarehouseNo = that.selector[0].commonWarehouseNo
  278. that.cangid = that.selector[0].id
  279. uni.setStorageSync("cangid", that.cangid)
  280. // uni.setStorageSync('purchasePriceList',that.selector[0].purchasePriceList)
  281. }
  282. this.getList(true)
  283. }
  284. })
  285. that.compName = uni.getStorageSync('compName1')
  286. },
  287. methods: {
  288. print(item){
  289. uni.setStorageSync("quality_print", item)
  290. uni.navigateTo({
  291. url: '/pages/erpbusiness/bleConnect'
  292. })
  293. },
  294. clickstatus(status){
  295. this.statusType=status
  296. this.getList(true)
  297. },
  298. //获取当前按钮权限
  299. getRoles: function(role) {
  300. let _roles = uni.getStorageSync('rolesList')
  301. for (let i = 0; i < _roles.length; i++) {
  302. if (_roles[i] == role) {
  303. return true
  304. }
  305. }
  306. return false
  307. },
  308. quality_testing(item) {
  309. uni.navigateTo({
  310. url: '/pages/erpbusiness/out_quality_testing?id=' + item.id + '&managementType=' + this
  311. .managementType + '&cangid=' + this.cangid
  312. })
  313. },
  314. examine(item) {
  315. if(item.status!='待初检'){
  316. uni.navigateTo({
  317. url: '/pages/erpbusiness/examine_quality_testing?id=' + item.id + '&managementType=' + this
  318. .managementType + '&cangid=' + this.cangid + '&statusShow=' + item.status
  319. })
  320. }
  321. },
  322. emptysearch() {
  323. this.searchKeyWord = ''
  324. this.gridList = []
  325. this.currentPage = 1
  326. this.getList(true)
  327. },
  328. doSearch() {
  329. this.gridList = []
  330. this.currentPage = 1
  331. this.getList(true)
  332. },
  333. warehousechange(e) {
  334. this.warehouse = this.selector[0]
  335. this.warehouseName = this.selector[e[0]].warehouseName
  336. this.cangid = this.selector[e[0]].id
  337. uni.setStorageSync("cangid", this.cangid)
  338. this.warehouseCount = this.selector[e[0]].count
  339. this.warehouseTradeCount = this.selector[e[0]].tradeCount
  340. this.commonWarehouseNo = this.selector[e[0]].commonWarehouseNo
  341. // uni.setStorageSync('purchasePriceList',this.selector[e[0]].purchasePriceList)
  342. this.getList(true)
  343. console.log(e)
  344. },
  345. getList(flag) {
  346. var that = this
  347. this.$api.doRequest('get', 'qualityInspectionManagement/selectQualityInspection', {
  348. pageSize: this.pageSize,
  349. currentPage: this.currentPage,
  350. searchKeyWord: this.searchKeyWord,
  351. searchType: this.searchType,
  352. statusType:this.statusType,
  353. managementType: this.managementType,
  354. warehouseName: this.warehouseName,
  355. compId: '',
  356. // pcFlag:1
  357. }).then(res => {
  358. uni.hideLoading()
  359. if (res.data.data) {
  360. let data = res.data.data.records
  361. //采购信息
  362. if (data.length > 0) {
  363. if (flag) {
  364. that.gridList = data
  365. } else {
  366. that.gridList = that.gridList.concat(data)
  367. }
  368. } else {
  369. if (this.currentPage == 1) {
  370. that.gridList = []
  371. }
  372. this.isContent = true
  373. }
  374. }else{
  375. if (this.currentPage == 1) {
  376. that.gridList = []
  377. }
  378. }
  379. // console.log(that.gridList)
  380. })
  381. .catch(res => {
  382. uni.showToast({
  383. title: '系统异常,请联系管理员',
  384. icon: 'none',
  385. duration: 2000
  386. })
  387. uni.hideLoading()
  388. })
  389. },
  390. edit(item, status) {
  391. if(status==0||status==3){
  392. if(this.utils.getCurrectRoles('acquisitionQuality.qview')&&this.utils.getCurrectRoles('acquisitionQuality.initial')){
  393. status=4
  394. }
  395. }
  396. uni.navigateTo({
  397. url: '/pages/erpbusiness/edit_quality_testing?id=' + item.id + '&managementType=' + this
  398. .managementType + '&cangid=' + this.cangid + '&flag=' + status+'&warehouseName='+this.warehouseName
  399. })
  400. },
  401. add() {
  402. uni.navigateTo({
  403. url: '/pages/erpbusiness/add_quality_testing?managementType=' + this.managementType +
  404. '&cangid=' + this.cangid + '&warehouseCount=' + this.warehouseCount +
  405. '&commonWarehouseNo=' + this.commonWarehouseNo + '&warehouseName=' + this.warehouseName +
  406. '&personCharge=' + this.warehouse.personCharge + '&personPhone=' + this.warehouse
  407. .personPhone+'&warehouseTradeCount=' + this.warehouseTradeCount
  408. })
  409. },
  410. del(item) {
  411. var that = this
  412. uni.showModal({
  413. content: "是否删除该质检信息?",
  414. showCancel: true,
  415. confirmText: '删除',
  416. success: function(res) {
  417. if (res.confirm) {
  418. that.$api.doRequest('post',
  419. '/qualityInspectionManagement/api/deleteQualityInspection', {
  420. id: item.id
  421. }).then(res => {
  422. if (res.data.code == 200) {
  423. that.$api.msg('删除成功')
  424. that.gridList = []
  425. that.getList()
  426. } else {
  427. that.$api.msg('系统异常,请联系管理员')
  428. }
  429. })
  430. }
  431. }
  432. })
  433. },
  434. fankui() {
  435. uni.navigateTo({
  436. url: `/pages/user/fankui`
  437. })
  438. },
  439. zhibo() {
  440. uni.navigateTo({
  441. url: `/pageB/video/broadcast`
  442. })
  443. },
  444. look() {
  445. uni.navigateTo({
  446. url: `/pageB/video/look`
  447. })
  448. },
  449. contactUs() {
  450. const that = this
  451. uni.makePhoneCall({
  452. // 手机号
  453. phoneNumber: '18241771147',
  454. // 成功回调
  455. success: (res) => {},
  456. // 失败回调
  457. fail: (res) => {}
  458. });
  459. },
  460. loadData() {
  461. // const that = this
  462. // if(uni.getStorageSync("PageCur")){
  463. // that.PageCur = uni.getStorageSync("PageCur");
  464. // }
  465. // that.userInfoTmp = uni.getStorageSync("userInfo")
  466. // uni.showLoading({
  467. // title: '正在加载',
  468. // mask:true
  469. // })
  470. // that.$api.request('integral', 'getIndexData', failres => {
  471. // that.$api.msg(failres.errmsg)
  472. // uni.hideLoading()
  473. // }).then(res => {
  474. // let data = res.data
  475. // uni.setStorageSync("message", data.message);
  476. // uni.setStorageSync("task", data.task);
  477. // uni.setStorageSync("contract", data.contract);
  478. // uni.setStorageSync('showTran', data.showTran);
  479. // that.showTran = data.showTran
  480. // that.gridList[4].tips = data.task
  481. // that.gridList[2].tips = data.contract
  482. // that.companyId = data.companyId
  483. // uni.hideLoading()
  484. // })
  485. },
  486. confirm() {
  487. const that = this
  488. if (!that.inputContent) {
  489. that.$api.msg('输入不能为空')
  490. return
  491. }
  492. let obj = {}
  493. obj[that.feild] = that.inputContent
  494. that.$api.request('user', 'syncUserInfo', obj).then(res => {
  495. that.userInfo.nickname = that.inputContent
  496. that.inputContent = ''
  497. that.$store.commit('login', that.userInfo)
  498. })
  499. },
  500. cancel() {
  501. this.inputShow = false
  502. this.inputStatus = 'none'
  503. this.genderShow = false
  504. },
  505. navBack() {
  506. uni.navigateBack();
  507. },
  508. /**
  509. * 统一跳转接口,拦截未登录路由
  510. * navigator标签现在默认没有转场动画,所以用view
  511. */
  512. navTo(url) {
  513. if (!this.hasLogin) {
  514. url = '/pages/public/login';
  515. }
  516. uni.navigateTo({
  517. url
  518. })
  519. },
  520. scanCode() {
  521. uni.scanCode({
  522. success: function(res) {
  523. uni.navigateTo({
  524. url: res.result
  525. })
  526. }
  527. })
  528. },
  529. hideModal(e) {
  530. this.modalName = null
  531. },
  532. }
  533. }
  534. </script>
  535. <style scoped lang='scss'>
  536. page {
  537. background: #F5F6FA;
  538. margin-bottom: 160rpx;
  539. }
  540. .container {
  541. padding-top: 85px;
  542. padding-top: 35px;
  543. background-color: #F5F6FA;
  544. position: relative;
  545. width: 100vw;
  546. height: 100vh;
  547. overflow: hidden;
  548. background: url('~@/static/img/login/bg_slices/bg@3x.png');
  549. background-size: 100% 100%;
  550. margin: 0 auto;
  551. }
  552. .item-style {
  553. background: white;
  554. margin: 20rpx;
  555. padding: 20rpx;
  556. .row1 {
  557. display: flex;
  558. align-items: center;
  559. justify-content: space-between;
  560. .row1-left {
  561. display: flex;
  562. justify-content: flex-start;
  563. align-items: center;
  564. .left {
  565. margin-right: 20rpx;
  566. }
  567. .top-title {
  568. font-size: 32rpx;
  569. font-weight: 600;
  570. color: #333333;
  571. }
  572. .bottom {
  573. color: #878C9C;
  574. }
  575. .right {
  576. font-size: 28rpx;
  577. font-weight: 600;
  578. color: #333333;
  579. }
  580. }
  581. }
  582. .row2 {
  583. display: flex;
  584. background: #F9F9FA;
  585. border-radius: 10rpx;
  586. padding: 10rpx 0;
  587. justify-content: space-around;
  588. margin: 20rpx;
  589. color: #878C9C;
  590. align-items: center;
  591. }
  592. .row3 {
  593. display: flex;
  594. margin-top: 30rpx;
  595. .row3-item {
  596. display: flex;
  597. margin-right: 40rpx;
  598. .left {
  599. background: #22C572;
  600. border-radius: 10rpx;
  601. padding: 2rpx 10rpx;
  602. box-sizing: border-box;
  603. color: white;
  604. font-size: 12px;
  605. margin-right: 15rpx;
  606. }
  607. }
  608. }
  609. .row4 {
  610. display: flex;
  611. justify-content: flex-end;
  612. margin-top: 10px;
  613. .right {
  614. border: 1px solid #CDCDCD;
  615. border-radius: 45rpx;
  616. padding: 10rpx 30rpx;
  617. margin-left: 20rpx;
  618. }
  619. }
  620. }
  621. .cu-tag.badge {
  622. right: 26rpx;
  623. }
  624. .path {
  625. color: #007aff;
  626. display: inline-block;
  627. text-align: center;
  628. }
  629. .icon {
  630. margin-right: 10rpx;
  631. }
  632. .portrait-box {
  633. margin-top: 20rpx;
  634. }
  635. .qr-wrap {
  636. margin-top: 20upx;
  637. color: #fff;
  638. font-size: 32rpx;
  639. }
  640. @keyframes move_wave {
  641. 0% {
  642. transform: translateX(0) translateZ(0) scaleY(1)
  643. }
  644. 50% {
  645. transform: translateX(-25%) translateZ(0) scaleY(0.55)
  646. }
  647. 100% {
  648. transform: translateX(-50%) translateZ(0) scaleY(1)
  649. }
  650. }
  651. .bg {
  652. position: relative;
  653. height: 300rpx;
  654. /* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
  655. /*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
  656. background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
  657. }
  658. .bg_ware {
  659. position: absolute;
  660. left: 0;
  661. bottom: -2rpx;
  662. width: 100%;
  663. mix-blend-mode: screen;
  664. height: 224rpx;
  665. }
  666. %flex-center {
  667. display: flex;
  668. flex-direction: column;
  669. justify-content: center;
  670. align-items: center;
  671. }
  672. %section {
  673. display: flex;
  674. justify-content: space-around;
  675. align-content: center;
  676. background: #fff;
  677. border-radius: 10upx;
  678. }
  679. .cuIcon {
  680. position: absolute;
  681. right: 80px;
  682. }
  683. .grid-item-box {
  684. flex: 1;
  685. /* position: relative;
  686. */
  687. /* #ifndef APP-NVUE */
  688. display: flex;
  689. /* #endif */
  690. flex-direction: column;
  691. align-items: center;
  692. justify-content: center;
  693. padding: 15px 0;
  694. }
  695. .image {
  696. width: 80rpx;
  697. height: 80rpx;
  698. }
  699. .text {
  700. font-size: 26rpx;
  701. margin-top: 10rpx;
  702. }
  703. .user-section {
  704. height: 520upx;
  705. padding: 100upx 30upx 0;
  706. position: relative;
  707. .bg {
  708. position: absolute;
  709. left: 0;
  710. top: 0;
  711. width: 100%;
  712. height: 100%;
  713. filter: blur(1px);
  714. box-shadow: 0px 1px 8px #ccc;
  715. /* background:linear-gradient(#0eb0c9,#126bae); */
  716. /* opacity: .7; */
  717. }
  718. }
  719. .cover-container {
  720. padding: 1px 10px;
  721. padding-bottom: 200upx;
  722. /* background-color: #F5F6FA; */
  723. /* border-radius: 20px; */
  724. margin-top: 60upx;
  725. .arc {
  726. position: absolute;
  727. left: 0;
  728. top: -34upx;
  729. width: 100%;
  730. height: 36upx;
  731. }
  732. }
  733. .status{
  734. padding:3px 6px;
  735. }
  736. .tj-sction {
  737. @extend %section;
  738. .tj-item {
  739. @extend %flex-center;
  740. flex-direction: column;
  741. height: 140upx;
  742. font-size: $font-sm;
  743. color: #75787d;
  744. }
  745. .num {
  746. font-size: $font-lg;
  747. color: $font-color-dark;
  748. margin-bottom: 8upx;
  749. }
  750. }
  751. .order-section {
  752. @extend %section;
  753. padding: 28upx 0;
  754. margin-top: 20upx;
  755. .order-item {
  756. @extend %flex-center;
  757. width: 120upx;
  758. height: 120upx;
  759. border-radius: 10upx;
  760. font-size: $font-sm;
  761. color: $font-color-dark;
  762. }
  763. .yticon {
  764. font-size: 48upx;
  765. margin-bottom: 18upx;
  766. color: #fa436a;
  767. }
  768. .icon-shouhoutuikuan {
  769. font-size: 44upx;
  770. }
  771. }
  772. .history-section {
  773. padding: 30upx 0 0;
  774. margin-top: 20upx;
  775. background: #fff;
  776. border-radius: 10upx;
  777. .sec-header {
  778. display: flex;
  779. align-items: center;
  780. font-size: $font-base;
  781. color: $font-color-dark;
  782. line-height: 40upx;
  783. margin-left: 30upx;
  784. .yticon {
  785. font-size: 44upx;
  786. color: #5eba8f;
  787. margin-right: 16upx;
  788. line-height: 40upx;
  789. }
  790. }
  791. .h-list {
  792. white-space: nowrap;
  793. padding: 30upx 30upx 0;
  794. image {
  795. display: inline-block;
  796. width: 160upx;
  797. height: 160upx;
  798. margin-right: 20upx;
  799. border-radius: 10upx;
  800. }
  801. }
  802. }
  803. .search-form {
  804. background: #F5F6F9;
  805. }
  806. .line {
  807. display: inline-block;
  808. padding: 5px;
  809. position: relative;
  810. font-size: 17px;
  811. margin-right: 10rpx;
  812. }
  813. .line.active {
  814. font-size: 38rpx;
  815. font-weight: 900;
  816. }
  817. .line.active:after {
  818. content: '';
  819. display: block;
  820. position: absolute;
  821. width: 36rpx;
  822. height: 6rpx;
  823. left: 50%;
  824. transform: translateX(-50%);
  825. bottom: 0;
  826. background: #22C572;
  827. /* border-bottom: 1px solid #22C572; */
  828. }
  829. .search-box {
  830. width: 100%;
  831. background-color: rgb(242, 242, 242);
  832. padding: 15upx 2.5%;
  833. display: flex;
  834. justify-content: space-between;
  835. }
  836. .search-box .mSearch-input-box {
  837. width: 100%;
  838. }
  839. .search-box .input-box {
  840. width: 85%;
  841. flex-shrink: 1;
  842. display: flex;
  843. justify-content: center;
  844. align-items: center;
  845. }
  846. .search-box .search-btn {
  847. width: 15%;
  848. margin: 0 0 0 2%;
  849. display: flex;
  850. justify-content: center;
  851. align-items: center;
  852. flex-shrink: 0;
  853. font-size: 28upx;
  854. color: #fff;
  855. background: linear-gradient(to right, #ff9801, #ff570a);
  856. border-radius: 60upx;
  857. }
  858. .search-box .input-box>input {
  859. width: 100%;
  860. height: 60upx;
  861. font-size: 32upx;
  862. border: 0;
  863. border-radius: 60upx;
  864. -webkit-appearance: none;
  865. -moz-appearance: none;
  866. appearance: none;
  867. padding: 0 3%;
  868. margin: 0;
  869. background-color: #ffffff;
  870. }
  871. .placeholder-class {
  872. color: #9e9e9e;
  873. }
  874. .search-keyword {
  875. width: 100%;
  876. background-color: rgb(242, 242, 242);
  877. }
  878. .grid {
  879. display: flex;
  880. align-items: center;
  881. flex-wrap: wrap;
  882. /* border-top: 2upx solid rgba(172,172,172,.2); */
  883. .grid-item-3 {
  884. box-sizing: border-box;
  885. width: calc(100% / 3);
  886. border-bottom: 2upx solid rgba(172, 172, 172, .2);
  887. border-right: 2upx solid rgba(172, 172, 172, .2);
  888. text-align: center;
  889. padding: 40upx 0;
  890. position: relative;
  891. /* view{
  892. font-size: $font-sm;
  893. margin-top: 16upx;
  894. color: $font-color-dark;
  895. } */
  896. .grid_icon {
  897. font-size: 48upx;
  898. margin-bottom: 18upx;
  899. color: #fa436a;
  900. }
  901. .tip_text {
  902. display: block;
  903. padding: 4upx 8upx;
  904. text-align: center;
  905. border-radius: 36upx;
  906. font-size: 24upx;
  907. background-color: #fa436a;
  908. color: rgba(255, 255, 255, 1);
  909. position: absolute;
  910. right: 6upx;
  911. top: 6upx;
  912. }
  913. }
  914. .grid-item-3:nth-child(3n + 3),
  915. .grid-item-4:nth-child(4n + 4) {
  916. border-right: none;
  917. }
  918. }
  919. .headPortrait {
  920. width: 75px;
  921. height: 75px;
  922. border-radius: 40px;
  923. border: 2px solid #ffffff;
  924. }
  925. .information {
  926. font-size: 15px;
  927. font-weight: 600;
  928. height: 36px;
  929. }
  930. .cu-list>.cu-item:after {
  931. border: none;
  932. }
  933. .back-btn {
  934. position: fixed;
  935. left: 40upx;
  936. z-index: 9999;
  937. padding-top: var(--status-bar-height);
  938. top: 30upx;
  939. font-size: 36upx;
  940. color: $font-color-dark;
  941. }
  942. .navbar {
  943. height: 50px;
  944. }
  945. .header-content {
  946. position: fixed;
  947. left: 50%;
  948. transform: translateX(-50%);
  949. z-index: 9999;
  950. padding-top: var(--status-bar-height);
  951. top: 30upx;
  952. font-size: 36upx;
  953. color: $font-color-dark;
  954. }
  955. .sign {
  956. width: 40px;
  957. height: 40px;
  958. top: 4px;
  959. margin-right: 6px;
  960. }
  961. .indexUp {
  962. padding: 0 20px;
  963. align-items: center;
  964. }
  965. .wrap {
  966. background: #fff;
  967. margin: 10px;
  968. border-radius: 10px;
  969. padding: 10px;
  970. }
  971. .qualityNo {
  972. font-size: 16px;
  973. }
  974. .type {
  975. font-size: 12px;
  976. color: #fff;
  977. padding: 3px 5px;
  978. border-radius: 50%;
  979. line-height: 16px;
  980. }
  981. .type-zhi {
  982. background: #22C572;
  983. }
  984. .type-mao {
  985. background: #3296FA;
  986. }
  987. .type-pi {
  988. background: #FD714F;
  989. }
  990. .time {
  991. font-size: 12px;
  992. color: #878C9C;
  993. }
  994. .qualityInspector {
  995. font-size: 14px;
  996. }
  997. .customerinformation {
  998. background: #F9F9FA;
  999. padding: 7px;
  1000. margin: 20px 0;
  1001. border-radius: 10px;
  1002. color: #9698A2;
  1003. }
  1004. .buttons {
  1005. flex-direction: row-reverse;
  1006. }
  1007. .button {
  1008. padding: 13rpx 30rpx;
  1009. border: 1px solid #CDCDCD;
  1010. border-radius: 15px;
  1011. margin: 0 10px;
  1012. }
  1013. .changewarehouse {
  1014. padding: 10px 20px;
  1015. }
  1016. .header {
  1017. background: #fff;
  1018. margin-top: 60px;
  1019. border-radius: 0px 0px 16px 16px;
  1020. }
  1021. .footer {
  1022. background: #fff;
  1023. position: fixed;
  1024. bottom: 0;
  1025. width: 100%;
  1026. padding: 20px 10px;
  1027. z-index: 10;
  1028. .button {
  1029. background: #22C572;
  1030. width: 90%;
  1031. margin: 0 auto;
  1032. padding: 10px;
  1033. color: #fff;
  1034. text-align: center;
  1035. border-radius: 30px;
  1036. }
  1037. }
  1038. .status1,
  1039. .status2,
  1040. .status3 {
  1041. padding: 8rpx 12rpx;
  1042. border-radius: 50%;
  1043. color: white;
  1044. }
  1045. .status1 {
  1046. background: #FD714F;
  1047. }
  1048. .status2 {
  1049. background: #22C572;
  1050. }
  1051. .status3 {
  1052. background: #3296FA;
  1053. }
  1054. .center {
  1055. padding-bottom: 150rpx;
  1056. }
  1057. .company {
  1058. position: fixed;
  1059. right: 0;
  1060. top: 18%;
  1061. background: url('../../static/img/qiyebeijing.png');
  1062. background-size: 100%;
  1063. font-size: 11px;
  1064. padding-bottom: 5px;
  1065. padding-left: 10px;
  1066. border-radius: 40rpx 0 0 40rpx;
  1067. }
  1068. .company .icon {
  1069. position: relative;
  1070. top: 4px;
  1071. }
  1072. </style>