customer.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889
  1. <template>
  2. <view>
  3. <view class="header">
  4. <view style='background:#fff;display:flex;' class="cu-bar search">
  5. <view style='flex:6;' class="search-form round Medium">
  6. <text style='color: #ccc;text-indent:6px;' class="cuIcon-search"></text>
  7. <input @input='searchinput' type="text" maxlength="20" :focus="true" v-model="searchKeyWord" @confirm="doSearch()"
  8. placeholder="输入客户姓名或手机号" confirm-type="search"></input>
  9. </view>
  10. <view @click='doSearch()' class="Regular" style="width:4%;flex:1;">搜索</view>
  11. <u-icon @click='emptysearch' class="cuIcon" v-if='searchKeyWord.length>0' size="34" name="close-circle-fill" color="#D6D9E0"></u-icon>
  12. <!-- <text @click='emptysearch' v-if='searchKeyWord.length>0' class='tip_text cuIcon-roundclosefill'></text> -->
  13. </view>
  14. </view>
  15. <view class="content">
  16. <view style='padding-left:20px;color:#AFB3BF;font-size:14px;' v-if='show==false'>近期客户</view>
  17. <view v-for='item in gridList'>
  18. <view v-if='searchKeyWord.length>0&&show==true' class='searchwrap' @click='checkcustomer(item)'>
  19. {{item.customerName}}({{item.customerPhone}})
  20. </view>
  21. </view>
  22. <view v-for='item in gridList' style='display:inline-block;'>
  23. <view @click='recentcustomer(item)' class='wrap' v-if='show==false'>{{item.searchContent}}</view>
  24. </view>
  25. </view>
  26. <view v-show="isContent">
  27. <uni-load-more :status="loadStatus"></uni-load-more>
  28. </view>
  29. </view>
  30. </template>
  31. <script>
  32. import dragButton from "@/components/drag-button/drag-button.vue";
  33. import {
  34. mapState
  35. } from 'vuex';
  36. let startY = 0,
  37. moveY = 0,
  38. pageAtTop = true;
  39. export default {
  40. components: {
  41. dragButton
  42. },
  43. data() {
  44. return {
  45. inputShow: false,
  46. modalName: '',
  47. mycarStyle: '',
  48. feild: undefined,
  49. params:{},
  50. selector:[],
  51. isContent:false,
  52. loadStatus:'noMore',
  53. inputContent: '',
  54. coverTransform: 'translateY(0px)',
  55. coverTransition: '0s',
  56. moving: false,
  57. footprintList: [],
  58. searchKeyWord:'',
  59. isVip: false,
  60. userInfoTmp: [],
  61. inputStatus: 'none',
  62. carInfo: [],
  63. gridCol: 4,
  64. show:false,
  65. pageSize:10,
  66. currentPage:1,
  67. gridBorder: false,
  68. headUrl:"../../static/img/myimg/YongHu@3x.png",
  69. userphone:"",
  70. username:"请更改昵称",
  71. gridList: [],
  72. managementType:'',
  73. warehouseName: '',
  74. showTran: true,
  75. companyId: 1,
  76. current: 4,
  77. customerList:[],
  78. purchasePriceList:[],
  79. warehouseCount:'',
  80. commonWarehouseNo:'',
  81. cangid:''
  82. }
  83. },
  84. // #ifndef MP
  85. onNavigationBarButtonTap(e) {
  86. const index = e.index;
  87. if (index === 0) {
  88. this.navTo('/pages/set/set');
  89. } else if (index === 1) {
  90. // #ifdef APP-PLUS
  91. const pages = getCurrentPages();
  92. const page = pages[pages.length - 1];
  93. const currentWebview = page.$getAppWebview();
  94. currentWebview.hideTitleNViewButtonRedDot({
  95. index
  96. });
  97. // #endif
  98. uni.navigateTo({
  99. url: '/pages/notice/notice'
  100. })
  101. }
  102. },
  103. // #endif
  104. computed: {
  105. ...mapState(['hasLogin', 'userInfo']),
  106. // 手机号中间4位加*
  107. starUserphone(){
  108. let reg = /^(\d{3})\d{4}(\d{4})$/;
  109. if(this.userphone){
  110. return this.userphone.replace(reg, "$1****$2");
  111. }
  112. }
  113. },
  114. onLoad(options){
  115. this.cangid = options.cangid
  116. this.$api.doRequest('get', '/qualityInspectionManagement/api/goodsName',{
  117. warehouseId:this.cangid
  118. }).then(res => {
  119. if(res.data.data){
  120. uni.setStorageSync('purchasePriceList',res.data.data)
  121. this.purchasePriceList=uni.getStorageSync('purchasePriceList')
  122. }
  123. })
  124. },
  125. onShow() {
  126. this.purchasePriceList=uni.getStorageSync('purchasePriceList')
  127. this.gridList=[]
  128. this.$api.doRequest('get', '/searchRecordsInfo/selectSearchRecordsInfo',{
  129. pageSize:this.pageSize,
  130. currentPage:this.currentPage,
  131. functionType:"3",
  132. commonId:this.userInfo.id
  133. }).then(res => {
  134. if(res.data.data){
  135. this.gridList=res.data.data.records
  136. console.log(this.gridList)
  137. }
  138. })
  139. this.$api.doRequest('get', '/identityAuthenticationInfo/identityAuthenticationInfoCustomer',{
  140. compId:'',
  141. authenticationStatusKey:7,
  142. }).then(res => {
  143. if(res.data.data){
  144. this.customerList=res.data.data
  145. }
  146. })
  147. },
  148. methods: {
  149. searchinput(e){
  150. if(this.searchKeyWord.length==0){
  151. this.show=false
  152. this.getList()
  153. }
  154. },
  155. checkcustomer(item){
  156. var that = this
  157. var count=''
  158. if(item.authenticationStatus=='已认证'){
  159. uni.showLoading({title: '加载中'})
  160. that.$api.doRequest('post', '/searchRecordsInfo/api/addInfo',{
  161. commonId:that.userInfo.id,
  162. searchContent:item.customerName+'('+item.customerPhone+')',
  163. functionType:3
  164. }).then(res => {
  165. that.$api.doRequest('get', '/qualityInspectionManagement/api/settledCount',{
  166. compId:'',
  167. customerName: item.customerName,
  168. goodsName: uni.getStorageSync('goodsName'),
  169. }).then(res => {
  170. if(res.data.code==200){
  171. count=res.data.data
  172. that.$api.doRequest('get', '/paymentManagement/cumulant',{
  173. compId:'',
  174. customerName: item.customerName,
  175. goodsName: uni.getStorageSync('goodsName'),
  176. }).then(res => {
  177. uni.hideLoading()
  178. for (let i = 0; i < that.purchasePriceList.length; i++) {
  179. var data = res.data.data/1000
  180. if(that.purchasePriceList[i].goodsName== uni.getStorageSync('goodsName')){
  181. if(that.purchasePriceList[i].saleLimit - data < 50 || count > 0){
  182. that.$api.msg(`当前客户已累计销售我司${uni.getStorageSync('goodsName')}${data.toFixed(2)}吨,最高可售${that.purchasePriceList[i].saleLimit}吨。`)
  183. }
  184. }
  185. }
  186. })
  187. }
  188. })
  189. uni.setStorageSync('checkcustomer',item)
  190. that.show=false
  191. uni.navigateBack()
  192. })
  193. .catch(res => {
  194. uni.showToast({
  195. title: '系统异常,请联系管理员',
  196. icon: 'none',
  197. duration: 2000
  198. })
  199. uni.hideLoading()
  200. })
  201. }else{
  202. this.$api.msg('客户身份不可用')
  203. }
  204. },
  205. recentcustomer(item){
  206. var count=''
  207. var that = this
  208. var name=item.searchContent.split('(')[0]
  209. for(var i=0;i<this.customerList.length;i++){
  210. // console.log(name,this.customerList[i].customerName,name==this.customerList[i].customerName)
  211. if(this.customerList[i].customerName==name){
  212. var tmpName = this.customerList[i].customerName
  213. uni.showLoading({title: '加载中'})
  214. that.$api.doRequest('post', '/searchRecordsInfo/api/addInfo',{
  215. commonId:that.userInfo.id,
  216. searchContent:this.customerList[i].customerName+'('+this.customerList[i].customerPhone+')',
  217. functionType:3
  218. }).then(res => {
  219. uni.setStorageSync('checkcustomer',tmpName)
  220. that.$api.doRequest('get', '/qualityInspectionManagement/api/settledCount',{
  221. compId:'',
  222. customerName: tmpName,
  223. goodsName: uni.getStorageSync('goodsName'),
  224. }).then(res => {
  225. if(res.data.code==200){
  226. count=res.data.data
  227. that.$api.doRequest('get', '/paymentManagement/cumulant',{
  228. compId:'',
  229. customerName: tmpName,
  230. goodsName: uni.getStorageSync('goodsName'),
  231. }).then(res => {
  232. for (let i = 0; i < that.purchasePriceList.length; i++) {
  233. if(that.purchasePriceList[i].goodsName== uni.getStorageSync('goodsName')){
  234. var data = res.data.data/1000
  235. if(that.purchasePriceList[i].saleLimit - data < 50 || count >0){
  236. that.$api.msg(`当前客户已累计销售我司${uni.getStorageSync('goodsName')}${data.toFixed(2)}吨,最高可售${that.purchasePriceList[i].saleLimit}吨。`)
  237. }
  238. }
  239. }
  240. })
  241. }
  242. })
  243. that.show=false
  244. uni.hideLoading()
  245. uni.navigateBack()
  246. })
  247. .catch(res => {
  248. uni.showToast({
  249. title: '系统异常,请联系管理员',
  250. icon: 'none',
  251. duration: 2000
  252. })
  253. uni.hideLoading()
  254. })
  255. }
  256. }
  257. },
  258. emptysearch(){
  259. this.show=false
  260. this.searchKeyWord=''
  261. this.gridList=[]
  262. this.currentPage=1
  263. this.getList()
  264. },
  265. doSearch(){
  266. this.show=true
  267. this.gridList=[]
  268. this.currentPage=1
  269. this.getList()
  270. },
  271. getList(){
  272. var that = this
  273. var url=''
  274. var data={}
  275. if(this.searchKeyWord.length>0){
  276. url='/identityAuthenticationInfo/identityAuthenticationInfoCustomer'
  277. data={
  278. compId:'',
  279. authenticationStatusKey:7,
  280. searchKeyWord:this.searchKeyWord
  281. }
  282. }else{
  283. url='/searchRecordsInfo/selectSearchRecordsInfo'
  284. data={
  285. pageSize:this.pageSize,
  286. currentPage:this.currentPage,
  287. functionType:"3",
  288. commonId:this.userInfo.id
  289. }
  290. }
  291. this.$api.doRequest('get', url,data).then(res => {
  292. if(res.data.data){
  293. let data = res.data.data.records?res.data.data.records:res.data.data
  294. //采购信息
  295. if (data.length > 0) {
  296. that.gridList = data
  297. }else{
  298. if(this.currentPage==1){
  299. that.gridList=[]
  300. }
  301. this.isContent=true
  302. }
  303. }
  304. })
  305. },
  306. edit(item){
  307. uni.navigateTo({
  308. url:'/pages/erpbusiness/edit_quality_testing?id='+item.id+'&managementType='+this.managementType+'&cangid='+this.cangid
  309. })
  310. },
  311. add(){
  312. uni.navigateTo({
  313. url:'/pages/erpbusiness/add_quality_testing?managementType='+this.managementType+'&cangid='+this.cangid+'&warehouseCount='+this.warehouseCount+'&commonWarehouseNo='+this.commonWarehouseNo+'&warehouseName='+this.warehouseName
  314. })
  315. },
  316. del(item){
  317. this.$api.doRequest('post', '/qualityInspectionManagement/api/deleteQualityInspection',{
  318. id:item.id
  319. }).then(res => {
  320. if(res.data.code==200){
  321. this.$api.msg('删除成功')
  322. this.gridList=[]
  323. this.getList()
  324. }else{
  325. this.$api.msg('系统异常,请联系管理员')
  326. }
  327. })
  328. },
  329. fankui(){
  330. uni.navigateTo({
  331. url: `/pages/user/fankui`
  332. })
  333. },
  334. zhibo() {
  335. uni.navigateTo({
  336. url: `/pageB/video/broadcast`
  337. })
  338. },
  339. look() {
  340. uni.navigateTo({
  341. url: `/pageB/video/look`
  342. })
  343. },
  344. contactUs() {
  345. const that = this
  346. uni.makePhoneCall({
  347. // 手机号
  348. phoneNumber: '18241771147',
  349. // 成功回调
  350. success: (res) => {},
  351. // 失败回调
  352. fail: (res) => {}
  353. });
  354. },
  355. loadData() {
  356. // const that = this
  357. // if(uni.getStorageSync("PageCur")){
  358. // that.PageCur = uni.getStorageSync("PageCur");
  359. // }
  360. // that.userInfoTmp = uni.getStorageSync("userInfo")
  361. // uni.showLoading({
  362. // title: '正在加载',
  363. // mask:true
  364. // })
  365. // that.$api.request('integral', 'getIndexData', failres => {
  366. // that.$api.msg(failres.errmsg)
  367. // uni.hideLoading()
  368. // }).then(res => {
  369. // let data = res.data
  370. // uni.setStorageSync("message", data.message);
  371. // uni.setStorageSync("task", data.task);
  372. // uni.setStorageSync("contract", data.contract);
  373. // uni.setStorageSync('showTran', data.showTran);
  374. // that.showTran = data.showTran
  375. // that.gridList[4].tips = data.task
  376. // that.gridList[2].tips = data.contract
  377. // that.companyId = data.companyId
  378. // uni.hideLoading()
  379. // })
  380. },
  381. confirm() {
  382. const that = this
  383. if (!that.inputContent) {
  384. that.$api.msg('输入不能为空')
  385. return
  386. }
  387. let obj = {}
  388. obj[that.feild] = that.inputContent
  389. that.$api.request('user', 'syncUserInfo', obj).then(res => {
  390. that.userInfo.nickname = that.inputContent
  391. that.inputContent = ''
  392. that.$store.commit('login', that.userInfo)
  393. })
  394. },
  395. cancel() {
  396. this.inputShow = false
  397. this.inputStatus = 'none'
  398. this.genderShow = false
  399. },
  400. myAccount() {
  401. uni.navigateTo({
  402. url: `/pageA/pages/contract`
  403. })
  404. },
  405. /**
  406. * 统一跳转接口,拦截未登录路由
  407. * navigator标签现在默认没有转场动画,所以用view
  408. */
  409. navTo(url) {
  410. if (!this.hasLogin) {
  411. url = '/pages/public/login';
  412. }
  413. uni.navigateTo({
  414. url
  415. })
  416. },
  417. mycarClick(carNo) {
  418. this.modalName = null
  419. uni.navigateTo({
  420. url: `/pageB/car/mycar_detail?carNo=${carNo}`
  421. })
  422. },
  423. scanCode() {
  424. uni.scanCode({
  425. success: function(res) {
  426. uni.navigateTo({
  427. url: res.result
  428. })
  429. }
  430. })
  431. },
  432. hideModal(e) {
  433. this.modalName = null
  434. },
  435. }
  436. }
  437. </script>
  438. <style lang='scss' scoped>
  439. page{
  440. background:#F5F6FA;
  441. }
  442. .container {
  443. padding-top: 85px;
  444. padding-top: 35px;
  445. background-color: #F5F6FA;
  446. position: relative;
  447. width: 100vw;
  448. height: 100vh;
  449. overflow: hidden;
  450. background: url('~@/static/img/login/bg_slices/bg@3x.png');
  451. background-size: 100% 100%;
  452. margin: 0 auto;
  453. }
  454. .cu-tag.badge {
  455. right: 26rpx;
  456. }
  457. .path {
  458. color: #007aff;
  459. display: inline-block;
  460. text-align: center;
  461. }
  462. .icon {
  463. margin-right: 10rpx;
  464. }
  465. .portrait-box {
  466. margin-top: 20rpx;
  467. }
  468. .qr-wrap {
  469. margin-top: 20upx;
  470. color: #fff;
  471. font-size: 32rpx;
  472. }
  473. @keyframes move_wave {
  474. 0% {
  475. transform: translateX(0) translateZ(0) scaleY(1)
  476. }
  477. 50% {
  478. transform: translateX(-25%) translateZ(0) scaleY(0.55)
  479. }
  480. 100% {
  481. transform: translateX(-50%) translateZ(0) scaleY(1)
  482. }
  483. }
  484. .bg {
  485. position: relative;
  486. height: 300rpx;
  487. /* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
  488. /*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
  489. background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
  490. }
  491. .bg_ware {
  492. position: absolute;
  493. left: 0;
  494. bottom: -2rpx;
  495. width: 100%;
  496. mix-blend-mode: screen;
  497. height: 224rpx;
  498. }
  499. %flex-center {
  500. display: flex;
  501. flex-direction: column;
  502. justify-content: center;
  503. align-items: center;
  504. }
  505. %section {
  506. display: flex;
  507. justify-content: space-around;
  508. align-content: center;
  509. background: #fff;
  510. border-radius: 10upx;
  511. }
  512. .cuIcon {
  513. position: absolute;
  514. right: 80px;
  515. }
  516. .grid-item-box {
  517. flex: 1;
  518. /* position: relative;
  519. */
  520. /* #ifndef APP-NVUE */
  521. display: flex;
  522. /* #endif */
  523. flex-direction: column;
  524. align-items: center;
  525. justify-content: center;
  526. padding: 15px 0;
  527. }
  528. .image {
  529. width: 80rpx;
  530. height: 80rpx;
  531. }
  532. .text {
  533. font-size: 26rpx;
  534. margin-top: 10rpx;
  535. }
  536. .user-section {
  537. height: 520upx;
  538. padding: 100upx 30upx 0;
  539. position: relative;
  540. .bg {
  541. position: absolute;
  542. left: 0;
  543. top: 0;
  544. width: 100%;
  545. height: 100%;
  546. filter: blur(1px);
  547. box-shadow: 0px 1px 8px #ccc;
  548. /* background:linear-gradient(#0eb0c9,#126bae); */
  549. /* opacity: .7; */
  550. }
  551. }
  552. .cover-container {
  553. padding: 1px 10px ;
  554. padding-bottom: 200upx;
  555. /* background-color: #F5F6FA; */
  556. /* border-radius: 20px; */
  557. margin-top: 60upx;
  558. .arc {
  559. position: absolute;
  560. left: 0;
  561. top: -34upx;
  562. width: 100%;
  563. height: 36upx;
  564. }
  565. }
  566. .tj-sction {
  567. @extend %section;
  568. .tj-item {
  569. @extend %flex-center;
  570. flex-direction: column;
  571. height: 140upx;
  572. font-size: $font-sm;
  573. color: #75787d;
  574. }
  575. .num {
  576. font-size: $font-lg;
  577. color: $font-color-dark;
  578. margin-bottom: 8upx;
  579. }
  580. }
  581. .order-section {
  582. @extend %section;
  583. padding: 28upx 0;
  584. margin-top: 20upx;
  585. .order-item {
  586. @extend %flex-center;
  587. width: 120upx;
  588. height: 120upx;
  589. border-radius: 10upx;
  590. font-size: $font-sm;
  591. color: $font-color-dark;
  592. }
  593. .yticon {
  594. font-size: 48upx;
  595. margin-bottom: 18upx;
  596. color: #fa436a;
  597. }
  598. .icon-shouhoutuikuan {
  599. font-size: 44upx;
  600. }
  601. }
  602. .history-section {
  603. padding: 30upx 0 0;
  604. margin-top: 20upx;
  605. background: #fff;
  606. border-radius: 10upx;
  607. .sec-header {
  608. display: flex;
  609. align-items: center;
  610. font-size: $font-base;
  611. color: $font-color-dark;
  612. line-height: 40upx;
  613. margin-left: 30upx;
  614. .yticon {
  615. font-size: 44upx;
  616. color: #5eba8f;
  617. margin-right: 16upx;
  618. line-height: 40upx;
  619. }
  620. }
  621. .h-list {
  622. white-space: nowrap;
  623. padding: 30upx 30upx 0;
  624. image {
  625. display: inline-block;
  626. width: 160upx;
  627. height: 160upx;
  628. margin-right: 20upx;
  629. border-radius: 10upx;
  630. }
  631. }
  632. }
  633. .search-form {
  634. background: #F5F6F9;
  635. }
  636. .search-box {
  637. width: 100%;
  638. background-color: rgb(242, 242, 242);
  639. padding: 15upx 2.5%;
  640. display: flex;
  641. justify-content: space-between;
  642. }
  643. .search-box .mSearch-input-box {
  644. width: 100%;
  645. }
  646. .search-box .input-box {
  647. width: 85%;
  648. flex-shrink: 1;
  649. display: flex;
  650. justify-content: center;
  651. align-items: center;
  652. }
  653. .search-box .search-btn {
  654. width: 15%;
  655. margin: 0 0 0 2%;
  656. display: flex;
  657. justify-content: center;
  658. align-items: center;
  659. flex-shrink: 0;
  660. font-size: 28upx;
  661. color: #fff;
  662. background: linear-gradient(to right, #ff9801, #ff570a);
  663. border-radius: 60upx;
  664. }
  665. .search-box .input-box>input {
  666. width: 100%;
  667. height: 60upx;
  668. font-size: 32upx;
  669. border: 0;
  670. border-radius: 60upx;
  671. -webkit-appearance: none;
  672. -moz-appearance: none;
  673. appearance: none;
  674. padding: 0 3%;
  675. margin: 0;
  676. background-color: #ffffff;
  677. }
  678. .placeholder-class {
  679. color: #9e9e9e;
  680. }
  681. .search-keyword {
  682. width: 100%;
  683. background-color: rgb(242, 242, 242);
  684. }
  685. .grid {
  686. display: flex;
  687. align-items: center;
  688. flex-wrap: wrap;
  689. /* border-top: 2upx solid rgba(172,172,172,.2); */
  690. .grid-item-3 {
  691. box-sizing: border-box;
  692. width: calc(100% / 3);
  693. border-bottom: 2upx solid rgba(172, 172, 172, .2);
  694. border-right: 2upx solid rgba(172, 172, 172, .2);
  695. text-align: center;
  696. padding: 40upx 0;
  697. position: relative;
  698. /* view{
  699. font-size: $font-sm;
  700. margin-top: 16upx;
  701. color: $font-color-dark;
  702. } */
  703. .grid_icon {
  704. font-size: 48upx;
  705. margin-bottom: 18upx;
  706. color: #fa436a;
  707. }
  708. .tip_text {
  709. display: block;
  710. padding: 4upx 8upx;
  711. text-align: center;
  712. border-radius: 36upx;
  713. font-size: 24upx;
  714. background-color: #fa436a;
  715. color: rgba(255, 255, 255, 1);
  716. position: absolute;
  717. right: 6upx;
  718. top: 6upx;
  719. }
  720. }
  721. .grid-item-3:nth-child(3n + 3),
  722. .grid-item-4:nth-child(4n + 4) {
  723. border-right: none;
  724. }
  725. }
  726. .headPortrait {
  727. width: 75px;
  728. height: 75px;
  729. border-radius: 40px;
  730. border: 2px solid #ffffff;
  731. }
  732. .information {
  733. font-size: 15px;
  734. font-weight: 600;
  735. height: 36px;
  736. }
  737. .cu-list>.cu-item:after{
  738. border:none;
  739. }
  740. .sign{
  741. width: 40px;
  742. height: 40px;
  743. top: 4px;
  744. margin-right: 6px;
  745. }
  746. .indexUp{
  747. padding:0 20px;
  748. align-items: center;
  749. }
  750. .wrap{
  751. background: #F5F6F9;
  752. margin: 5px 10px;
  753. border-radius: 20px;
  754. width: 92%;
  755. display: inline-block;
  756. padding: 10px;
  757. }
  758. .searchwrap{
  759. border-top:1px solid #eee;padding:10px 20px;
  760. }
  761. .searchwrap:last-child{
  762. border-bottom:1px solid #eee;
  763. }
  764. .qualityNo{
  765. font-size:16px;
  766. }
  767. .type{
  768. font-size:12px;
  769. color:#fff;
  770. padding:3px 5px;
  771. border-radius:50%;
  772. line-height:16px;
  773. }
  774. .type-zhi{
  775. background:#22C572;
  776. }
  777. .type-mao{
  778. background:#3296FA;
  779. }
  780. .type-pi{
  781. background:#FD714F;
  782. }
  783. .time{
  784. font-size:12px;
  785. color:#878C9C;
  786. }
  787. .qualityInspector{
  788. font-size:14px;
  789. }
  790. .customerinformation{
  791. background:#F9F9FA;
  792. padding:7px;
  793. margin:20px 0;
  794. border-radius:10px;
  795. color:#9698A2;
  796. }
  797. .buttons{
  798. flex-direction:row-reverse;
  799. }
  800. .button{
  801. padding:13rpx 30rpx;
  802. border:1px solid #CDCDCD;
  803. border-radius:15px;
  804. margin:0 10px;
  805. }
  806. .changewarehouse{
  807. padding:10px 20px;
  808. }
  809. .header{
  810. background:#fff;
  811. border-radius:0px 0px 16px 16px;
  812. }
  813. .content{
  814. background:#fff;
  815. height:85.5vh;
  816. }
  817. .footer{
  818. background:#fff;
  819. position:fixed;
  820. bottom:0;
  821. width:100%;
  822. padding:20px 10px;
  823. z-index:10;
  824. .button{
  825. background:#22C572;
  826. width:90%;
  827. margin:0 auto;
  828. padding:10px;
  829. color:#fff;
  830. text-align:center;
  831. border-radius: 30px;
  832. }
  833. }
  834. </style>