tmsDetails.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta content="yes" name="apple-mobile-web-app-capable">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  7. <title>Hello APP</title>
  8. <link rel="stylesheet" type="text/css" href="../../../../../css/api.css" />
  9. <link rel="stylesheet" type="text/css" href="../../../../../css/aui-win.css" />
  10. <link rel="stylesheet" type="text/css" href="../../../../../css/css/vant-ui.css" />
  11. <link rel="stylesheet" type="text/css" href="../../../../../css/css/iconfont.css">
  12. <script src="../../../../../script/js/vue.js"></script>
  13. <script src="../../../../../script/js/vant-ui.js"></script>
  14. <script src="../../../../../script/js/auto-size.js"></script>
  15. <style>
  16. .flex{
  17. display: flex;
  18. }
  19. #aui-header{
  20. background: linear-gradient(to right,#1474E4,#14A7E4);
  21. justify-content: space-between;
  22. align-items: center;
  23. }
  24. #scrollcontaier{
  25. overflow-y: auto;
  26. }
  27. .aui-btn-info{
  28. border: 0
  29. }
  30. .title{
  31. padding: 10px 12px;
  32. color: #ffffff;
  33. }
  34. .image-item-continer{
  35. flex-wrap: wrap;
  36. align-items: flex-start;
  37. }
  38. .image-item-continer .image-item{
  39. margin-right: 10px;
  40. }
  41. .image-item{
  42. align-items: center;
  43. }
  44. .image-icon{
  45. width: .66rem;
  46. height: .66rem;
  47. margin-right: 19px;
  48. }
  49. .image-icon1{
  50. width: .44rem;
  51. height: .44rem;
  52. margin-right: 6px;
  53. vertical-align: middle;
  54. flex-shrink: 0;
  55. }
  56. img{
  57. width: 100%;
  58. height: 100%;
  59. }
  60. .nav{
  61. width: 10.1rem;
  62. height: 1.44rem;
  63. margin: .28rem auto 0;
  64. justify-content: space-between;
  65. align-items: center;
  66. background: url("../../../../../image/icon/hedui.png") no-repeat 0 0;
  67. background-size: 100% auto;
  68. }
  69. .details-container{
  70. margin-top: .4rem;
  71. height: 1.74rem;
  72. overflow: hidden;
  73. }
  74. .details-container.details-container-show{
  75. height: auto;
  76. }
  77. .details-btn{
  78. height: .96rem;
  79. line-height: .96rem;
  80. padding: 0 .38rem;
  81. border-radius: 0.08rem;
  82. background: #1474E4;
  83. color: #ffffff;
  84. margin-right: .24rem;
  85. }
  86. .details-wrap{
  87. box-sizing: border-box;
  88. width: 10.1rem;
  89. background: #ffffff;
  90. margin: 0.36rem auto 0;
  91. border-radius: 0.08rem;
  92. padding: .4rem;
  93. margin-bottom: .4rem;
  94. }
  95. .details-title{
  96. font-size: .42rem;
  97. font-weight: bold;
  98. color: #282828;
  99. align-items: center;
  100. }
  101. .details-item{
  102. background: #EEF2F7;
  103. padding: .32rem;
  104. margin-bottom: .32rem;
  105. border-radius: 8px;
  106. color: #595959;
  107. }
  108. .details-item-text{
  109. color: #282828;
  110. }
  111. .row-item{
  112. margin-bottom: .10rem;
  113. }
  114. .confirm-btn{
  115. background: linear-gradient(to right, #1474E4, #14BFE4);
  116. /*padding: 0 1.18rem;*/
  117. height: .96rem;
  118. width: 10.1rem;
  119. line-height: .96rem;
  120. border-radius: .48rem;
  121. color: #ffffff;
  122. font-size: .42rem;
  123. text-align: center;
  124. margin: .42rem auto;
  125. }
  126. /*footer{
  127. box-sizing: border-box;
  128. width: 100%;
  129. padding: .24rem;
  130. background: #ffffff;
  131. box-shadow: 5px 2px 18px 0px rgba(6, 0, 1, 0.24);
  132. }*/
  133. .count-container{
  134. justify-content: space-around;
  135. align-items: center;
  136. box-sizing: border-box;
  137. width: 100%;
  138. padding: .24rem;
  139. background: #ffffff;
  140. box-shadow: 5px 2px 18px 0px rgba(6, 0, 1, 0.24);
  141. }
  142. .count-item{
  143. width: 50%;
  144. text-align: left;
  145. justify-content: flex-start;;
  146. align-items: center;
  147. }
  148. .count-item:nth-of-type(1){
  149. border-right: 1px solid #EEEEEE;
  150. }
  151. .count-item span{
  152. color: #282828;
  153. font-size: .5rem;
  154. font-weight: bold;
  155. }
  156. .count-item-image{
  157. width:.89rem;
  158. height: .89rem;
  159. margin-right: .3rem;
  160. margin-left: .3rem;
  161. }
  162. .count-item-image image{
  163. width: 100%;
  164. height: 100%;
  165. }
  166. </style>
  167. </head>
  168. <style>
  169. </style>
  170. <body>
  171. <div id="app">
  172. <header class="flex flex-between" id="aui-header">
  173. <a class="aui-btn aui-btn-info aui-pull-left" tapmode onclick="closeWin()"> <span class="aui-iconfont aui-icon-left"></span> </a>
  174. <div class="title">出厂电签明细</div>
  175. <div class="image-icon" @click="handleGoInstructions"><img src="../../../../../image/icon/zhiyinshuoming.png" alt=""></div>
  176. </header>
  177. <div id="scrollcontaier" ref="scrollcontaier">
  178. <div class="details-wrap" v-for="(item,index) in dataDetails" :key="index" >
  179. <div class="details-title flex"><span class="image-icon"><img src="../../../../../image/icon/kehu.png" alt=""></span><span>{{kunnrWeName}}</span></div>
  180. <van-divider ></van-divider>
  181. <div class="details-container" :class="item.show?'details-container-show':''">
  182. <div class="details-item" v-for="(temp,idx) in item.list">
  183. <van-row>物料规格:<span class="details-item-text">{{temp.maktx}}</span></van-row>
  184. <van-row class="image-item-continer flex">
  185. <div class="image-item flex"><span class="image-icon1"><img src="../../../../../image/icon/tiaoshu.png" alt=""></span><span>{{temp.lfimg}}条</span></div>
  186. <div class="image-item flex"><span class="image-icon1"><img src="../../../../../image/icon/zhongliang.png" alt=""></span><span>{{temp.brgew}}{{temp.gewei}}</span></div>
  187. <div class="image-item flex"><span class="image-icon1"><img src="../../../../../image/icon/tiji.png" alt=""></span><span>{{temp.volum}}{{temp.voleh}}</span></div>
  188. </van-row>
  189. </div>
  190. </div>
  191. <van-row class="show-btn-container" type="flex" justify="center">
  192. <van-col v-show="item.show" @click="handleShowContainer('hide',item)" class="image-item flex" style="margin-top:4px;" span="8" offset="6"><span class="image-icon1"><img src="../../../../../image/icon/zhankai.png" style="transform: rotateX(180deg);" alt=""></span><span>收缩</span></van-col>
  193. <van-col v-show="!item.show" @click="handleShowContainer('show',item)" class="image-item flex" span="8" offset="6"><span class="image-icon1"><img src="../../../../../image/icon/zhankai.png" alt=""></span><span>展开</span></van-col>
  194. </van-row>
  195. <van-divider ></van-divider>
  196. <div class="row-item">装运凭证号:{{item.tknum}}</div>
  197. <div class="row-item">交货单号:{{item.vbeln}}</div>
  198. </div>
  199. </div>
  200. <footer id="aui-footer">
  201. <div class="count-container flex">
  202. <div class="count-item flex">
  203. <div class="count-item-image"><img src="../../../../../image/icon/zongtiaoshu.png" alt=""></div>
  204. <div>
  205. <!-- dataDetails | lfimgFilters('lfimg') -->
  206. <p><span>{{lifmg}}</span>条</p>
  207. <p>总条数</p>
  208. </div>
  209. </div>
  210. <div class="count-item flex">
  211. <div class="count-item-image"><img src="../../../../../image/icon/zongzhongliang.png" alt=""></div>
  212. <div>
  213. <!-- dataDetails | lfimgFilters('brgew') -->
  214. <p><span>{{grossWeight}}</span>KG</p>
  215. <p>总重量</p>
  216. </div>
  217. </div>
  218. </div>
  219. </footer>
  220. </div>
  221. </body>
  222. <script type="text/javascript" src="../../../../../script/api.js"></script>
  223. <link rel="stylesheet" href="../../../../../script/mescroll/mescroll.min.css">
  224. <script type="text/javascript" src="../../../../../script/mescroll/mescroll.min.js"></script>
  225. <script type="text/javascript" src="../../../js/httpRequest_sub.js"></script>
  226. <script type="text/javascript" src="../../../js/vue_plugins_sub.js"></script>
  227. <script type="text/javascript">
  228. function closeWin() {
  229. api.closeWin({
  230. });
  231. }
  232. apiready = function() {
  233. api.parseTapmode();
  234. var header = $api.byId('aui-header');
  235. $api.fixStatusBar(header);
  236. var headerPos = $api.offset(header);
  237. var body_h = $api.offset($api.dom('body')).h;
  238. document.getElementById("scrollcontaier").style.height = $api.offset($api.dom('body')).h - headerPos.h + 24 - $api.offset($api.byId('aui-footer')).h + "px";
  239. var tknum = api.pageParam.tknum;
  240. var vbelnList = api.pageParam.vbelnList;
  241. var kunnrWeName = api.pageParam.kunnrWeName;
  242. var grossWeight = api.pageParam.grossWeight;
  243. var lifmg = api.pageParam.lifmg;
  244. var token = $api.getStorage('loginToken');
  245. new Vue({
  246. el: '#app',
  247. data: {
  248. token: token,
  249. tknum: tknum,
  250. vbelnList: vbelnList,
  251. kunnrWeName: kunnrWeName,
  252. grossWeight: grossWeight,
  253. lifmg: lifmg,
  254. dataDetails: []
  255. },
  256. filters:{
  257. lfimgFilters: function(data,params){
  258. var lfimgTotal=0,brgewTotal=0;
  259. if(data&&data.length>=1){
  260. for(var i=0; i<data.length; i++){
  261. var list = data[i].list;
  262. for(var j=0; j<list.length;j++){
  263. lfimgTotal += parseInt(list[j].lfimg);
  264. brgewTotal += parseInt(list[j].brgew);
  265. }
  266. }
  267. };
  268. if(params=="lfimg"){
  269. return lfimgTotal?lfimgTotal:0;
  270. }else if(params=="brgew"){
  271. return brgewTotal?brgewTotal:0;
  272. }
  273. }
  274. },
  275. mounted: function() {
  276. this.pdfReader = api.require('pdfReader');
  277. this.handleGetDetails();
  278. },
  279. methods: {
  280. handleGetDetails: function(){
  281. var data = {
  282. token: this.token,//"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZWFsTmFtZSI6IuWRqOi-iSIsImNyZWF0ZXRpbWUiOiIyMDIwLTEyLTE5IDIxOjI5OjQ2IiwibG9naW5UeXBlIjoiOSIsInRlbCI6IjE4NzY1OTI1MzM0IiwiaWQiOiJhcHBfODMifQ.NZdADXneFoHNCIbcNZS_MwUPfM_NpbYS_8hXO8eDs_Q",//this.token,
  283. tknum: this.tknum,//"0900001613",//this.tknum,
  284. vbelnList: this.vbelnList,//["0800001209"],//,this.vbelnList,
  285. url : 'json',
  286. type : 'body'
  287. }, _this = this;
  288. this.$post("signOrderOfItem",data,function(ret){
  289. if(ret.code=="1"||ret.code==1){
  290. _this.dataDetails = ret.data;
  291. }
  292. })
  293. },
  294. // 展示文字
  295. handleShowContainer: function(params,item){
  296. if(params=="show"){
  297. this.$set(item,"show",true)
  298. }else{
  299. this.$set(item,"show",false)
  300. }
  301. },
  302. handleGoInstructions: function(){
  303. var _this = this;
  304. // this.goWin("tmsinstructions","./tmsInstructions.html");//视频
  305. this.pdfReader.open({
  306. path: "https://b2bcnfile.sailuntire.com/upload/TMS/operationManual/TMS销售出库单签收的操作手册.pdf",//"https://srmapi.sailuntire.com/Files/20201221/20200000000186-3000100-8379-Out.pdf",
  307. hidden: {
  308. print: true,
  309. export: true,
  310. bookmark: true,
  311. email: true
  312. },
  313. backBtn: {
  314. size: { //JSON对象;左上角按钮的大小配置
  315. w: 20, //数字类型;左上角按钮的宽;默认:60
  316. h: 20 //数字类型;左上角按钮的高;默认:40
  317. },
  318. title: { //JSON对象;按钮标题配置
  319. text: "返回", //字符串类型;标题文本;默认:‘’
  320. },
  321. corner: 5 //数字类型;左上角按钮圆角大小;默认值:5.0
  322. }
  323. });
  324. },
  325. }
  326. })
  327. };
  328. </script>
  329. </html>