¶Ô±ÈÐÂÎļþ |
| | |
| | | node_modules/ |
| | | uni_modules/ |
| | | .project |
| | | unpackage/ |
| | | .DS_Store |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { // launch.json é
ç½®äºå¯å¨è°è¯æ¶ç¸å
³è®¾ç½®ï¼configurationsä¸èç¹åç§°å¯ä¸º app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ |
| | | // launchtype项å¯é
ç½®å¼ä¸ºlocalæremote, local代表åç«¯è¿æ¬å°äºå½æ°ï¼remote代表å端è¿äºç«¯äºå½æ° |
| | | "version": "0.0", |
| | | "configurations": [{ |
| | | "app-plus" : |
| | | { |
| | | "launchtype" : "local" |
| | | }, |
| | | "default" : |
| | | { |
| | | "launchtype" : "local" |
| | | }, |
| | | "h5" : |
| | | { |
| | | "launchtype" : "local" |
| | | }, |
| | | "type" : "uniCloud" |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <script> |
| | | import Vue from 'vue' |
| | | export default { |
| | | onLaunch: function() { |
| | | if (!uni.getStorageSync('switchs')) { |
| | | uni.setStorageSync('switchs', JSON.stringify(true)) |
| | | } |
| | | //è·å头é¨é«åº¦ |
| | | uni.getSystemInfo({ |
| | | success: function(e) { |
| | | // console.log('ææºçå'+e.brand) //ææºçå |
| | | // console.log('ææºåå·'+e.model) //ææºåå· |
| | | Vue.prototype.PhoneModel = e.model |
| | | // #ifndef MP |
| | | Vue.prototype.StatusBar = e.statusBarHeight; |
| | | Vue.prototype.CustomBar = e.statusBarHeight + 45; |
| | | console.log(e.platform) |
| | | // if (e.platform == 'android') { |
| | | // Vue.prototype.CustomBar = e.statusBarHeight + 50; |
| | | // } else { |
| | | // Vue.prototype.CustomBar = e.statusBarHeight + 45; |
| | | // }; |
| | | // #endif |
| | | |
| | | // #ifdef MP-WEIXIN || MP-QQ |
| | | Vue.prototype.StatusBar = e.statusBarHeight; |
| | | let capsule = wx.getMenuButtonBoundingClientRect(); |
| | | if (capsule) { |
| | | Vue.prototype.Custom = capsule; |
| | | // Vue.prototype.capsuleSafe = uni.upx2px(750) - capsule.left + uni.upx2px(750) - capsule.right; |
| | | Vue.prototype.CustomBar = capsule.bottom + capsule.top - e.statusBarHeight; |
| | | } else { |
| | | Vue.prototype.CustomBar = e.statusBarHeight + 50; |
| | | } |
| | | // #endif |
| | | |
| | | |
| | | // #ifdef MP-ALIPAY |
| | | Vue.prototype.StatusBar = e.statusBarHeight; |
| | | Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight; |
| | | // #endif |
| | | |
| | | } |
| | | }) |
| | | |
| | | |
| | | |
| | | }, |
| | | onShow: function() { |
| | | console.log('App Show') |
| | | }, |
| | | onError:function(error,msg){ |
| | | console.log(error.toString()) |
| | | if(error.toString().indexOf('SyntaxError') != -1 ){ //å页é¢tokenå¤±ææ¥é |
| | | if(!uni.getStorageSync('userInfo')){ |
| | | uni.showToast({ |
| | | title: 'token失æï¼è¯·éæ°ç»é', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | // 跳转å°ç»å½ |
| | | uni.redirectTo({ |
| | | url: '/pages/login/login' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | /* è¦åå¨ç¬¬ä¸è¡ï¼åæ¶ç»styleæ ç¾å å
¥lang="scss"屿§ */ |
| | | @import "uview-ui/index.scss"; |
| | | /*æ¯ä¸ªé¡µé¢å
Œ
±css */ |
| | | @import "styles/iconfont/iconfont.css"; |
| | | @import "styles/main.css"; |
| | | @import "styles/index.css"; |
| | | |
| | | page { |
| | | width: 100%; |
| | | min-height: 100vh; |
| | | background-color: #F2F2F2; |
| | | box-sizing: border-box; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function query(data){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/delivery/order/detail/query?OrderNo=${data}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | // data: data |
| | | }) |
| | | } |
| | | export function updateHead(data){ //确认æäº¤ |
| | | return request({ |
| | | url: `/delivery/order/updateHead`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | import qs from 'qs' |
| | | |
| | | export function query(){ //åæ®ç¶æç»è®¡ |
| | | return request({ |
| | | url: `/check/order/status/query`, |
| | | method: 'get', |
| | | contentType:'application/json' |
| | | }) |
| | | } |
| | | export function Status(data){ //åæ®æ¥è¯¢ |
| | | return request({ |
| | | url: `/api/wmsInventoryCheckOrder/page`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function OrderSearch(data){ // çç¹ä¸å-æ ¹æ®å®¹å¨ç¼å·åç»æ¥è¯¢ |
| | | return request({ |
| | | url: `/api/wmsInventoryCheckOrderDetails/pageForPda`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function material(data){ //忮容卿¥è¯¢ |
| | | return request({ |
| | | url: `/api/wmsInventoryCheckOrderDetails/Page`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function materialSNcode(data){ |
| | | return request({ |
| | | url: `/api/WmsInventoryCheckOrderDetails/PDAInventoryQueryAndInsert?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function submit(data){ //确认åºåº |
| | | return request({ |
| | | url: `/api/WmsInventoryCheckOrder/Out`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function checkTask(data){ //æ¥è¯¢çç¹ä»»å¡ |
| | | return request({ |
| | | url: `/check/order/out/material/query?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function issueSubmit(data){ //é®é¢æ è®° |
| | | return request({ |
| | | url: `/check/order/problem/submit`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function finish(data){ //çç¹å®æ |
| | | return request({ |
| | | url: `/api/WmsInventoryCheckOrderDetails/OutFinish`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data |
| | | }) |
| | | } |
| | | export function finishOrderSubmit(data){ //æ´ä¸ªåæ®å®æ |
| | | return request({ |
| | | url: `/api/WmsInventoryCheckOrder/FinishedOrder`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data |
| | | }) |
| | | } |
| | | // pda忮宿éªè¯ï¼åæ®æ¯å¦ææªçç¹çæç» |
| | | export function finishOrderSubmitValid(data){ |
| | | return request({ |
| | | url: `/api/WmsInventoryCheckOrder/ValidDetail`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function stocktakingWhours(data){ //容å¨ååº |
| | | return request({ |
| | | url: `/OrderReceipt/stocktakingWhours`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function getContainerData(data){ //è·åå¹³åºéè¦çç¹çå®¹å¨ |
| | | return request({ |
| | | // url: `/check/order/out/containerCode/query?PageNo=${pageNo}&PageSize=10&WareContainerCode=${containerCode}`, |
| | | url: `/check/order/out/containerCode/query?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function getSquareMaterial(data){ //å¹³åºæ¥æå®çç¹åä¸éè¦çç¹çç©æ |
| | | return request({ |
| | | url: `/check/order/out/material/query?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | // æ¼çåºåº |
| | | export function getPinpanCkData(data){ |
| | | return request({ |
| | | url: `/WareContainer/groupOutboundPage?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | //æ¼çåºåº |
| | | export function PinpanCkConfirm(data){ |
| | | return request({ |
| | | url: `/task/callDesignatedTray?${qs.stringify(data)}`, |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | //æ¼çåºåº - æ¹éä¸ä¼ |
| | | export function PinpanCkConfirmNew(data){ |
| | | return request({ |
| | | url: `/task/callDesignatedTrayForBatch`, |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | //çç¹åå· - å表 |
| | | export function getPandianOrder(data) { |
| | | return request({ |
| | | url: `/check/plan/query`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | |
| | | //空容å¨å
¥åº |
| | | export function trayPutStorage(data) { |
| | | return request({ |
| | | url: `/task/trayPutStorage`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../utils/request.js' |
| | | import qs from 'qs' |
| | | //æ¥è¯¢åºåºåä¸çåè´§ç©æä¿¡æ¯ |
| | | export function getOutMaterial(data) { |
| | | return request({ |
| | | // url: `/delivery/detail/query?MaterialCode=${data.MaterialCode}&OrderNo=${data.OrderNo}`, |
| | | url: `/delivery/detail/query?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function getOrderMaterial(data) { |
| | | return request({ |
| | | url: `/delivery/detail/query`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢å¯åè´§ç©æä¿¡æ¯å表,Kittingåä¸ç¨ |
| | | export function getOrderKtting(data) { |
| | | return request({ |
| | | url: `/delivery/detail/queryForKitting?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function getOrderMaterialDo(data) { |
| | | return request({ |
| | | url: `/delivery/detail/query`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | export function getAllOrder(data) { |
| | | return request({ |
| | | url: `/delivery/orderno/query`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // 忣 |
| | | export function getAllOrderDo(data) { |
| | | return request({ |
| | | url: `/api/wmsOrderMovement/page`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // åè´§ 4.26 |
| | | export function getAllOrderDelivery(data) { |
| | | return request({ |
| | | url: `/delivery/orderno/queryDo`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | //æ·»å åè´§è®°å½ |
| | | export function addDeliverRecord(data) { |
| | | return request({ |
| | | url: '/delivery/record/add', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //å é¤å¾ç |
| | | export function deletePicture(data) { |
| | | return request({ |
| | | url: `/api/sysFile/delete?${qs.stringify(data)}`, |
| | | method: 'post' |
| | | }) |
| | | } |
| | | |
| | | //åè´§ å¢å å货波次å·çéæ© |
| | | export function getQuhuoOrderDo(data) { |
| | | return request({ |
| | | url: `/Sorting/getPickUpDoListByPO`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //åè´§ å¢å å·¥åºã产åç±»åçéæ© |
| | | export function getPickUpDoListByPOForProductType(data) { |
| | | return request({ |
| | | url: `/Sorting/getPickUpDoListByPOForProductType`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //忣 å¢å å·¥åºã产åç±»åçéæ© |
| | | export function getDoListByPOForProductType(data) { |
| | | return request({ |
| | | url: `/Sorting/getDoListByPOForProductType`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //åè´§æ¤é å¢å å·¥åºã产åç±»åçéæ© |
| | | export function getSortNoListForCancelPickForProductType(data) { |
| | | return request({ |
| | | url: `/Sorting/getSortNoListForCancelPickForProductType`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //åè´§æ¤é å¢å å货波次å·çéæ© |
| | | export function getSortNoListForCancelPick(data) { |
| | | return request({ |
| | | url: `/Sorting/getSortNoListForCancelPick`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //忣æ¤é å¢å å·¥åºã产åç±»åçéæ© |
| | | export function getSortNoListForCancelSortForProductType(data) { |
| | | return request({ |
| | | url: `/Sorting/getSortNoListForCancelSortForProductType`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //忣æ¤é å¢å å货波次å·çéæ© |
| | | export function getSortNoListForCancelSort(data) { |
| | | return request({ |
| | | url: `/Sorting/getSortNoListForCancelSort`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../utils/request.js' |
| | | |
| | | //åºåºååå¿«éåç»å® |
| | | export function addBindRecord(data) { |
| | | return request({ |
| | | url: '/delivery/record/update', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '@/utils/request.js' |
| | | import qs from 'qs' |
| | | // æå·¥ä»¶ åºå
¥åºæ¥å£ |
| | | export function getWarehouseMaterialHander(data){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/Sorting/FindContainerAtMaterial`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | //ç©ææå |
| | | export function addWarehouseEstablishmentHander(data){ |
| | | return request({ |
| | | url: `/api/wmsMaterialSplit/materialSplit`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç©æåå¹¶ |
| | | export function addWarehouseHbHander(data){ |
| | | return request({ |
| | | url: `/api/wmsMaterialSplit/materialMerge`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //æå° |
| | | export function outBoundOrderHander(data) { |
| | | return request({ |
| | | url: `/api/wmsRecordSncodePrint/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç©æåå¹¶ |
| | | export function getSGjRuKuMaterialHander(data){ |
| | | return request({ |
| | | url: `/api/wmsStockQuan/pageView`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //容å¨ä¿¡æ¯ |
| | | export function getWmsContainerPage(data){ |
| | | return request({ |
| | | url: `/api/wmsContainer/page`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç¹å°ç¹ |
| | | export function handlePostToPost(data){ |
| | | return request({ |
| | | url: `/api/WmsOrderMovement/PointToPoint`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //å¼å¸¸å¤ç |
| | | export function unAbnormalOrder(data) { |
| | | return request({ |
| | | url: `/api/WmsStockQuan/Frozen`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // ãçæ¿å¡å«æã |
| | | export function addKbcardOrderMovement(data) { |
| | | return request({ |
| | | url: `/api/wmsConfigKbcard/addKbcardOrderMovement`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // ãçæ¿å¡å«æã |
| | | export function getWmsConfigKbcard(data){ |
| | | return request({ |
| | | url: `/api/wmsConfigKbcard/Page`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | request |
| | | } from '../utils/request.js' |
| | | export function login(data) { //ç»é |
| | | return request({ |
| | | // url: `/login`, |
| | | url: `/api/sysAuth/login`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getLoginUser(data) { //æé |
| | | return request({ |
| | | // url: `/getLoginUser`, |
| | | url: `/api/sysAuth/userInfo`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getWgt() { //PDAç¨åºæ´æ°wgt |
| | | return request({ |
| | | // url: "/pdaupdate/get", |
| | | url: "/api/wmsGroupDisk/PDAUpdate", |
| | | method: 'get', |
| | | contentType: 'application/json' |
| | | }) |
| | | } |
| | | export function loginOut(data) { //ç»é |
| | | return request({ |
| | | url: `/api/sysAuth/logout`, |
| | | method: 'post', |
| | | contentType: 'application/json' |
| | | }) |
| | | } |
| | | |
| | | export function getLoginMenu(data) { //æé |
| | | return request({ |
| | | // url: `/getLoginUser`, |
| | | url: `/api/WmsSysPdaMenu/getPdaLoginUser`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | |
| | | //è·åå½å容å¨ä¸çææç©æ |
| | | export function getContainerMateral(containerCode){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/Scrap/Material?containerCode=${containerCode}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | export function scrapMaterial(data){ //确认æäº¤ |
| | | return request({ |
| | | url: `/ScrapMaterial/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '@/utils/request.js' |
| | | |
| | | //æ§ä»¶å
¥åº |
| | | export function putInOfOld(data) { |
| | | return request({ |
| | | url: `/WareOldMaterial/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //æ§ä»¶åºåæ¥è¯¢ |
| | | export function getExitOfOld(data) { |
| | | return request({ |
| | | url: `/WareOldMaterial/page?MaterialCode=${data.materialCode}&PageNo=1&PageSize=10`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //åºåºæä½ |
| | | //æ§ä»¶å
¥åº |
| | | export function putOutOfOld(data) { |
| | | return request({ |
| | | url: `/WareOldMaterial/update`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //è·åæ§ä»¶åºå表 |
| | | export function getOldWarehouseList() { |
| | | return request({ |
| | | url: '/WareStoreHouse/page?OrgId=&PartsCenter=&Factory=&StorTypeId=344334449700933&PageNo=1&PageSize=100', |
| | | method: 'get' |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '@/utils/request.js' |
| | | import qs from 'qs' |
| | | export function getCollectionPage(data) { |
| | | let param = { |
| | | PurchaseNo:data.PurchaseNo, |
| | | WarematerialCode:data.WarematerialCode |
| | | } |
| | | return request({ |
| | | url: `/ConfirmDelivery/page?${qs.stringify(param)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | //ç©ææ ç¾---æ¥è¯¢ |
| | | export function getMaterialContent(data) { |
| | | return request({ |
| | | url: `/PurchaseOrder/pageDetails?WareMaterialCode=${data.materialCode}&PurchaseNo=${data.purchase}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function getMaterialData() { |
| | | return request({ |
| | | url: `/WareMaterial/page?PageNo=1&PageSize=1000000`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //è·åç©æä¿¡æ¯ |
| | | export function getMaterialInfo(data) { |
| | | let param = { |
| | | Code:data.materialCode, |
| | | PageNo:1, |
| | | PageSize:10 |
| | | } |
| | | return request({ |
| | | // url: `/WareMaterial/page?Code=${data.materialCode}&PageNo=1&PageSize=10`, |
| | | url: `/WareMaterial/page?${qs.stringify(param)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //è·åå·¥éå
·ä¿¡æ¯ |
| | | export function getWareToolInfo(data) { |
| | | return request({ |
| | | url: `/WareTool/page?Code=${data.materialCode}&PageNo=1&PageSize=10`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //æ·»å æå°è®°å½ |
| | | export function addPrintRecord(data) { |
| | | return request({ |
| | | url: `/WareMaterialPrintHistory/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //è·åç©æçæ ç¾ä¿¡æ¯ |
| | | //è·åå·¥éå
·ä¿¡æ¯ |
| | | export function getMaterialCount(data) { |
| | | return request({ |
| | | url: `/WareQrcode/update?PageNo=${data.PageNo}&PageSize=${data.PageSize}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //è¡¥ææ ç¾ æ ¹æ®åºä½ç¼å· |
| | | export function getMerterialBaseKuwei(data) { |
| | | return request({ |
| | | url: `/inventory/container/queryall?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //è°ç¨æé©¬æå°æº |
| | | export function addBanmaRecord(data) { |
| | | return request({ |
| | | url: `/WareMaterialPrintHistory/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //è°ç¨æé©¬æå°æº -- æ¹éæå° |
| | | export function addBanmaRecordArr(data) { |
| | | return request({ |
| | | url: `/WareMaterialPrintHistory/addBatch`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | import qs from 'qs' |
| | | //è·åå½å容å¨ä¸çç»ç详æ
|
| | | export function getContainerRecord(containerCode){ //ç§éç©ææ¥è¯¢ |
| | | let data = { |
| | | containerCode:containerCode |
| | | } |
| | | return request({ |
| | | // url: `/WarehousOrder/getMaterialList?ContainerCode=${containerCode}`, |
| | | url: `/WarehousOrder/getMaterialList?${qs.stringify(containerCode)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function getMaterialList(data){ //ç©ææ¥è¯¢ 带åºå |
| | | return request({ |
| | | // url: `/WareMaterial/page?Code=${materialCode}&PageNo=1&PageSize=10`, |
| | | url: `/WarehousOrder/getInventoryQuantity?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | //è·å容å¨ä¿¡æ¯ |
| | | export function getContainDetail(code) { |
| | | let data = { |
| | | Code:code, |
| | | PageNo:1, |
| | | PageSize:10 |
| | | } |
| | | return request({ |
| | | // url: `/WareContainer/page?Code=${code}&PageNo=1&PageSize: 10`, |
| | | url: `/WareContainer/page?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | |
| | | } |
| | | |
| | | export function getOrderNo(data){ //èªå¨çæåå· |
| | | return request({ |
| | | url: `/CriterionEnterWare/getOrderNo`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getContainerDetails(data){ //ç©ºææ¥è¯¢ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getContainerDetails`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getMaterialDetails(data){ //ç©ææ¥è¯¢ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getMaterialDetails?materialCode=${data.materialCode}`, |
| | | method: 'post' |
| | | }) |
| | | } |
| | | export function WarematerialCode(data){ //ç§éç©ææ¥è¯¢ |
| | | return request({ |
| | | url: `/CollectDelivery/page?WarematerialCode=${data.WarematerialCode}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function addGroupDisk(data){ //ç»ç |
| | | return request({ |
| | | url: `/api/wmsGroupDisk/PdaBindUpdate`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export function onlyUpdateDutyCycle(data){ //ä»
æ´æ°ç©ºé´å æ¯æ°æ® ãEditby shaocx,2023-05-23ã |
| | | return request({ |
| | | url: `/WarehousOrder/onlyUpdateDutyCycle`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export function add(data){ //ç§é人工ç»ç |
| | | return request({ |
| | | url: `/OrderReceipt/add`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getBhbMaterialList(data){ //容卿¥è¯¢ |
| | | return request({ |
| | | url: `/api/WmsGroupDisk/PdaContainerWithMaterial?${qs.stringify(data)}`, |
| | | // url: `/api/wmsContainerMaterial/list?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | export function PdaBindListForSNCode(data){ //ç©ææ¥è¯¢ |
| | | return request({ |
| | | url: `/api/WmsGroupDisk/PdaBindListForSNCode?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | // è°æ´åºé¾ |
| | | export function addAdjustAge(data){ |
| | | return request({ |
| | | url: `/WareAge/addAdjustAge`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // è°æ´åºé¾ |
| | | export function getMaterialListForAdjustAge(data){ //ç©ææ¥è¯¢ |
| | | return request({ |
| | | url: `/WareAge/GetMaterialListForAdjustAge?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function getareaTypesList(data){ //è½½å
፱Ȍ |
| | | var data1 = { |
| | | isVirtually:false |
| | | } |
| | | return request({ |
| | | url: `/api/wmsArea/page`, |
| | | method: 'post', |
| | | data:data1 |
| | | }) |
| | | } |
| | | |
| | | // æ¨èåºä½ |
| | | export function getRecommendList(data) { |
| | | return request({ |
| | | // url: `/WareMaterial/getlocation?${qs.stringify(data)}`, |
| | | //url: `/api/wmsPlace/page?${qs.stringify(data)}`, |
| | | url: `/api/WmsPlace/RecommendPlaceList?${qs.stringify(data)}`, |
| | | method: 'post' |
| | | }) |
| | | } |
| | | |
| | | |
| | | //容å¨ä¸æ¶ - æ¥è¯¢ç©æ |
| | | export function getWmsContainer(data){ |
| | | return request({ |
| | | url: `/api/wmsPutaway/getContainerInfoQuan`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç»ç©ºç |
| | | export function addGroupContainer(data){ |
| | | return request({ |
| | | url: `/api/wmsPutaway/putawayConfirm`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //容å¨ä¸æ¶ç¡®è®¤ |
| | | export function putContainerConfirm(data){ |
| | | return request({ |
| | | url: `/api/WmsPutaway/PutawayConfirmxxxxxx`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //容å¨ç±»å |
| | | export function getContainerTypeList(data){ |
| | | return request({ |
| | | url: `/api/wmsContainerType/page`, |
| | | method: 'post', |
| | | data, |
| | | }) |
| | | } |
| | | |
| | | |
| | | //åºä½ä¿¡æ¯ |
| | | export function getwmsPlace(data){ |
| | | return request({ |
| | | url: `/api/wmsPlace/page`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //åºä½ä¿¡æ¯-容å¨ä¸æ¶ |
| | | export function getwmsPlaceForContainerOff(data){ |
| | | return request({ |
| | | url: `/api/wmsUnshelve/getPlaceInfo`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //æ¥ç©æååºå |
| | | export function getwmsContainerType(data){ |
| | | return request({ |
| | | // url: `/api/WmsContainer/ContainerTypeForPda?${qs.stringify(data)}`, |
| | | url: `/api/wmsUnshelve/getMaterialCodeByInfo?${qs.stringify(data)}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //容å¨ä¸æ¶ |
| | | export function addGroupContainerXiajia(data){ |
| | | return request({ |
| | | url: `/api/wmsUnshelve/containerUnshelveExecute`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | import qs from 'qs' |
| | | export function getCallTray(data){ //å¼å«ç©ºæ |
| | | return request({ |
| | | url: `/OrderReceipt/getCallTray`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | // export function getVehicleType(data){ //è½½å
፱Ȍ |
| | | // return request({ |
| | | // url: `/OrderReceipt/getVehicleType`, |
| | | // method: 'post', |
| | | // contentType:'application/json', |
| | | // data: data |
| | | // }) |
| | | // } |
| | | export function getContainerTypes(data){ //è½½å
፱Ȍ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getContainerTypes`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getCollect(data){ //è·åç®æ ä½ç½® |
| | | return request({ |
| | | url: `/OrderReceipt/getStorehouseMouth`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | //è·å容å¨ç±»åå表 |
| | | export function getContainerTypesList(data){ //è½½å
፱Ȍ |
| | | return request({ |
| | | url: `/WareContainerType/page?PageNo=1&PageSize=10000`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | |
| | | //å¼å«ç©ºæ |
| | | export function callEmptyContainer(data){ |
| | | return request({ |
| | | url: `/task/callTray`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function getWareVehicle(data){ //å¼å«å®¹å¨-æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/OrderReceipt/getWareVehicle?materialCode=${data}`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getRecommend(data){ //æ¨èåºä½ |
| | | return request({ |
| | | url: `/OrderReceipt/getRecommend?materialCode=${data.materialCode}&quantity=${data.quantity}`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function callContainer(data){ //å¼å«å®¹å¨ |
| | | return request({ |
| | | url: `/OrderReceipt/callContainer`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function getWareRegion(data){ //è·åè´§åº |
| | | return request({ |
| | | url: `/OrderReceipt/getWareRegion`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getGoodsshelves(data){ //è·åè´§æ¶+åºä½ä¿¡æ¯ |
| | | return request({ |
| | | url: `/OrderReceipt/getGoodsshelves`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | |
| | | //容å¨è§£ç»æ¥è¯¢ |
| | | export function getContainerMaterial(data) { |
| | | return request({ |
| | | url: `/api/wmsContainerPlace/containerStock?ContainerCode=${data.containerCode}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | //åºä½è§£ç»æ¥è¯¢ |
| | | export function getplaceStock(data) { |
| | | return request({ |
| | | url: `/api/wmsContainerPlace/placeStock?PlaceCode=${data.placeCode}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | //容å¨ç»å®æ¥è¯¢ |
| | | export function bindContainerStock(data) { |
| | | return request({ |
| | | url: `/api/wmsContainerPlace/bindContainerStock?ContainerCode=${data.containerCode}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | //ç»å® |
| | | export function placeBind(data) { |
| | | return request({ |
| | | url: `/api/wmsContainerPlace/placeBind`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // è§£ç» |
| | | export function Unfreezeing(data) { |
| | | return request({ |
| | | url: `/api/wmsContainerPlace/placeUnbind`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function addEnterWare(data){ //确认å
¥åº |
| | | return request({ |
| | | url: `/CriterionEnterWare/addEnterWare`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function addEnter(data){ //ç§é确认å
¥åº |
| | | return request({ |
| | | url: `/OrderReceipt/addEnterWare`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | |
| | | export function getLocationDetails(data){ //æ¥è¯¢åºä½ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getLocationDetails?locationCode=${data}`, |
| | | method: 'post', |
| | | contentType:'application/json' |
| | | }) |
| | | } |
| | | //确认å
¥åº |
| | | export function entryConfirm(data){ |
| | | return request({ |
| | | url: `/CriterionEnterWare/updateFlatWarehouseWarehousing`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //è·ååºä½è¯¦æ
|
| | | export function getLocationDetail(code){ //æ¥è¯¢åºä½ |
| | | return request({ |
| | | url: `/WareLocation/page?Code=${code}&PageNo=1&PageSize=10`, |
| | | method: 'get' |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function getWarehouseMaterial(data){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getWarehouseMaterial?containerCode=${data}`, |
| | | method: 'post', |
| | | contentType:'application/json' |
| | | }) |
| | | } |
| | | export function addWarehouseEstablishment(data){ //å
¥åº |
| | | return request({ |
| | | url: `/CriterionEnterWare/addWarehouseEstablishment`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export function list(data){ //å
¥åºå£ |
| | | return request({ |
| | | url: `/WareSite/pageWarehousing`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function outlist(data){ //åºåºå£ |
| | | return request({ |
| | | url: `/WareSite/page`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | //确认åºåº |
| | | export function outBoundOrder(data) { |
| | | return request({ |
| | | url: `/Sorting/UnbindLocation`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function getUnboundMaterial(data){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/CriterionEnterWare/getUnboundMaterial`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function UpdateunboundContainer(data){ //容å¨è§£ç» |
| | | return request({ |
| | | url: `/CriterionEnterWare/UpdateunboundContainer`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function updateunbound(data){ //ç§é容å¨è§£ç» |
| | | return request({ |
| | | url: `/OrderReceipt/UpdateunboundContainer`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function getContainerContent(data) { |
| | | return request({ |
| | | url: `/WarehousOrder/getOrderDetails`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | export function deleteEnterOrder(data) { |
| | | return request({ |
| | | url: `/WarehousOrder/delete`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | export function unBindLocation(data) { |
| | | return request({ |
| | | url: `/Sorting/UnbindLocation?containerCode`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //åæ®è§£ç» |
| | | export function unbindOrder(data) { |
| | | return request({ |
| | | url: `/api/wmsGroupDisk/PdaUnBindUpdate`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç§»åº |
| | | export function inventoryTransfer(data) { |
| | | return request({ |
| | | url: `/WarehousOrder/inventoryTransfer`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ç©æä¸å®¹å¨è§£ç» |
| | | export function getContainerMaterial(data) { |
| | | return request({ |
| | | url: `/WarehousOrder/getMaterialList?ContainerCode=${data.containerCode}&materialCode=${data.materialCode}&IsUseForMove=${data.isUseForMove}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | export function getCheckAllMaterial(data) { |
| | | return request({ |
| | | url: `/WarehousOrder/getMaterialList?ContainerCode=${data.containerCode}&materialCode=${data.materialCode}&IsUseForMove=${data.isUseForMove}&IsCheckAll=${data.IsCheckAll}`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | |
| | | //å»ç» |
| | | export function inventoryFrozen(data) { |
| | | return request({ |
| | | url: `/api/WmsStockQuan/Frozen`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // è§£å» |
| | | export function inventoryUnFrozen(data) { |
| | | return request({ |
| | | url: `/api/WmsStockQuan/Unfreezeing`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | import qs from 'qs' |
| | | |
| | | export function getPutawayStockQuan(data){ //è·åå½å容å¨ä¸çç»ç详æ
|
| | | return request({ |
| | | url: `/api/WmsPutaway/GetPutawayStockQuan?${qs.stringify(data)}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | export function putawayConfirm(data){ //䏿¶ç¡®è®¤ |
| | | return request({ |
| | | url: `/api/WmsPutaway/PutawayConfirm`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function bindputawayConfirm(data){ //䏿¶ç¡®è®¤ |
| | | return request({ |
| | | url: `/api/WmsPutaway/BindPutawayConfirm`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | request |
| | | } from '@/utils/request.js' |
| | | export function selectpeople(data) { //æ¥è¯¢åç¨äºº |
| | | return request({ |
| | | url: `/delivery/order/selectpeople?input=${data}`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function query(data) { //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/delivery/order/detail/query?OrderNo=${data}`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | // data: data |
| | | }) |
| | | } |
| | | export function borrowAdd(data) { //å½è¿ |
| | | return request({ |
| | | url: `/BorrowOrder/borrowAdd`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { |
| | | request |
| | | } from '../utils/request.js' |
| | | export function scrapQuery(data) { //æ¥è¯¢äºç»´ç |
| | | return request({ |
| | | url: `/Scrap/scrapQuery`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function confirm(data) { //æ¥åº |
| | | return request({ |
| | | url: `/Scrap/issueconfirm`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function queryDetail(data) { //æ¥è¯¢æ¥åºå |
| | | return request({ |
| | | url: `/Scrap/queryDetail?OrderNo=${data}`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function imagesUpdate(data) { //æ¥åºåæç
§ |
| | | return request({ |
| | | url: `/Scrap/imagesUpdate`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import qs from 'qs' |
| | | |
| | | import { |
| | | request |
| | | } from '../utils/request.js' |
| | | export function getOutWarehouseDetails(data) { //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/CriterionSorting/getOutWarehouseDetails?WareContainerCode=${data.WareContainerCode}&OrderNo=${data.OrderNo}`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getOutWarehouse(data) { //ç§éæ¥è¯¢ç©æ |
| | | return request({ |
| | | // url: `/Sorting/getOutWarehouse?WareContainerCode=${data.WareContainerCode}`, |
| | | url: `/Sorting/getOutWarehouse`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getOutKittingGroup(data) { //忣å表 |
| | | return request({ |
| | | url: `/Sorting/getOutWarehouseForGroupBySort`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getOutWarehouseGroup(data) { //ç§éæ¥è¯¢ç©æ --åç» |
| | | return request({ |
| | | // url: `/Sorting/getOutWarehouse?WareContainerCode=${data.WareContainerCode}`, |
| | | url: `/Sorting/getOutWarehouseForGroup`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function addWarehouseDetails(data) { //ç§éç¡®è®¤åæ£ |
| | | return request({ |
| | | url: `/Sorting/addWarehouseDetails`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function addWarehouseDetailsGroup(data) { //ç§éç¡®è®¤åæ£ --åç» |
| | | return request({ |
| | | // url: `/Sorting/addWarehouseDetailsForKitting`, |
| | | url: `/Sorting/ConfirmSort`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | //ååº |
| | | export function containerReturn(data) { |
| | | return request({ |
| | | url: `/Sorting/ContainerReturn`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //ååºç©æè¯¦æ
|
| | | export function getContainerDetail(data) { |
| | | return request({ |
| | | url: `/task/getMaterial`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //è·åå½ååºåéè¦åæ£ç容å¨å表 |
| | | /** |
| | | * @param {Object} type A3åºå 1 A1,A2åºå2 |
| | | */ |
| | | export function getContainerQuery(type) { |
| | | return request({ |
| | | url: `/Sorting/getContainerList?Type=${type}`, |
| | | method: 'post' |
| | | }) |
| | | } |
| | | |
| | | // åæ£è®°å½ |
| | | export function getPickPrintQuery(data) { |
| | | return request({ |
| | | url: `/Sorting/print/detail/query`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // åæ£è®°å½ -æé©¬æå° |
| | | export function getPickPrintQueryBanMa(data) { |
| | | return request({ |
| | | url: `/Sorting/print/detail/queryForKitting`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // å·¥åº-ä¸çº§ |
| | | export function selectOneQuery(data) { |
| | | return request({ |
| | | url: `/Sorting/getProcessList`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // æºåºå· -2级 |
| | | export function selectTwoQuery(data) { |
| | | return request({ |
| | | url: `/Sorting/getEquipmentList`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | //ç产订å - åè´§é¡µé¢ - æºåºå· -2级 - å¯åè´§çæºåºå·å表 |
| | | export function selectTwoQueryDelivery(data) { |
| | | return request({ |
| | | url: `/delivery/orderno/queryForKitting`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | // æºåºå·ä¸çç¼å· -3级 |
| | | export function selectThereQuery(data) { |
| | | return request({ |
| | | url: `/Sorting/getContainerList`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | //䏿¶åæç» |
| | | export function getwmsOrderMovementDetails(data) { |
| | | return request({ |
| | | url: `/api/wmsOrderMovementDetails/page`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | export function getOutWarehousePO(data) { |
| | | return request({ |
| | | url: `/api/wmsSort/getSortList`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function addWarehouseDetailsPO(data) { |
| | | return request({ |
| | | url: `/api/WmsSort/SortConfirm`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | //å¼å¸¸æ±æ¥ |
| | | export function addSortExceptionFlagConfirm(data) { |
| | | return request({ |
| | | url: `/api/WmsSort/SortExceptionFlagConfirm`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function addconfirmPick(data) { |
| | | return request({ |
| | | url: `/Sorting/confirmPick`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | // åè´§-æ¤é |
| | | export function getOutResumeGroup(data) { |
| | | return request({ |
| | | url: `/WarePicking/page`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | // åè´§-确认æ¤é |
| | | export function reSumeconfirmPick(data) { |
| | | return request({ |
| | | url: `/Sorting/cancelConfirmPick`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 忣-æ¤é |
| | | export function getOutResumeSortGroup(data) { |
| | | return request({ |
| | | url: `/record/sorting/query`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | // 忣-确认æ¤é |
| | | export function reSumeconfirmSort(data) { |
| | | return request({ |
| | | url: `/Sorting/cancelconfirmSort`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // è¶åº-æ¤é |
| | | export function getOutYekuGroup(data) { |
| | | return request({ |
| | | url: `/ConfirmDeliveryAndDeliver/page`, |
| | | method: 'get', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | // è¶åº-确认æ¤é |
| | | export function reSumeconfirmYeku(data) { |
| | | return request({ |
| | | url: `/ReceivingProcess/cancelYuekuForSHQY`, |
| | | method: 'post', |
| | | contentType: 'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function addConfirmReceipt(data){ //确认æ¶è´§ |
| | | return request({ |
| | | url: `/CriterionReceiving/addConfirmReceipt`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function getMaterial(data){ //æ¥è¯¢POå |
| | | return request({ |
| | | url: `/PurchaseOrder/pageDetails`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | //æ ¹æ®éè´åå·åç©æç¼ç è·åéè´æç» |
| | | export function getPurchaseOrderDetail(data){ //æ¥è¯¢POå |
| | | return request({ |
| | | url: `/api/wmsOrderPurchase/QueryDetailsPda`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | //åè´§åå表 |
| | | export function getQhdOrderDetail(data){ //æ¥è¯¢POå |
| | | return request({ |
| | | url: `/sorting/order/detail/list`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | export function addDelivery(data){ //确认æ¶è´§ |
| | | return request({ |
| | | url: `/api/receivingProcess/add`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getCollect(data){ //æ¬æ¬¡æ¶è´§ |
| | | return request({ |
| | | url: `/ReceivingProcess/getCollect`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | export function getShortageMaterial(data){ //缺æ |
| | | return request({ |
| | | url: `/ReceivingProcess/getShortageMaterial`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 2.29 |
| | | //æ ¹æ®éè´åå·åç©æç¼ç è·åéè´æç» |
| | | export function getPurchaseOrderDetail2(data){ //æ¥è¯¢POå |
| | | return request({ |
| | | url: `/ReceivingProcess/QueryDetails`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | export function addDeliveryNew(data){ //确认æ¶è´§ |
| | | return request({ |
| | | url: `/ReceivingProcess/AddPODeliveryForGoods`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function createBatchNo(data){ //èªå¨çææ¶è´§æ¹æ¬¡å· ãEditby shaocx,2022-12-30ã |
| | | return request({ |
| | | url: `/PurchaseOrder/createBatchNo`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function query(data){ //åæ®ç¶æç»è®¡ |
| | | return request({ |
| | | // url: `/check/order/status/query`, // |
| | | url: `/ReceivingProcess/AddPODeliveryForGoodsCheck`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //SAP-䏿 |
| | | export function getSapSelect(data) { |
| | | return request({ |
| | | url: `/ReceivingProcess/getsaplocation`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | |
| | | //è¶åº - 主页å表 |
| | | export function getMoveWarehouseGroup(data) { |
| | | return request({ |
| | | url: `/PurchaseOrder/queryAllowYKDetails`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | //è¶åº - 确认 |
| | | export function addconfirmMove(data) { |
| | | return request({ |
| | | url: `/ReceivingProcess/yuekuForSHQY`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | //è¶åº -å页å表 |
| | | export function getMoveOrderDetail(data){ |
| | | return request({ |
| | | url: `/sorting/order/detail/list`, |
| | | method: 'get', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | // æ¶è´§æ ¡éª |
| | | export function addShouhuoJiaoYan(data){ |
| | | return request({ |
| | | url: `/ReceivingProcess/ValidateBeforeAddPODeliveryForGoods`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | export function query(data){ //æ¥è¯¢ç©æ |
| | | return request({ |
| | | url: `/delivery/order/query?OrderNo=${data.OrderNo}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | // data: data |
| | | }) |
| | | } |
| | | export function issue(data){ //确认ä¸å |
| | | return request({ |
| | | url: `/task/issue`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import {request} from '../../utils/request.js' |
| | | |
| | | export function WareToolReturn(data){ //æ¥è¯¢å·¥éå
· |
| | | return request({ |
| | | url: `/WareToolReturn/page?Code=${data}`, |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | // data: data |
| | | }) |
| | | } |
| | | export function returnTool(data){ //åä»¶å½è¿ |
| | | return request({ |
| | | url: `/WareToolReturn/returnTool`, |
| | | method: 'post', |
| | | contentType:'application/json', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | //è·åå·¥éå
·äººåï¼åç¨ï¼å½è¿ï¼ |
| | | export function getWarePersonList(){ //æ¥è¯¢å·¥éå
· |
| | | return request({ |
| | | url: "/WareToolUsers/page?PageNo=1&PageSize=1000000", |
| | | method: 'get', |
| | | contentType:'application/json', |
| | | }) |
| | | } |
| | | |
| | | //è·åå·¥éå
·å½ååºå |
| | | export function getWareCount(data) { |
| | | return request({ |
| | | url: `/WareToolStock/page?Code=${data.code}&Unit=&PageNo=1&PageSize=10`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | |
| | | //å·¥éå
·åç¨ |
| | | export function wareBorrow(data) { |
| | | return request({ |
| | | url: `/WareToolStock/borrow`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //è·åå½ååç¨äººä¸çæªå½è¿å·¥éå
·å表 |
| | | export function getUnReturnList(data) { |
| | | return request({ |
| | | url: `/WareToolReturn/page?BorrowUserName=${data.name}&PageNo=1&PageSize=100000`, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | //å·¥éå
·å½è¿ |
| | | export function wareReturn(data) { |
| | | return request({ |
| | | url: `/WareToolReturnDetails/add`, |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | Animation å¾®å¨ç» |
| | | åºäºColorUIç»å»ºåºçå¨ç»æ¨¡å by æææ¸¯ 2019å¹´3æ26æ¥19:52:28 |
| | | */ |
| | | |
| | | /* css æ»¤é æ§å¶é»ç½åºè²gifç */ |
| | | .gif-black{ |
| | | mix-blend-mode: screen; |
| | | } |
| | | .gif-white{ |
| | | mix-blend-mode: multiply; |
| | | } |
| | | |
| | | |
| | | /* Animation css */ |
| | | [class*=animation-] { |
| | | animation-duration: .5s; |
| | | animation-timing-function: ease-out; |
| | | animation-fill-mode: both |
| | | } |
| | | |
| | | .animation-fade { |
| | | animation-name: fade; |
| | | animation-duration: .8s; |
| | | animation-timing-function: linear |
| | | } |
| | | |
| | | .animation-scale-up { |
| | | animation-name: scale-up |
| | | } |
| | | |
| | | .animation-scale-down { |
| | | animation-name: scale-down |
| | | } |
| | | |
| | | .animation-slide-top { |
| | | animation-name: slide-top |
| | | } |
| | | |
| | | .animation-slide-bottom { |
| | | animation-name: slide-bottom |
| | | } |
| | | |
| | | .animation-slide-left { |
| | | animation-name: slide-left |
| | | } |
| | | |
| | | .animation-slide-right { |
| | | animation-name: slide-right |
| | | } |
| | | |
| | | .animation-shake { |
| | | animation-name: shake |
| | | } |
| | | |
| | | .animation-reverse { |
| | | animation-direction: reverse |
| | | } |
| | | |
| | | @keyframes fade { |
| | | 0% { |
| | | opacity: 0 |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1 |
| | | } |
| | | } |
| | | |
| | | @keyframes scale-up { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: scale(.2) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: scale(1) |
| | | } |
| | | } |
| | | |
| | | @keyframes scale-down { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: scale(1.8) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: scale(1) |
| | | } |
| | | } |
| | | |
| | | @keyframes slide-top { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateY(-100%) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateY(0) |
| | | } |
| | | } |
| | | |
| | | @keyframes slide-bottom { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateY(100%) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateY(0) |
| | | } |
| | | } |
| | | |
| | | @keyframes shake { |
| | | |
| | | 0%, |
| | | 100% { |
| | | transform: translateX(0) |
| | | } |
| | | |
| | | 10% { |
| | | transform: translateX(-9px) |
| | | } |
| | | |
| | | 20% { |
| | | transform: translateX(8px) |
| | | } |
| | | |
| | | 30% { |
| | | transform: translateX(-7px) |
| | | } |
| | | |
| | | 40% { |
| | | transform: translateX(6px) |
| | | } |
| | | |
| | | 50% { |
| | | transform: translateX(-5px) |
| | | } |
| | | |
| | | 60% { |
| | | transform: translateX(4px) |
| | | } |
| | | |
| | | 70% { |
| | | transform: translateX(-3px) |
| | | } |
| | | |
| | | 80% { |
| | | transform: translateX(2px) |
| | | } |
| | | |
| | | 90% { |
| | | transform: translateX(-1px) |
| | | } |
| | | } |
| | | |
| | | @keyframes slide-left { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateX(-100%) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateX(0) |
| | | } |
| | | } |
| | | |
| | | @keyframes slide-right { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateX(100%) |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateX(0) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <view class="cu-custom flex align-center zindex" :style="[{height:CustomBar + 'px'}]"> |
| | | <view class="cu-bar fixed" :style="style" :class="[bgImage!=''?'none-bg text-white bg-img':'',bgColor]"> |
| | | <view class="action" @tap="BackPage" v-if="isBack"> |
| | | <text class="iconfont icon-fanhui"></text> |
| | | <slot name="backText"></slot> |
| | | </view> |
| | | <view class="action" @tap="$emit('account')" v-if="isHead"> |
| | | <text class="iconfont icon-touxiang"></text> |
| | | |
| | | </view> |
| | | <view class="content" :style="[{top:StatusBar + 'px'}]"> |
| | | <slot name="content"></slot> |
| | | </view> |
| | | <slot name="right"> |
| | | <!-- <image class="ingLany" src="/static/lanya.png" mode="aspectFit" @click="getLanya"></image> --> |
| | | </slot> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | StatusBar: this.StatusBar, |
| | | CustomBar: this.CustomBar |
| | | }; |
| | | }, |
| | | name: 'cu-custom', |
| | | computed: { |
| | | style() { |
| | | var StatusBar = this.StatusBar; |
| | | var CustomBar = this.CustomBar; |
| | | var bgImage = this.bgImage; |
| | | var style = `height:${CustomBar}px;padding-top:${StatusBar}px;`; |
| | | if (this.bgImage) { |
| | | style = `${style}background-image:url(${bgImage});`; |
| | | } |
| | | return style |
| | | } |
| | | }, |
| | | props: { |
| | | bgColor: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | isBack: { |
| | | type: [Boolean, String], |
| | | default: false |
| | | }, |
| | | isHead: { |
| | | type: [Boolean, String], |
| | | default: false |
| | | }, |
| | | bgImage: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | methods: { |
| | | BackPage() { |
| | | |
| | | // if (getCurrentPages().length < 2 && 'undefined' !== typeof __wxConfig) { |
| | | // let url = '/' + __wxConfig.pages[0] |
| | | // return uni.redirectTo({ |
| | | // url |
| | | // }) |
| | | // } |
| | | let pages = getCurrentPages();//è·åæå¼çææé¡µé¢ |
| | | console.log("æå¼çææé¡µé¢") |
| | | console.log(pages) |
| | | let route = pages[pages.length - 1].route; //å½åé¡µé¢ |
| | | console.log("å½å页é¢" + route) |
| | | if(route == 'pages/sort/pickorder' || route == 'pages/sort/kittingSort'){ |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦ç¡®è®¤è¿åï¼', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | uni.redirectTo({ |
| | | url: '/pages/index/index' |
| | | }) |
| | | } else if (res.cancel) { |
| | | return |
| | | } |
| | | }) |
| | | }); |
| | | return |
| | | } |
| | | |
| | | if (route == 'pages/takeMaterial/orderpiece/orderpiecePo' || route == 'pages/recommend/recommend' || route == 'pages/check/check/index' || route == 'pages/check/square' || route == 'pages/hander/handerIn' || route == 'pages/hander/handerOut' || route == 'pages/sort/pickorder'|| route == 'pages/sort/kittingSort' || route == 'pages/artificial/artificial' || route == 'pages/deliver/deliver' || route == 'pages/deliver/deliverDo') { |
| | | uni.redirectTo({ |
| | | url: '/pages/index/index' |
| | | }) |
| | | return |
| | | } |
| | | |
| | | if(route == 'pages/takeMaterial/orderpiece/poYueku'){ |
| | | uni.redirectTo({ |
| | | url: '/pages/takeMaterial/orderpiece/orderpiecePo' |
| | | }) |
| | | return |
| | | } |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }); |
| | | }, |
| | | getLanya() { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦éæ°è¿æ¥èçï¼', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | uni.navigateTo({ |
| | | url: '../print/bluetoothConnection' |
| | | }) |
| | | } else if (res.cancel) {} |
| | | }) |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .zindex { |
| | | /* z-index: 10; */ |
| | | } |
| | | |
| | | .ingLany{ |
| | | width: 28px; |
| | | height: 28px; |
| | | border-radius: 100%; |
| | | margin-right: 1%; |
| | | } |
| | | </style> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @keyframes cuIcon-spin { |
| | | 0% { |
| | | -webkit-transform: rotate(0); |
| | | transform: rotate(0); |
| | | } |
| | | |
| | | 100% { |
| | | -webkit-transform: rotate(359deg); |
| | | transform: rotate(359deg); |
| | | } |
| | | } |
| | | |
| | | .cuIconfont-spin { |
| | | -webkit-animation: cuIcon-spin 2s infinite linear; |
| | | animation: cuIcon-spin 2s infinite linear; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .cuIconfont-pulse { |
| | | -webkit-animation: cuIcon-spin 1s infinite steps(8); |
| | | animation: cuIcon-spin 1s infinite steps(8); |
| | | display: inline-block; |
| | | } |
| | | |
| | | [class*="cuIcon-"] { |
| | | font-family: "cuIcon"; |
| | | font-size: inherit; |
| | | font-style: normal; |
| | | } |
| | | |
| | | @font-face { |
| | | font-family: "cuIcon"; |
| | | src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831'); |
| | | /* IE9*/ |
| | | src: url('//at.alicdn.com/t/font_533566_yfq2d9wdij.eot?t=1545239985831#iefix') format('embedded-opentype'), |
| | | /* IE6-IE8 */ |
| | | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), |
| | | url('//at.alicdn.com/t/font_533566_yfq2d9wdij.ttf?t=1545239985831') format('truetype'), |
| | | /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ |
| | | url('//at.alicdn.com/t/font_533566_yfq2d9wdij.svg?t=1545239985831#cuIconfont') format('svg'); |
| | | /* iOS 4.1- */ |
| | | } |
| | | |
| | | .cuIcon-appreciate:before { |
| | | content: "\e644"; |
| | | } |
| | | |
| | | .cuIcon-check:before { |
| | | content: "\e645"; |
| | | } |
| | | |
| | | .cuIcon-close:before { |
| | | content: "\e646"; |
| | | } |
| | | |
| | | .cuIcon-edit:before { |
| | | content: "\e649"; |
| | | } |
| | | |
| | | .cuIcon-emoji:before { |
| | | content: "\e64a"; |
| | | } |
| | | |
| | | .cuIcon-favorfill:before { |
| | | content: "\e64b"; |
| | | } |
| | | |
| | | .cuIcon-favor:before { |
| | | content: "\e64c"; |
| | | } |
| | | |
| | | .cuIcon-loading:before { |
| | | content: "\e64f"; |
| | | } |
| | | |
| | | .cuIcon-locationfill:before { |
| | | content: "\e650"; |
| | | } |
| | | |
| | | .cuIcon-location:before { |
| | | content: "\e651"; |
| | | } |
| | | |
| | | .cuIcon-phone:before { |
| | | content: "\e652"; |
| | | } |
| | | |
| | | .cuIcon-roundcheckfill:before { |
| | | content: "\e656"; |
| | | } |
| | | |
| | | .cuIcon-roundcheck:before { |
| | | content: "\e657"; |
| | | } |
| | | |
| | | .cuIcon-roundclosefill:before { |
| | | content: "\e658"; |
| | | } |
| | | |
| | | .cuIcon-roundclose:before { |
| | | content: "\e659"; |
| | | } |
| | | |
| | | .cuIcon-roundrightfill:before { |
| | | content: "\e65a"; |
| | | } |
| | | |
| | | .cuIcon-roundright:before { |
| | | content: "\e65b"; |
| | | } |
| | | |
| | | .cuIcon-search:before { |
| | | content: "\e65c"; |
| | | } |
| | | |
| | | .cuIcon-taxi:before { |
| | | content: "\e65d"; |
| | | } |
| | | |
| | | .cuIcon-timefill:before { |
| | | content: "\e65e"; |
| | | } |
| | | |
| | | .cuIcon-time:before { |
| | | content: "\e65f"; |
| | | } |
| | | |
| | | .cuIcon-unfold:before { |
| | | content: "\e661"; |
| | | } |
| | | |
| | | .cuIcon-warnfill:before { |
| | | content: "\e662"; |
| | | } |
| | | |
| | | .cuIcon-warn:before { |
| | | content: "\e663"; |
| | | } |
| | | |
| | | .cuIcon-camerafill:before { |
| | | content: "\e664"; |
| | | } |
| | | |
| | | .cuIcon-camera:before { |
| | | content: "\e665"; |
| | | } |
| | | |
| | | .cuIcon-commentfill:before { |
| | | content: "\e666"; |
| | | } |
| | | |
| | | .cuIcon-comment:before { |
| | | content: "\e667"; |
| | | } |
| | | |
| | | .cuIcon-likefill:before { |
| | | content: "\e668"; |
| | | } |
| | | |
| | | .cuIcon-like:before { |
| | | content: "\e669"; |
| | | } |
| | | |
| | | .cuIcon-notificationfill:before { |
| | | content: "\e66a"; |
| | | } |
| | | |
| | | .cuIcon-notification:before { |
| | | content: "\e66b"; |
| | | } |
| | | |
| | | .cuIcon-order:before { |
| | | content: "\e66c"; |
| | | } |
| | | |
| | | .cuIcon-samefill:before { |
| | | content: "\e66d"; |
| | | } |
| | | |
| | | .cuIcon-same:before { |
| | | content: "\e66e"; |
| | | } |
| | | |
| | | .cuIcon-deliver:before { |
| | | content: "\e671"; |
| | | } |
| | | |
| | | .cuIcon-evaluate:before { |
| | | content: "\e672"; |
| | | } |
| | | |
| | | .cuIcon-pay:before { |
| | | content: "\e673"; |
| | | } |
| | | |
| | | .cuIcon-send:before { |
| | | content: "\e675"; |
| | | } |
| | | |
| | | .cuIcon-shop:before { |
| | | content: "\e676"; |
| | | } |
| | | |
| | | .cuIcon-ticket:before { |
| | | content: "\e677"; |
| | | } |
| | | |
| | | .cuIcon-back:before { |
| | | content: "\e679"; |
| | | } |
| | | |
| | | .cuIcon-cascades:before { |
| | | content: "\e67c"; |
| | | } |
| | | |
| | | .cuIcon-discover:before { |
| | | content: "\e67e"; |
| | | } |
| | | |
| | | .cuIcon-list:before { |
| | | content: "\e682"; |
| | | } |
| | | |
| | | .cuIcon-more:before { |
| | | content: "\e684"; |
| | | } |
| | | |
| | | .cuIcon-scan:before { |
| | | content: "\e689"; |
| | | } |
| | | |
| | | .cuIcon-settings:before { |
| | | content: "\e68a"; |
| | | } |
| | | |
| | | .cuIcon-questionfill:before { |
| | | content: "\e690"; |
| | | } |
| | | |
| | | .cuIcon-question:before { |
| | | content: "\e691"; |
| | | } |
| | | |
| | | .cuIcon-shopfill:before { |
| | | content: "\e697"; |
| | | } |
| | | |
| | | .cuIcon-form:before { |
| | | content: "\e699"; |
| | | } |
| | | |
| | | .cuIcon-pic:before { |
| | | content: "\e69b"; |
| | | } |
| | | |
| | | .cuIcon-filter:before { |
| | | content: "\e69c"; |
| | | } |
| | | |
| | | .cuIcon-footprint:before { |
| | | content: "\e69d"; |
| | | } |
| | | |
| | | .cuIcon-top:before { |
| | | content: "\e69e"; |
| | | } |
| | | |
| | | .cuIcon-pulldown:before { |
| | | content: "\e69f"; |
| | | } |
| | | |
| | | .cuIcon-pullup:before { |
| | | content: "\e6a0"; |
| | | } |
| | | |
| | | .cuIcon-right:before { |
| | | content: "\e6a3"; |
| | | } |
| | | |
| | | .cuIcon-refresh:before { |
| | | content: "\e6a4"; |
| | | } |
| | | |
| | | .cuIcon-moreandroid:before { |
| | | content: "\e6a5"; |
| | | } |
| | | |
| | | .cuIcon-deletefill:before { |
| | | content: "\e6a6"; |
| | | } |
| | | |
| | | .cuIcon-refund:before { |
| | | content: "\e6ac"; |
| | | } |
| | | |
| | | .cuIcon-cart:before { |
| | | content: "\e6af"; |
| | | } |
| | | |
| | | .cuIcon-qrcode:before { |
| | | content: "\e6b0"; |
| | | } |
| | | |
| | | .cuIcon-remind:before { |
| | | content: "\e6b2"; |
| | | } |
| | | |
| | | .cuIcon-delete:before { |
| | | content: "\e6b4"; |
| | | } |
| | | |
| | | .cuIcon-profile:before { |
| | | content: "\e6b7"; |
| | | } |
| | | |
| | | .cuIcon-home:before { |
| | | content: "\e6b8"; |
| | | } |
| | | |
| | | .cuIcon-cartfill:before { |
| | | content: "\e6b9"; |
| | | } |
| | | |
| | | .cuIcon-discoverfill:before { |
| | | content: "\e6ba"; |
| | | } |
| | | |
| | | .cuIcon-homefill:before { |
| | | content: "\e6bb"; |
| | | } |
| | | |
| | | .cuIcon-message:before { |
| | | content: "\e6bc"; |
| | | } |
| | | |
| | | .cuIcon-addressbook:before { |
| | | content: "\e6bd"; |
| | | } |
| | | |
| | | .cuIcon-link:before { |
| | | content: "\e6bf"; |
| | | } |
| | | |
| | | .cuIcon-lock:before { |
| | | content: "\e6c0"; |
| | | } |
| | | |
| | | .cuIcon-unlock:before { |
| | | content: "\e6c2"; |
| | | } |
| | | |
| | | .cuIcon-vip:before { |
| | | content: "\e6c3"; |
| | | } |
| | | |
| | | .cuIcon-weibo:before { |
| | | content: "\e6c4"; |
| | | } |
| | | |
| | | .cuIcon-activity:before { |
| | | content: "\e6c5"; |
| | | } |
| | | |
| | | .cuIcon-friendaddfill:before { |
| | | content: "\e6c9"; |
| | | } |
| | | |
| | | .cuIcon-friendadd:before { |
| | | content: "\e6ca"; |
| | | } |
| | | |
| | | .cuIcon-friendfamous:before { |
| | | content: "\e6cb"; |
| | | } |
| | | |
| | | .cuIcon-friend:before { |
| | | content: "\e6cc"; |
| | | } |
| | | |
| | | .cuIcon-goods:before { |
| | | content: "\e6cd"; |
| | | } |
| | | |
| | | .cuIcon-selection:before { |
| | | content: "\e6ce"; |
| | | } |
| | | |
| | | .cuIcon-explore:before { |
| | | content: "\e6d2"; |
| | | } |
| | | |
| | | .cuIcon-present:before { |
| | | content: "\e6d3"; |
| | | } |
| | | |
| | | .cuIcon-squarecheckfill:before { |
| | | content: "\e6d4"; |
| | | } |
| | | |
| | | .cuIcon-square:before { |
| | | content: "\e6d5"; |
| | | } |
| | | |
| | | .cuIcon-squarecheck:before { |
| | | content: "\e6d6"; |
| | | } |
| | | |
| | | .cuIcon-round:before { |
| | | content: "\e6d7"; |
| | | } |
| | | |
| | | .cuIcon-roundaddfill:before { |
| | | content: "\e6d8"; |
| | | } |
| | | |
| | | .cuIcon-roundadd:before { |
| | | content: "\e6d9"; |
| | | } |
| | | |
| | | .cuIcon-add:before { |
| | | content: "\e6da"; |
| | | } |
| | | |
| | | .cuIcon-notificationforbidfill:before { |
| | | content: "\e6db"; |
| | | } |
| | | |
| | | .cuIcon-explorefill:before { |
| | | content: "\e6dd"; |
| | | } |
| | | |
| | | .cuIcon-fold:before { |
| | | content: "\e6de"; |
| | | } |
| | | |
| | | .cuIcon-game:before { |
| | | content: "\e6df"; |
| | | } |
| | | |
| | | .cuIcon-redpacket:before { |
| | | content: "\e6e0"; |
| | | } |
| | | |
| | | .cuIcon-selectionfill:before { |
| | | content: "\e6e1"; |
| | | } |
| | | |
| | | .cuIcon-similar:before { |
| | | content: "\e6e2"; |
| | | } |
| | | |
| | | .cuIcon-appreciatefill:before { |
| | | content: "\e6e3"; |
| | | } |
| | | |
| | | .cuIcon-infofill:before { |
| | | content: "\e6e4"; |
| | | } |
| | | |
| | | .cuIcon-info:before { |
| | | content: "\e6e5"; |
| | | } |
| | | |
| | | .cuIcon-forwardfill:before { |
| | | content: "\e6ea"; |
| | | } |
| | | |
| | | .cuIcon-forward:before { |
| | | content: "\e6eb"; |
| | | } |
| | | |
| | | .cuIcon-rechargefill:before { |
| | | content: "\e6ec"; |
| | | } |
| | | |
| | | .cuIcon-recharge:before { |
| | | content: "\e6ed"; |
| | | } |
| | | |
| | | .cuIcon-vipcard:before { |
| | | content: "\e6ee"; |
| | | } |
| | | |
| | | .cuIcon-voice:before { |
| | | content: "\e6ef"; |
| | | } |
| | | |
| | | .cuIcon-voicefill:before { |
| | | content: "\e6f0"; |
| | | } |
| | | |
| | | .cuIcon-friendfavor:before { |
| | | content: "\e6f1"; |
| | | } |
| | | |
| | | .cuIcon-wifi:before { |
| | | content: "\e6f2"; |
| | | } |
| | | |
| | | .cuIcon-share:before { |
| | | content: "\e6f3"; |
| | | } |
| | | |
| | | .cuIcon-wefill:before { |
| | | content: "\e6f4"; |
| | | } |
| | | |
| | | .cuIcon-we:before { |
| | | content: "\e6f5"; |
| | | } |
| | | |
| | | .cuIcon-lightauto:before { |
| | | content: "\e6f6"; |
| | | } |
| | | |
| | | .cuIcon-lightforbid:before { |
| | | content: "\e6f7"; |
| | | } |
| | | |
| | | .cuIcon-lightfill:before { |
| | | content: "\e6f8"; |
| | | } |
| | | |
| | | .cuIcon-camerarotate:before { |
| | | content: "\e6f9"; |
| | | } |
| | | |
| | | .cuIcon-light:before { |
| | | content: "\e6fa"; |
| | | } |
| | | |
| | | .cuIcon-barcode:before { |
| | | content: "\e6fb"; |
| | | } |
| | | |
| | | .cuIcon-flashlightclose:before { |
| | | content: "\e6fc"; |
| | | } |
| | | |
| | | .cuIcon-flashlightopen:before { |
| | | content: "\e6fd"; |
| | | } |
| | | |
| | | .cuIcon-searchlist:before { |
| | | content: "\e6fe"; |
| | | } |
| | | |
| | | .cuIcon-service:before { |
| | | content: "\e6ff"; |
| | | } |
| | | |
| | | .cuIcon-sort:before { |
| | | content: "\e700"; |
| | | } |
| | | |
| | | .cuIcon-down:before { |
| | | content: "\e703"; |
| | | } |
| | | |
| | | .cuIcon-mobile:before { |
| | | content: "\e704"; |
| | | } |
| | | |
| | | .cuIcon-mobilefill:before { |
| | | content: "\e705"; |
| | | } |
| | | |
| | | .cuIcon-copy:before { |
| | | content: "\e706"; |
| | | } |
| | | |
| | | .cuIcon-countdownfill:before { |
| | | content: "\e707"; |
| | | } |
| | | |
| | | .cuIcon-countdown:before { |
| | | content: "\e708"; |
| | | } |
| | | |
| | | .cuIcon-noticefill:before { |
| | | content: "\e709"; |
| | | } |
| | | |
| | | .cuIcon-notice:before { |
| | | content: "\e70a"; |
| | | } |
| | | |
| | | .cuIcon-upstagefill:before { |
| | | content: "\e70e"; |
| | | } |
| | | |
| | | .cuIcon-upstage:before { |
| | | content: "\e70f"; |
| | | } |
| | | |
| | | .cuIcon-babyfill:before { |
| | | content: "\e710"; |
| | | } |
| | | |
| | | .cuIcon-baby:before { |
| | | content: "\e711"; |
| | | } |
| | | |
| | | .cuIcon-brandfill:before { |
| | | content: "\e712"; |
| | | } |
| | | |
| | | .cuIcon-brand:before { |
| | | content: "\e713"; |
| | | } |
| | | |
| | | .cuIcon-choicenessfill:before { |
| | | content: "\e714"; |
| | | } |
| | | |
| | | .cuIcon-choiceness:before { |
| | | content: "\e715"; |
| | | } |
| | | |
| | | .cuIcon-clothesfill:before { |
| | | content: "\e716"; |
| | | } |
| | | |
| | | .cuIcon-clothes:before { |
| | | content: "\e717"; |
| | | } |
| | | |
| | | .cuIcon-creativefill:before { |
| | | content: "\e718"; |
| | | } |
| | | |
| | | .cuIcon-creative:before { |
| | | content: "\e719"; |
| | | } |
| | | |
| | | .cuIcon-female:before { |
| | | content: "\e71a"; |
| | | } |
| | | |
| | | .cuIcon-keyboard:before { |
| | | content: "\e71b"; |
| | | } |
| | | |
| | | .cuIcon-male:before { |
| | | content: "\e71c"; |
| | | } |
| | | |
| | | .cuIcon-newfill:before { |
| | | content: "\e71d"; |
| | | } |
| | | |
| | | .cuIcon-new:before { |
| | | content: "\e71e"; |
| | | } |
| | | |
| | | .cuIcon-pullleft:before { |
| | | content: "\e71f"; |
| | | } |
| | | |
| | | .cuIcon-pullright:before { |
| | | content: "\e720"; |
| | | } |
| | | |
| | | .cuIcon-rankfill:before { |
| | | content: "\e721"; |
| | | } |
| | | |
| | | .cuIcon-rank:before { |
| | | content: "\e722"; |
| | | } |
| | | |
| | | .cuIcon-bad:before { |
| | | content: "\e723"; |
| | | } |
| | | |
| | | .cuIcon-cameraadd:before { |
| | | content: "\e724"; |
| | | } |
| | | |
| | | .cuIcon-focus:before { |
| | | content: "\e725"; |
| | | } |
| | | |
| | | .cuIcon-friendfill:before { |
| | | content: "\e726"; |
| | | } |
| | | |
| | | .cuIcon-cameraaddfill:before { |
| | | content: "\e727"; |
| | | } |
| | | |
| | | .cuIcon-apps:before { |
| | | content: "\e729"; |
| | | } |
| | | |
| | | .cuIcon-paintfill:before { |
| | | content: "\e72a"; |
| | | } |
| | | |
| | | .cuIcon-paint:before { |
| | | content: "\e72b"; |
| | | } |
| | | |
| | | .cuIcon-picfill:before { |
| | | content: "\e72c"; |
| | | } |
| | | |
| | | .cuIcon-refresharrow:before { |
| | | content: "\e72d"; |
| | | } |
| | | |
| | | .cuIcon-colorlens:before { |
| | | content: "\e6e6"; |
| | | } |
| | | |
| | | .cuIcon-markfill:before { |
| | | content: "\e730"; |
| | | } |
| | | |
| | | .cuIcon-mark:before { |
| | | content: "\e731"; |
| | | } |
| | | |
| | | .cuIcon-presentfill:before { |
| | | content: "\e732"; |
| | | } |
| | | |
| | | .cuIcon-repeal:before { |
| | | content: "\e733"; |
| | | } |
| | | |
| | | .cuIcon-album:before { |
| | | content: "\e734"; |
| | | } |
| | | |
| | | .cuIcon-peoplefill:before { |
| | | content: "\e735"; |
| | | } |
| | | |
| | | .cuIcon-people:before { |
| | | content: "\e736"; |
| | | } |
| | | |
| | | .cuIcon-servicefill:before { |
| | | content: "\e737"; |
| | | } |
| | | |
| | | .cuIcon-repair:before { |
| | | content: "\e738"; |
| | | } |
| | | |
| | | .cuIcon-file:before { |
| | | content: "\e739"; |
| | | } |
| | | |
| | | .cuIcon-repairfill:before { |
| | | content: "\e73a"; |
| | | } |
| | | |
| | | .cuIcon-taoxiaopu:before { |
| | | content: "\e73b"; |
| | | } |
| | | |
| | | .cuIcon-weixin:before { |
| | | content: "\e612"; |
| | | } |
| | | |
| | | .cuIcon-attentionfill:before { |
| | | content: "\e73c"; |
| | | } |
| | | |
| | | .cuIcon-attention:before { |
| | | content: "\e73d"; |
| | | } |
| | | |
| | | .cuIcon-commandfill:before { |
| | | content: "\e73e"; |
| | | } |
| | | |
| | | .cuIcon-command:before { |
| | | content: "\e73f"; |
| | | } |
| | | |
| | | .cuIcon-communityfill:before { |
| | | content: "\e740"; |
| | | } |
| | | |
| | | .cuIcon-community:before { |
| | | content: "\e741"; |
| | | } |
| | | |
| | | .cuIcon-read:before { |
| | | content: "\e742"; |
| | | } |
| | | |
| | | .cuIcon-calendar:before { |
| | | content: "\e74a"; |
| | | } |
| | | |
| | | .cuIcon-cut:before { |
| | | content: "\e74b"; |
| | | } |
| | | |
| | | .cuIcon-magic:before { |
| | | content: "\e74c"; |
| | | } |
| | | |
| | | .cuIcon-backwardfill:before { |
| | | content: "\e74d"; |
| | | } |
| | | |
| | | .cuIcon-playfill:before { |
| | | content: "\e74f"; |
| | | } |
| | | |
| | | .cuIcon-stop:before { |
| | | content: "\e750"; |
| | | } |
| | | |
| | | .cuIcon-tagfill:before { |
| | | content: "\e751"; |
| | | } |
| | | |
| | | .cuIcon-tag:before { |
| | | content: "\e752"; |
| | | } |
| | | |
| | | .cuIcon-group:before { |
| | | content: "\e753"; |
| | | } |
| | | |
| | | .cuIcon-all:before { |
| | | content: "\e755"; |
| | | } |
| | | |
| | | .cuIcon-backdelete:before { |
| | | content: "\e756"; |
| | | } |
| | | |
| | | .cuIcon-hotfill:before { |
| | | content: "\e757"; |
| | | } |
| | | |
| | | .cuIcon-hot:before { |
| | | content: "\e758"; |
| | | } |
| | | |
| | | .cuIcon-post:before { |
| | | content: "\e759"; |
| | | } |
| | | |
| | | .cuIcon-radiobox:before { |
| | | content: "\e75b"; |
| | | } |
| | | |
| | | .cuIcon-rounddown:before { |
| | | content: "\e75c"; |
| | | } |
| | | |
| | | .cuIcon-upload:before { |
| | | content: "\e75d"; |
| | | } |
| | | |
| | | .cuIcon-writefill:before { |
| | | content: "\e760"; |
| | | } |
| | | |
| | | .cuIcon-write:before { |
| | | content: "\e761"; |
| | | } |
| | | |
| | | .cuIcon-radioboxfill:before { |
| | | content: "\e763"; |
| | | } |
| | | |
| | | .cuIcon-punch:before { |
| | | content: "\e764"; |
| | | } |
| | | |
| | | .cuIcon-shake:before { |
| | | content: "\e765"; |
| | | } |
| | | |
| | | .cuIcon-move:before { |
| | | content: "\e768"; |
| | | } |
| | | |
| | | .cuIcon-safe:before { |
| | | content: "\e769"; |
| | | } |
| | | |
| | | .cuIcon-activityfill:before { |
| | | content: "\e775"; |
| | | } |
| | | |
| | | .cuIcon-crownfill:before { |
| | | content: "\e776"; |
| | | } |
| | | |
| | | .cuIcon-crown:before { |
| | | content: "\e777"; |
| | | } |
| | | |
| | | .cuIcon-goodsfill:before { |
| | | content: "\e778"; |
| | | } |
| | | |
| | | .cuIcon-messagefill:before { |
| | | content: "\e779"; |
| | | } |
| | | |
| | | .cuIcon-profilefill:before { |
| | | content: "\e77a"; |
| | | } |
| | | |
| | | .cuIcon-sound:before { |
| | | content: "\e77b"; |
| | | } |
| | | |
| | | .cuIcon-sponsorfill:before { |
| | | content: "\e77c"; |
| | | } |
| | | |
| | | .cuIcon-sponsor:before { |
| | | content: "\e77d"; |
| | | } |
| | | |
| | | .cuIcon-upblock:before { |
| | | content: "\e77e"; |
| | | } |
| | | |
| | | .cuIcon-weblock:before { |
| | | content: "\e77f"; |
| | | } |
| | | |
| | | .cuIcon-weunblock:before { |
| | | content: "\e780"; |
| | | } |
| | | |
| | | .cuIcon-my:before { |
| | | content: "\e78b"; |
| | | } |
| | | |
| | | .cuIcon-myfill:before { |
| | | content: "\e78c"; |
| | | } |
| | | |
| | | .cuIcon-emojifill:before { |
| | | content: "\e78d"; |
| | | } |
| | | |
| | | .cuIcon-emojiflashfill:before { |
| | | content: "\e78e"; |
| | | } |
| | | |
| | | .cuIcon-flashbuyfill:before { |
| | | content: "\e78f"; |
| | | } |
| | | |
| | | .cuIcon-text:before { |
| | | content: "\e791"; |
| | | } |
| | | |
| | | .cuIcon-goodsfavor:before { |
| | | content: "\e794"; |
| | | } |
| | | |
| | | .cuIcon-musicfill:before { |
| | | content: "\e795"; |
| | | } |
| | | |
| | | .cuIcon-musicforbidfill:before { |
| | | content: "\e796"; |
| | | } |
| | | |
| | | .cuIcon-card:before { |
| | | content: "\e624"; |
| | | } |
| | | |
| | | .cuIcon-triangledownfill:before { |
| | | content: "\e79b"; |
| | | } |
| | | |
| | | .cuIcon-triangleupfill:before { |
| | | content: "\e79c"; |
| | | } |
| | | |
| | | .cuIcon-roundleftfill-copy:before { |
| | | content: "\e79e"; |
| | | } |
| | | |
| | | .cuIcon-font:before { |
| | | content: "\e76a"; |
| | | } |
| | | |
| | | .cuIcon-title:before { |
| | | content: "\e82f"; |
| | | } |
| | | |
| | | .cuIcon-recordfill:before { |
| | | content: "\e7a4"; |
| | | } |
| | | |
| | | .cuIcon-record:before { |
| | | content: "\e7a6"; |
| | | } |
| | | |
| | | .cuIcon-cardboardfill:before { |
| | | content: "\e7a9"; |
| | | } |
| | | |
| | | .cuIcon-cardboard:before { |
| | | content: "\e7aa"; |
| | | } |
| | | |
| | | .cuIcon-formfill:before { |
| | | content: "\e7ab"; |
| | | } |
| | | |
| | | .cuIcon-coin:before { |
| | | content: "\e7ac"; |
| | | } |
| | | |
| | | .cuIcon-cardboardforbid:before { |
| | | content: "\e7af"; |
| | | } |
| | | |
| | | .cuIcon-circlefill:before { |
| | | content: "\e7b0"; |
| | | } |
| | | |
| | | .cuIcon-circle:before { |
| | | content: "\e7b1"; |
| | | } |
| | | |
| | | .cuIcon-attentionforbid:before { |
| | | content: "\e7b2"; |
| | | } |
| | | |
| | | .cuIcon-attentionforbidfill:before { |
| | | content: "\e7b3"; |
| | | } |
| | | |
| | | .cuIcon-attentionfavorfill:before { |
| | | content: "\e7b4"; |
| | | } |
| | | |
| | | .cuIcon-attentionfavor:before { |
| | | content: "\e7b5"; |
| | | } |
| | | |
| | | .cuIcon-titles:before { |
| | | content: "\e701"; |
| | | } |
| | | |
| | | .cuIcon-icloading:before { |
| | | content: "\e67a"; |
| | | } |
| | | |
| | | .cuIcon-full:before { |
| | | content: "\e7bc"; |
| | | } |
| | | |
| | | .cuIcon-mail:before { |
| | | content: "\e7bd"; |
| | | } |
| | | |
| | | .cuIcon-peoplelist:before { |
| | | content: "\e7be"; |
| | | } |
| | | |
| | | .cuIcon-goodsnewfill:before { |
| | | content: "\e7bf"; |
| | | } |
| | | |
| | | .cuIcon-goodsnew:before { |
| | | content: "\e7c0"; |
| | | } |
| | | |
| | | .cuIcon-medalfill:before { |
| | | content: "\e7c1"; |
| | | } |
| | | |
| | | .cuIcon-medal:before { |
| | | content: "\e7c2"; |
| | | } |
| | | |
| | | .cuIcon-newsfill:before { |
| | | content: "\e7c3"; |
| | | } |
| | | |
| | | .cuIcon-newshotfill:before { |
| | | content: "\e7c4"; |
| | | } |
| | | |
| | | .cuIcon-newshot:before { |
| | | content: "\e7c5"; |
| | | } |
| | | |
| | | .cuIcon-news:before { |
| | | content: "\e7c6"; |
| | | } |
| | | |
| | | .cuIcon-videofill:before { |
| | | content: "\e7c7"; |
| | | } |
| | | |
| | | .cuIcon-video:before { |
| | | content: "\e7c8"; |
| | | } |
| | | |
| | | .cuIcon-exit:before { |
| | | content: "\e7cb"; |
| | | } |
| | | |
| | | .cuIcon-skinfill:before { |
| | | content: "\e7cc"; |
| | | } |
| | | |
| | | .cuIcon-skin:before { |
| | | content: "\e7cd"; |
| | | } |
| | | |
| | | .cuIcon-moneybagfill:before { |
| | | content: "\e7ce"; |
| | | } |
| | | |
| | | .cuIcon-usefullfill:before { |
| | | content: "\e7cf"; |
| | | } |
| | | |
| | | .cuIcon-usefull:before { |
| | | content: "\e7d0"; |
| | | } |
| | | |
| | | .cuIcon-moneybag:before { |
| | | content: "\e7d1"; |
| | | } |
| | | |
| | | .cuIcon-redpacket_fill:before { |
| | | content: "\e7d3"; |
| | | } |
| | | |
| | | .cuIcon-subscription:before { |
| | | content: "\e7d4"; |
| | | } |
| | | |
| | | .cuIcon-loading1:before { |
| | | content: "\e633"; |
| | | } |
| | | |
| | | .cuIcon-github:before { |
| | | content: "\e692"; |
| | | } |
| | | |
| | | .cuIcon-global:before { |
| | | content: "\e7eb"; |
| | | } |
| | | |
| | | .cuIcon-settingsfill:before { |
| | | content: "\e6ab"; |
| | | } |
| | | |
| | | .cuIcon-back_android:before { |
| | | content: "\e7ed"; |
| | | } |
| | | |
| | | .cuIcon-expressman:before { |
| | | content: "\e7ef"; |
| | | } |
| | | |
| | | .cuIcon-evaluate_fill:before { |
| | | content: "\e7f0"; |
| | | } |
| | | |
| | | .cuIcon-group_fill:before { |
| | | content: "\e7f5"; |
| | | } |
| | | |
| | | .cuIcon-play_forward_fill:before { |
| | | content: "\e7f6"; |
| | | } |
| | | |
| | | .cuIcon-deliver_fill:before { |
| | | content: "\e7f7"; |
| | | } |
| | | |
| | | .cuIcon-notice_forbid_fill:before { |
| | | content: "\e7f8"; |
| | | } |
| | | |
| | | .cuIcon-fork:before { |
| | | content: "\e60c"; |
| | | } |
| | | |
| | | .cuIcon-pick:before { |
| | | content: "\e7fa"; |
| | | } |
| | | |
| | | .cuIcon-wenzi:before { |
| | | content: "\e6a7"; |
| | | } |
| | | |
| | | .cuIcon-ellipse:before { |
| | | content: "\e600"; |
| | | } |
| | | |
| | | .cuIcon-qr_code:before { |
| | | content: "\e61b"; |
| | | } |
| | | |
| | | .cuIcon-dianhua:before { |
| | | content: "\e64d"; |
| | | } |
| | | |
| | | .cuIcon-cuIcon:before { |
| | | content: "\e602"; |
| | | } |
| | | |
| | | .cuIcon-loading2:before { |
| | | content: "\e7f1"; |
| | | } |
| | | |
| | | .cuIcon-btn:before { |
| | | content: "\e601"; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* |
| | | ColorUi for uniApp v2.1.6 | by æææ¸¯ 2019-05-31 10:44:24 |
| | | ä»
ä¾å¦ä¹ 交æµï¼å¦ä½å®ç¨ææ¿åçæ³å¾è´£ä»»ä¸æ¦ä¸ä½è
æ å
³ |
| | | |
| | | *使ç¨ColorUiå¼åæ©å±ä¸æä»¶æ¶ï¼è¯·æ³¨æåºäºColorUiå¼å |
| | | |
| | | ï¼QQ交æµç¾¤ï¼240787041ï¼ |
| | | */ |
| | | |
| | | /* ================== |
| | | åå§å |
| | | ==================== */ |
| | | body { |
| | | background-color: #f1f1f1; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | font-family: Helvetica Neue, Helvetica, sans-serif; |
| | | } |
| | | |
| | | view, |
| | | scroll-view, |
| | | swiper, |
| | | button, |
| | | input, |
| | | textarea, |
| | | label, |
| | | navigator, |
| | | image { |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .round { |
| | | border-radius: 5000upx; |
| | | } |
| | | |
| | | .radius { |
| | | border-radius: 6upx; |
| | | } |
| | | |
| | | /* ================== |
| | | å¾ç |
| | | ==================== */ |
| | | |
| | | image { |
| | | max-width: 100%; |
| | | display: inline-block; |
| | | position: relative; |
| | | z-index: 0; |
| | | } |
| | | |
| | | image.loading::before { |
| | | content: ""; |
| | | background-color: #f5f5f5; |
| | | display: block; |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | z-index: -2; |
| | | } |
| | | |
| | | image.loading::after { |
| | | content: "\e7f1"; |
| | | font-family: "cuIcon"; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 32upx; |
| | | height: 32upx; |
| | | line-height: 32upx; |
| | | right: 0; |
| | | bottom: 0; |
| | | z-index: -1; |
| | | font-size: 32upx; |
| | | margin: auto; |
| | | color: #ccc; |
| | | -webkit-animation: cuIcon-spin 2s infinite linear; |
| | | animation: cuIcon-spin 2s infinite linear; |
| | | display: block; |
| | | } |
| | | |
| | | .response { |
| | | width: 100%; |
| | | } |
| | | |
| | | /* ================== |
| | | å¼å
³ |
| | | ==================== */ |
| | | |
| | | switch, |
| | | checkbox, |
| | | radio { |
| | | position: relative; |
| | | } |
| | | |
| | | switch::after, |
| | | switch::before { |
| | | font-family: "cuIcon"; |
| | | content: "\e645"; |
| | | position: absolute; |
| | | color: #ffffff !important; |
| | | top: 0%; |
| | | left: 0upx; |
| | | font-size: 26upx; |
| | | line-height: 26px; |
| | | width: 50%; |
| | | text-align: center; |
| | | pointer-events: none; |
| | | transform: scale(0, 0); |
| | | transition: all 0.3s ease-in-out 0s; |
| | | z-index: 9; |
| | | bottom: 0; |
| | | height: 26px; |
| | | margin: auto; |
| | | } |
| | | |
| | | switch::before { |
| | | content: "\e646"; |
| | | right: 0; |
| | | transform: scale(1, 1); |
| | | left: auto; |
| | | } |
| | | |
| | | switch[checked]::after, |
| | | switch.checked::after { |
| | | transform: scale(1, 1); |
| | | } |
| | | |
| | | switch[checked]::before, |
| | | switch.checked::before { |
| | | transform: scale(0, 0); |
| | | } |
| | | |
| | | /* #ifndef MP-ALIPAY */ |
| | | radio::before, |
| | | checkbox::before { |
| | | font-family: "cuIcon"; |
| | | content: "\e645"; |
| | | position: absolute; |
| | | color: #ffffff !important; |
| | | top: 50%; |
| | | margin-top: -8px; |
| | | right: 5px; |
| | | font-size: 32upx; |
| | | line-height: 16px; |
| | | pointer-events: none; |
| | | transform: scale(1, 1); |
| | | transition: all 0.3s ease-in-out 0s; |
| | | z-index: 9; |
| | | } |
| | | |
| | | radio .wx-radio-input, |
| | | checkbox .wx-checkbox-input, |
| | | radio .uni-radio-input, |
| | | checkbox .uni-checkbox-input { |
| | | margin: 0; |
| | | width: 24px; |
| | | height: 24px; |
| | | } |
| | | |
| | | checkbox.round .wx-checkbox-input, |
| | | checkbox.round .uni-checkbox-input { |
| | | border-radius: 100upx; |
| | | } |
| | | |
| | | /* #endif */ |
| | | |
| | | switch[checked]::before { |
| | | transform: scale(0, 0); |
| | | } |
| | | |
| | | switch .wx-switch-input, |
| | | switch .uni-switch-input { |
| | | border: none; |
| | | padding: 0 24px; |
| | | width: 48px; |
| | | height: 26px; |
| | | margin: 0; |
| | | border-radius: 100upx; |
| | | } |
| | | |
| | | switch .wx-switch-input:not([class*="bg-"]), |
| | | switch .uni-switch-input:not([class*="bg-"]) { |
| | | background: #8799a3 !important; |
| | | } |
| | | |
| | | switch .wx-switch-input::after, |
| | | switch .uni-switch-input::after { |
| | | margin: auto; |
| | | width: 26px; |
| | | height: 26px; |
| | | border-radius: 100upx; |
| | | left: 0upx; |
| | | top: 0upx; |
| | | bottom: 0upx; |
| | | position: absolute; |
| | | transform: scale(0.9, 0.9); |
| | | transition: all 0.1s ease-in-out 0s; |
| | | } |
| | | |
| | | switch .wx-switch-input.wx-switch-input-checked::after, |
| | | switch .uni-switch-input.uni-switch-input-checked::after { |
| | | margin: auto; |
| | | left: 22px; |
| | | box-shadow: none; |
| | | transform: scale(0.9, 0.9); |
| | | } |
| | | |
| | | radio-group { |
| | | display: inline-block; |
| | | } |
| | | |
| | | |
| | | |
| | | switch.radius .wx-switch-input::after, |
| | | switch.radius .wx-switch-input, |
| | | switch.radius .wx-switch-input::before, |
| | | switch.radius .uni-switch-input::after, |
| | | switch.radius .uni-switch-input, |
| | | switch.radius .uni-switch-input::before { |
| | | border-radius: 10upx; |
| | | } |
| | | |
| | | /* switch .wx-switch-input::before, |
| | | radio.radio::before, |
| | | checkbox .wx-checkbox-input::before, |
| | | radio .wx-radio-input::before, |
| | | switch .uni-switch-input::before, |
| | | radio.radio::before, |
| | | checkbox .uni-checkbox-input::before, |
| | | radio .uni-radio-input::before { |
| | | display: none; |
| | | } */ |
| | | |
| | | radio.radio[checked]::after, |
| | | radio.radio .uni-radio-input-checked::after { |
| | | content: ""; |
| | | background-color: transparent; |
| | | display: block; |
| | | position: absolute; |
| | | width: 8px; |
| | | height: 8px; |
| | | z-index: 999; |
| | | top: 0upx; |
| | | left: 0upx; |
| | | right: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | border-radius: 200upx; |
| | | /* #ifndef MP */ |
| | | border: 7px solid #ffffff !important; |
| | | /* #endif */ |
| | | |
| | | /* #ifdef MP */ |
| | | border: 8px solid #ffffff !important; |
| | | /* #endif */ |
| | | } |
| | | |
| | | .switch-sex::after { |
| | | content: "\e71c"; |
| | | } |
| | | |
| | | .switch-sex::before { |
| | | content: "\e71a"; |
| | | } |
| | | |
| | | .switch-sex .wx-switch-input, |
| | | .switch-sex .uni-switch-input { |
| | | background: #e54d42 !important; |
| | | border-color: #e54d42 !important; |
| | | } |
| | | |
| | | .switch-sex[checked] .wx-switch-input, |
| | | .switch-sex.checked .uni-switch-input { |
| | | background: #0081ff !important; |
| | | border-color: #0081ff !important; |
| | | } |
| | | |
| | | switch.red[checked] .wx-switch-input.wx-switch-input-checked, |
| | | checkbox.red[checked] .wx-checkbox-input, |
| | | radio.red[checked] .wx-radio-input, |
| | | switch.red.checked .uni-switch-input.uni-switch-input-checked, |
| | | checkbox.red.checked .uni-checkbox-input, |
| | | radio.red.checked .uni-radio-input { |
| | | background-color: #e54d42 !important; |
| | | border-color: #e54d42 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.orange[checked] .wx-switch-input, |
| | | checkbox.orange[checked] .wx-checkbox-input, |
| | | radio.orange[checked] .wx-radio-input, |
| | | switch.orange.checked .uni-switch-input, |
| | | checkbox.orange.checked .uni-checkbox-input, |
| | | radio.orange.checked .uni-radio-input { |
| | | background-color: #f37b1d !important; |
| | | border-color: #f37b1d !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.yellow[checked] .wx-switch-input, |
| | | checkbox.yellow[checked] .wx-checkbox-input, |
| | | radio.yellow[checked] .wx-radio-input, |
| | | switch.yellow.checked .uni-switch-input, |
| | | checkbox.yellow.checked .uni-checkbox-input, |
| | | radio.yellow.checked .uni-radio-input { |
| | | background-color: #fbbd08 !important; |
| | | border-color: #fbbd08 !important; |
| | | color: #333333 !important; |
| | | } |
| | | |
| | | switch.olive[checked] .wx-switch-input, |
| | | checkbox.olive[checked] .wx-checkbox-input, |
| | | radio.olive[checked] .wx-radio-input, |
| | | switch.olive.checked .uni-switch-input, |
| | | checkbox.olive.checked .uni-checkbox-input, |
| | | radio.olive.checked .uni-radio-input { |
| | | background-color: #8dc63f !important; |
| | | border-color: #8dc63f !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.green[checked] .wx-switch-input, |
| | | switch[checked] .wx-switch-input, |
| | | checkbox.green[checked] .wx-checkbox-input, |
| | | checkbox[checked] .wx-checkbox-input, |
| | | radio.green[checked] .wx-radio-input, |
| | | radio[checked] .wx-radio-input, |
| | | switch.green.checked .uni-switch-input, |
| | | switch.checked .uni-switch-input, |
| | | checkbox.green.checked .uni-checkbox-input, |
| | | checkbox.checked .uni-checkbox-input, |
| | | radio.green.checked .uni-radio-input, |
| | | radio.checked .uni-radio-input { |
| | | background-color: #39b54a !important; |
| | | border-color: #39b54a !important; |
| | | color: #ffffff !important; |
| | | border-color: #39B54A !important; |
| | | } |
| | | |
| | | switch.cyan[checked] .wx-switch-input, |
| | | checkbox.cyan[checked] .wx-checkbox-input, |
| | | radio.cyan[checked] .wx-radio-input, |
| | | switch.cyan.checked .uni-switch-input, |
| | | checkbox.cyan.checked .uni-checkbox-input, |
| | | radio.cyan.checked .uni-radio-input { |
| | | background-color: #1cbbb4 !important; |
| | | border-color: #1cbbb4 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.blue[checked] .wx-switch-input, |
| | | checkbox.blue[checked] .wx-checkbox-input, |
| | | radio.blue[checked] .wx-radio-input, |
| | | switch.blue.checked .uni-switch-input, |
| | | checkbox.blue.checked .uni-checkbox-input, |
| | | radio.blue.checked .uni-radio-input { |
| | | background-color: #0081ff !important; |
| | | border-color: #0081ff !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.purple[checked] .wx-switch-input, |
| | | checkbox.purple[checked] .wx-checkbox-input, |
| | | radio.purple[checked] .wx-radio-input, |
| | | switch.purple.checked .uni-switch-input, |
| | | checkbox.purple.checked .uni-checkbox-input, |
| | | radio.purple.checked .uni-radio-input { |
| | | background-color: #6739b6 !important; |
| | | border-color: #6739b6 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.mauve[checked] .wx-switch-input, |
| | | checkbox.mauve[checked] .wx-checkbox-input, |
| | | radio.mauve[checked] .wx-radio-input, |
| | | switch.mauve.checked .uni-switch-input, |
| | | checkbox.mauve.checked .uni-checkbox-input, |
| | | radio.mauve.checked .uni-radio-input { |
| | | background-color: #9c26b0 !important; |
| | | border-color: #9c26b0 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.pink[checked] .wx-switch-input, |
| | | checkbox.pink[checked] .wx-checkbox-input, |
| | | radio.pink[checked] .wx-radio-input, |
| | | switch.pink.checked .uni-switch-input, |
| | | checkbox.pink.checked .uni-checkbox-input, |
| | | radio.pink.checked .uni-radio-input { |
| | | background-color: #e03997 !important; |
| | | border-color: #e03997 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.brown[checked] .wx-switch-input, |
| | | checkbox.brown[checked] .wx-checkbox-input, |
| | | radio.brown[checked] .wx-radio-input, |
| | | switch.brown.checked .uni-switch-input, |
| | | checkbox.brown.checked .uni-checkbox-input, |
| | | radio.brown.checked .uni-radio-input { |
| | | background-color: #a5673f !important; |
| | | border-color: #a5673f !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.grey[checked] .wx-switch-input, |
| | | checkbox.grey[checked] .wx-checkbox-input, |
| | | radio.grey[checked] .wx-radio-input, |
| | | switch.grey.checked .uni-switch-input, |
| | | checkbox.grey.checked .uni-checkbox-input, |
| | | radio.grey.checked .uni-radio-input { |
| | | background-color: #8799a3 !important; |
| | | border-color: #8799a3 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.gray[checked] .wx-switch-input, |
| | | checkbox.gray[checked] .wx-checkbox-input, |
| | | radio.gray[checked] .wx-radio-input, |
| | | switch.gray.checked .uni-switch-input, |
| | | checkbox.gray.checked .uni-checkbox-input, |
| | | radio.gray.checked .uni-radio-input { |
| | | background-color: #f0f0f0 !important; |
| | | border-color: #f0f0f0 !important; |
| | | color: #333333 !important; |
| | | } |
| | | |
| | | switch.black[checked] .wx-switch-input, |
| | | checkbox.black[checked] .wx-checkbox-input, |
| | | radio.black[checked] .wx-radio-input, |
| | | switch.black.checked .uni-switch-input, |
| | | checkbox.black.checked .uni-checkbox-input, |
| | | radio.black.checked .uni-radio-input { |
| | | background-color: #333333 !important; |
| | | border-color: #333333 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | |
| | | switch.white[checked] .wx-switch-input, |
| | | checkbox.white[checked] .wx-checkbox-input, |
| | | radio.white[checked] .wx-radio-input, |
| | | switch.white.checked .uni-switch-input, |
| | | checkbox.white.checked .uni-checkbox-input, |
| | | radio.white.checked .uni-radio-input { |
| | | background-color: #ffffff !important; |
| | | border-color: #ffffff !important; |
| | | color: #333333 !important; |
| | | } |
| | | |
| | | /* ================== |
| | | è¾¹æ¡ |
| | | ==================== */ |
| | | |
| | | /* -- å®çº¿ -- */ |
| | | |
| | | .solid, |
| | | .solid-top, |
| | | .solid-right, |
| | | .solid-bottom, |
| | | .solid-left, |
| | | .solids, |
| | | .solids-top, |
| | | .solids-right, |
| | | .solids-bottom, |
| | | .solids-left, |
| | | .dashed, |
| | | .dashed-top, |
| | | .dashed-right, |
| | | .dashed-bottom, |
| | | .dashed-left { |
| | | position: relative; |
| | | } |
| | | |
| | | .solid::after, |
| | | .solid-top::after, |
| | | .solid-right::after, |
| | | .solid-bottom::after, |
| | | .solid-left::after, |
| | | .solids::after, |
| | | .solids-top::after, |
| | | .solids-right::after, |
| | | .solids-bottom::after, |
| | | .solids-left::after, |
| | | .dashed::after, |
| | | .dashed-top::after, |
| | | .dashed-right::after, |
| | | .dashed-bottom::after, |
| | | .dashed-left::after { |
| | | content: " "; |
| | | width: 200%; |
| | | height: 200%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | border-radius: inherit; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | pointer-events: none; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .solid::after { |
| | | border: 1upx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .solid-top::after { |
| | | border-top: 1upx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .solid-right::after { |
| | | border-right: 1upx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .solid-bottom::after { |
| | | border-bottom: 1upx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .solid-left::after { |
| | | border-left: 1upx solid rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .solids::after { |
| | | border: 8upx solid #eee; |
| | | } |
| | | |
| | | .solids-top::after { |
| | | border-top: 8upx solid #eee; |
| | | } |
| | | |
| | | .solids-right::after { |
| | | border-right: 8upx solid #eee; |
| | | } |
| | | |
| | | .solids-bottom::after { |
| | | border-bottom: 8upx solid #eee; |
| | | } |
| | | |
| | | .solids-left::after { |
| | | border-left: 8upx solid #eee; |
| | | } |
| | | |
| | | /* -- è线 -- */ |
| | | |
| | | .dashed::after { |
| | | border: 1upx dashed #ddd; |
| | | } |
| | | |
| | | .dashed-top::after { |
| | | border-top: 1upx dashed #ddd; |
| | | } |
| | | |
| | | .dashed-right::after { |
| | | border-right: 1upx dashed #ddd; |
| | | } |
| | | |
| | | .dashed-bottom::after { |
| | | border-bottom: 1upx dashed #ddd; |
| | | } |
| | | |
| | | .dashed-left::after { |
| | | border-left: 1upx dashed #ddd; |
| | | } |
| | | |
| | | /* -- é´å½± -- */ |
| | | |
| | | .shadow[class*='white'] { |
| | | --ShadowSize: 0 1upx 6upx; |
| | | } |
| | | |
| | | .shadow-lg { |
| | | --ShadowSize: 0upx 40upx 100upx 0upx; |
| | | } |
| | | |
| | | .shadow-warp { |
| | | position: relative; |
| | | box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .shadow-warp:before, |
| | | .shadow-warp:after { |
| | | position: absolute; |
| | | content: ""; |
| | | top: 20upx; |
| | | bottom: 30upx; |
| | | left: 20upx; |
| | | width: 50%; |
| | | box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2); |
| | | transform: rotate(-3deg); |
| | | z-index: -1; |
| | | } |
| | | |
| | | .shadow-warp:after { |
| | | right: 20upx; |
| | | left: auto; |
| | | transform: rotate(3deg); |
| | | } |
| | | |
| | | .shadow-blur { |
| | | position: relative; |
| | | } |
| | | |
| | | .shadow-blur::before { |
| | | content: ""; |
| | | display: block; |
| | | background: inherit; |
| | | filter: blur(10upx); |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 100%; |
| | | top: 10upx; |
| | | left: 10upx; |
| | | z-index: -1; |
| | | opacity: 0.4; |
| | | transform-origin: 0 0; |
| | | border-radius: inherit; |
| | | transform: scale(1, 1); |
| | | } |
| | | |
| | | /* ================== |
| | | æé® |
| | | ==================== */ |
| | | |
| | | .cu-btn { |
| | | position: relative; |
| | | border: 0upx; |
| | | display: inline-flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | box-sizing: border-box; |
| | | padding: 0 30upx; |
| | | font-size: 28upx; |
| | | height: 64upx; |
| | | line-height: 1; |
| | | text-align: center; |
| | | text-decoration: none; |
| | | overflow: visible; |
| | | margin-left: initial; |
| | | transform: translate(0upx, 0upx); |
| | | margin-right: initial; |
| | | } |
| | | |
| | | .cu-btn::after { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-btn:not([class*="bg-"]) { |
| | | background-color: #f0f0f0; |
| | | } |
| | | |
| | | .cu-btn[class*="line"] { |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .cu-btn[class*="line"]::after { |
| | | content: " "; |
| | | display: block; |
| | | width: 200%; |
| | | height: 200%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | border: 1upx solid currentColor; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | box-sizing: border-box; |
| | | border-radius: 12upx; |
| | | z-index: 1; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | .cu-btn.round[class*="line"]::after { |
| | | border-radius: 1000upx; |
| | | } |
| | | |
| | | .cu-btn[class*="lines"]::after { |
| | | border: 6upx solid currentColor; |
| | | } |
| | | |
| | | .cu-btn[class*="bg-"]::after { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-btn.sm { |
| | | padding: 0 20upx; |
| | | font-size: 20upx; |
| | | height: 48upx; |
| | | } |
| | | |
| | | .cu-btn.lg { |
| | | padding: 0 40upx; |
| | | font-size: 32upx; |
| | | height: 80upx; |
| | | } |
| | | |
| | | .cu-btn.cuIcon.sm { |
| | | width: 48upx; |
| | | height: 48upx; |
| | | } |
| | | |
| | | .cu-btn.cuIcon { |
| | | width: 64upx; |
| | | height: 64upx; |
| | | border-radius: 500upx; |
| | | padding: 0; |
| | | } |
| | | |
| | | button.cuIcon.lg { |
| | | width: 80upx; |
| | | height: 80upx; |
| | | } |
| | | |
| | | .cu-btn.shadow-blur::before { |
| | | top: 4upx; |
| | | left: 4upx; |
| | | filter: blur(6upx); |
| | | opacity: 0.6; |
| | | } |
| | | |
| | | .cu-btn.button-hover { |
| | | transform: translate(1upx, 1upx); |
| | | } |
| | | |
| | | .block { |
| | | display: block; |
| | | } |
| | | |
| | | .cu-btn.block { |
| | | display: flex; |
| | | } |
| | | |
| | | .cu-btn[disabled] { |
| | | opacity: 0.6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | /* ================== |
| | | å¾½ç« |
| | | ==================== */ |
| | | |
| | | .cu-tag { |
| | | font-size: 24upx; |
| | | vertical-align: middle; |
| | | position: relative; |
| | | display: inline-flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | box-sizing: border-box; |
| | | padding: 0upx 16upx; |
| | | height: 48upx; |
| | | font-family: Helvetica Neue, Helvetica, sans-serif; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | .cu-tag:not([class*="bg"]):not([class*="line"]) { |
| | | background-color: #f1f1f1; |
| | | } |
| | | |
| | | .cu-tag[class*="line-"]::after { |
| | | content: " "; |
| | | width: 200%; |
| | | height: 200%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | border: 1upx solid currentColor; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | box-sizing: border-box; |
| | | border-radius: inherit; |
| | | z-index: 1; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | .cu-tag.radius[class*="line"]::after { |
| | | border-radius: 12upx; |
| | | } |
| | | |
| | | .cu-tag.round[class*="line"]::after { |
| | | border-radius: 1000upx; |
| | | } |
| | | |
| | | .cu-tag[class*="line-"]::after { |
| | | border-radius: 0; |
| | | } |
| | | |
| | | .cu-tag+.cu-tag { |
| | | margin-left: 10upx; |
| | | } |
| | | |
| | | .cu-tag.sm { |
| | | font-size: 20upx; |
| | | padding: 0upx 12upx; |
| | | height: 32upx; |
| | | } |
| | | |
| | | .cu-capsule { |
| | | display: inline-flex; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .cu-capsule+.cu-capsule { |
| | | margin-left: 10upx; |
| | | } |
| | | |
| | | .cu-capsule .cu-tag { |
| | | margin: 0; |
| | | } |
| | | |
| | | .cu-capsule .cu-tag[class*="line-"]:last-child::after { |
| | | border-left: 0upx solid transparent; |
| | | } |
| | | |
| | | .cu-capsule .cu-tag[class*="line-"]:first-child::after { |
| | | border-right: 0upx solid transparent; |
| | | } |
| | | |
| | | .cu-capsule.radius .cu-tag:first-child { |
| | | border-top-left-radius: 6upx; |
| | | border-bottom-left-radius: 6upx; |
| | | } |
| | | |
| | | .cu-capsule.radius .cu-tag:last-child::after, |
| | | .cu-capsule.radius .cu-tag[class*="line-"] { |
| | | border-top-right-radius: 12upx; |
| | | border-bottom-right-radius: 12upx; |
| | | } |
| | | |
| | | .cu-capsule.round .cu-tag:first-child { |
| | | border-top-left-radius: 200upx; |
| | | border-bottom-left-radius: 200upx; |
| | | text-indent: 4upx; |
| | | } |
| | | |
| | | .cu-capsule.round .cu-tag:last-child::after, |
| | | .cu-capsule.round .cu-tag:last-child { |
| | | border-top-right-radius: 200upx; |
| | | border-bottom-right-radius: 200upx; |
| | | text-indent: -4upx; |
| | | } |
| | | |
| | | .cu-tag.badge { |
| | | border-radius: 200upx; |
| | | position: absolute; |
| | | top: -10upx; |
| | | right: -10upx; |
| | | font-size: 20upx; |
| | | padding: 0upx 10upx; |
| | | height: 28upx; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .cu-tag.badge:not([class*="bg-"]) { |
| | | background-color: #dd514c; |
| | | } |
| | | |
| | | .cu-tag:empty:not([class*="cuIcon-"]) { |
| | | padding: 0upx; |
| | | width: 16upx; |
| | | height: 16upx; |
| | | top: -4upx; |
| | | right: -4upx; |
| | | } |
| | | |
| | | .cu-tag[class*="cuIcon-"] { |
| | | width: 32upx; |
| | | height: 32upx; |
| | | top: -4upx; |
| | | right: -4upx; |
| | | } |
| | | |
| | | /* ================== |
| | | 头å |
| | | ==================== */ |
| | | |
| | | .cu-avatar { |
| | | font-variant: small-caps; |
| | | margin: 0; |
| | | padding: 0; |
| | | display: inline-flex; |
| | | text-align: center; |
| | | justify-content: center; |
| | | align-items: center; |
| | | background-color: #ccc; |
| | | color: #ffffff; |
| | | white-space: nowrap; |
| | | position: relative; |
| | | width: 64upx; |
| | | height: 64upx; |
| | | background-size: cover; |
| | | background-position: center; |
| | | vertical-align: middle; |
| | | font-size: 1.5em; |
| | | } |
| | | |
| | | .cu-avatar.sm { |
| | | width: 48upx; |
| | | height: 48upx; |
| | | font-size: 1em; |
| | | } |
| | | |
| | | .cu-avatar.lg { |
| | | width: 96upx; |
| | | height: 96upx; |
| | | font-size: 2em; |
| | | } |
| | | |
| | | .cu-avatar.xl { |
| | | width: 128upx; |
| | | height: 128upx; |
| | | font-size: 2.5em; |
| | | } |
| | | |
| | | .cu-avatar .avatar-text { |
| | | font-size: 0.4em; |
| | | } |
| | | |
| | | .cu-avatar-group { |
| | | direction: rtl; |
| | | unicode-bidi: bidi-override; |
| | | padding: 0 10upx 0 40upx; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .cu-avatar-group .cu-avatar { |
| | | margin-left: -30upx; |
| | | border: 4upx solid #f1f1f1; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .cu-avatar-group .cu-avatar.sm { |
| | | margin-left: -20upx; |
| | | border: 1upx solid #f1f1f1; |
| | | } |
| | | |
| | | /* ================== |
| | | è¿åº¦æ¡ |
| | | ==================== */ |
| | | |
| | | .cu-progress { |
| | | overflow: hidden; |
| | | height: 28upx; |
| | | background-color: #ebeef5; |
| | | display: inline-flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | } |
| | | |
| | | .cu-progress+view, |
| | | .cu-progress+text { |
| | | line-height: 1; |
| | | } |
| | | |
| | | .cu-progress.xs { |
| | | height: 10upx; |
| | | } |
| | | |
| | | .cu-progress.sm { |
| | | height: 20upx; |
| | | } |
| | | |
| | | .cu-progress view { |
| | | width: 0; |
| | | height: 100%; |
| | | align-items: center; |
| | | display: flex; |
| | | justify-items: flex-end; |
| | | justify-content: space-around; |
| | | font-size: 20upx; |
| | | color: #ffffff; |
| | | transition: width 0.6s ease; |
| | | } |
| | | |
| | | .cu-progress text { |
| | | align-items: center; |
| | | display: flex; |
| | | font-size: 20upx; |
| | | color: #333333; |
| | | text-indent: 10upx; |
| | | } |
| | | |
| | | .cu-progress.text-progress { |
| | | padding-right: 60upx; |
| | | } |
| | | |
| | | .cu-progress.striped view { |
| | | background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); |
| | | background-size: 72upx 72upx; |
| | | } |
| | | |
| | | .cu-progress.active view { |
| | | animation: progress-stripes 2s linear infinite; |
| | | } |
| | | |
| | | @keyframes progress-stripes { |
| | | from { |
| | | background-position: 72upx 0; |
| | | } |
| | | |
| | | to { |
| | | background-position: 0 0; |
| | | } |
| | | } |
| | | |
| | | /* ================== |
| | | å è½½ |
| | | ==================== */ |
| | | |
| | | .cu-load { |
| | | display: block; |
| | | line-height: 3em; |
| | | text-align: center; |
| | | } |
| | | |
| | | .cu-load::before { |
| | | font-family: "cuIcon"; |
| | | display: inline-block; |
| | | margin-right: 6upx; |
| | | } |
| | | |
| | | .cu-load.loading::before { |
| | | content: "\e67a"; |
| | | animation: cuIcon-spin 2s infinite linear; |
| | | } |
| | | |
| | | .cu-load.loading::after { |
| | | content: "å è½½ä¸..."; |
| | | } |
| | | |
| | | .cu-load.over::before { |
| | | content: "\e64a"; |
| | | } |
| | | |
| | | .cu-load.over::after { |
| | | content: "æ²¡ææ´å¤äº"; |
| | | } |
| | | |
| | | .cu-load.erro::before { |
| | | content: "\e658"; |
| | | } |
| | | |
| | | .cu-load.erro::after { |
| | | content: "å 载失败"; |
| | | } |
| | | |
| | | .cu-load.load-cuIcon::before { |
| | | font-size: 32upx; |
| | | } |
| | | |
| | | .cu-load.load-cuIcon::after { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-load.load-cuIcon.over { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-load.load-modal { |
| | | position: fixed; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 140upx; |
| | | left: 0; |
| | | margin: auto; |
| | | width: 260upx; |
| | | height: 260upx; |
| | | background-color: #ffffff; |
| | | border-radius: 10upx; |
| | | box-shadow: 0 0 0upx 2000upx rgba(0, 0, 0, 0.5); |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | font-size: 28upx; |
| | | z-index: 9999; |
| | | line-height: 2.4em; |
| | | } |
| | | |
| | | .cu-load.load-modal [class*="cuIcon-"] { |
| | | font-size: 60upx; |
| | | } |
| | | |
| | | .cu-load.load-modal image { |
| | | width: 70upx; |
| | | height: 70upx; |
| | | } |
| | | |
| | | .cu-load.load-modal::after { |
| | | content: ""; |
| | | position: absolute; |
| | | background-color: #ffffff; |
| | | border-radius: 50%; |
| | | width: 200upx; |
| | | height: 200upx; |
| | | font-size: 10px; |
| | | border-top: 6upx solid rgba(0, 0, 0, 0.05); |
| | | border-right: 6upx solid rgba(0, 0, 0, 0.05); |
| | | border-bottom: 6upx solid rgba(0, 0, 0, 0.05); |
| | | border-left: 6upx solid #f37b1d; |
| | | animation: cuIcon-spin 1s infinite linear; |
| | | z-index: -1; |
| | | } |
| | | |
| | | .load-progress { |
| | | pointer-events: none; |
| | | top: 0; |
| | | position: fixed; |
| | | width: 100%; |
| | | left: 0; |
| | | z-index: 2000; |
| | | } |
| | | |
| | | .load-progress.hide { |
| | | display: none; |
| | | } |
| | | |
| | | .load-progress .load-progress-bar { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 4upx; |
| | | overflow: hidden; |
| | | transition: all 200ms ease 0s; |
| | | } |
| | | |
| | | .load-progress .load-progress-spinner { |
| | | position: absolute; |
| | | top: 10upx; |
| | | right: 10upx; |
| | | z-index: 2000; |
| | | display: block; |
| | | } |
| | | |
| | | .load-progress .load-progress-spinner::after { |
| | | content: ""; |
| | | display: block; |
| | | width: 24upx; |
| | | height: 24upx; |
| | | -webkit-box-sizing: border-box; |
| | | box-sizing: border-box; |
| | | border: solid 4upx transparent; |
| | | border-top-color: inherit; |
| | | border-left-color: inherit; |
| | | border-radius: 50%; |
| | | -webkit-animation: load-progress-spinner 0.4s linear infinite; |
| | | animation: load-progress-spinner 0.4s linear infinite; |
| | | } |
| | | |
| | | @-webkit-keyframes load-progress-spinner { |
| | | 0% { |
| | | -webkit-transform: rotate(0); |
| | | transform: rotate(0); |
| | | } |
| | | |
| | | 100% { |
| | | -webkit-transform: rotate(360deg); |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | @keyframes load-progress-spinner { |
| | | 0% { |
| | | -webkit-transform: rotate(0); |
| | | transform: rotate(0); |
| | | } |
| | | |
| | | 100% { |
| | | -webkit-transform: rotate(360deg); |
| | | transform: rotate(360deg); |
| | | } |
| | | } |
| | | |
| | | /* ================== |
| | | å表 |
| | | ==================== */ |
| | | .grayscale { |
| | | filter: grayscale(1); |
| | | } |
| | | |
| | | .cu-list+.cu-list { |
| | | margin-top: 30upx |
| | | } |
| | | |
| | | .cu-list>.cu-item { |
| | | transition: all .6s ease-in-out 0s; |
| | | transform: translateX(0upx) |
| | | } |
| | | |
| | | .cu-list>.cu-item.move-cur { |
| | | transform: translateX(-260upx) |
| | | } |
| | | |
| | | .cu-list>.cu-item .move { |
| | | position: absolute; |
| | | right: 0; |
| | | display: flex; |
| | | width: 260upx; |
| | | height: 100%; |
| | | transform: translateX(100%) |
| | | } |
| | | |
| | | .cu-list>.cu-item .move view { |
| | | display: flex; |
| | | flex: 1; |
| | | justify-content: center; |
| | | align-items: center |
| | | } |
| | | |
| | | .cu-list.menu-avatar { |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item { |
| | | position: relative; |
| | | display: flex; |
| | | padding-right: 10upx; |
| | | height: 140upx; |
| | | background-color: #ffffff; |
| | | justify-content: flex-end; |
| | | align-items: center |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item>.cu-avatar { |
| | | position: absolute; |
| | | left: 30upx |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .flex .text-cut { |
| | | max-width: 510upx |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .content { |
| | | position: absolute; |
| | | left: 146upx; |
| | | width: calc(100% - 96upx - 60upx - 120upx - 20upx); |
| | | line-height: 1.6em; |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .content.flex-sub { |
| | | width: calc(100% - 96upx - 60upx - 20upx); |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .content>view:first-child { |
| | | font-size: 30upx; |
| | | display: flex; |
| | | align-items: center |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .content .cu-tag.sm { |
| | | display: inline-block; |
| | | margin-left: 10upx; |
| | | height: 28upx; |
| | | font-size: 16upx; |
| | | line-height: 32upx |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .action { |
| | | width: 100upx; |
| | | text-align: center |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item .action view+view { |
| | | margin-top: 10upx |
| | | } |
| | | |
| | | .cu-list.menu-avatar.comment>.cu-item .content { |
| | | position: relative; |
| | | left: 0; |
| | | width: auto; |
| | | flex: 1; |
| | | } |
| | | |
| | | .cu-list.menu-avatar.comment>.cu-item { |
| | | padding: 30upx 30upx 30upx 120upx; |
| | | height: auto |
| | | } |
| | | |
| | | .cu-list.menu-avatar.comment .cu-avatar { |
| | | align-self: flex-start |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item { |
| | | position: relative; |
| | | display: flex; |
| | | padding: 0 30upx; |
| | | min-height: 100upx; |
| | | background-color: #ffffff; |
| | | justify-content: space-between; |
| | | align-items: center |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item:last-child:after { |
| | | border: none |
| | | } |
| | | |
| | | .cu-list.menu-avatar>.cu-item:after, |
| | | .cu-list.menu>.cu-item:after { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | box-sizing: border-box; |
| | | width: 200%; |
| | | height: 200%; |
| | | border-bottom: 1upx solid #ddd; |
| | | border-radius: inherit; |
| | | content: " "; |
| | | transform: scale(.5); |
| | | transform-origin: 0 0; |
| | | pointer-events: none |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item.grayscale { |
| | | background-color: #f5f5f5 |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item.cur { |
| | | background-color: #fcf7e9 |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item.arrow { |
| | | padding-right: 90upx |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item.arrow:before { |
| | | position: absolute; |
| | | top: 0; |
| | | right: 30upx; |
| | | bottom: 0; |
| | | display: block; |
| | | margin: auto; |
| | | width: 30upx; |
| | | height: 30upx; |
| | | color: #8799a3; |
| | | content: "\e6a3"; |
| | | text-align: center; |
| | | font-size: 34upx; |
| | | font-family: cuIcon; |
| | | line-height: 30upx |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item button.content { |
| | | padding: 0; |
| | | background-color: transparent; |
| | | justify-content: flex-start |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item button.content:after { |
| | | display: none |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .cu-avatar-group .cu-avatar { |
| | | border-color: #ffffff |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .content>view:first-child { |
| | | display: flex; |
| | | align-items: center |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .content>text[class*=cuIcon] { |
| | | display: inline-block; |
| | | margin-right: 10upx; |
| | | width: 1.6em; |
| | | text-align: center |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .content>image { |
| | | display: inline-block; |
| | | margin-right: 10upx; |
| | | width: 1.6em; |
| | | height: 1.6em; |
| | | vertical-align: middle |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .content { |
| | | font-size: 30upx; |
| | | line-height: 1.6em; |
| | | flex: 1 |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .content .cu-tag.sm { |
| | | display: inline-block; |
| | | margin-left: 10upx; |
| | | height: 28upx; |
| | | font-size: 16upx; |
| | | line-height: 32upx |
| | | } |
| | | |
| | | .cu-list.menu>.cu-item .action .cu-tag:empty { |
| | | right: 10upx |
| | | } |
| | | |
| | | .cu-list.menu { |
| | | display: block; |
| | | overflow: hidden |
| | | } |
| | | |
| | | .cu-list.menu.sm-border>.cu-item:after { |
| | | left: 30upx; |
| | | width: calc(200% - 120upx) |
| | | } |
| | | |
| | | .cu-list.grid>.cu-item { |
| | | position: relative; |
| | | display: flex; |
| | | padding: 20upx 0 30upx; |
| | | transition-duration: 0s; |
| | | flex-direction: column |
| | | } |
| | | |
| | | .cu-list.grid>.cu-item:after { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | box-sizing: border-box; |
| | | width: 200%; |
| | | height: 200%; |
| | | border-right: 1px solid rgba(0, 0, 0, .1); |
| | | border-bottom: 1px solid rgba(0, 0, 0, .1); |
| | | border-radius: inherit; |
| | | content: " "; |
| | | transform: scale(.5); |
| | | transform-origin: 0 0; |
| | | pointer-events: none |
| | | } |
| | | |
| | | .cu-list.grid>.cu-item text { |
| | | display: block; |
| | | margin-top: 10upx; |
| | | color: #888; |
| | | font-size: 26upx; |
| | | line-height: 40upx |
| | | } |
| | | |
| | | .cu-list.grid>.cu-item [class*=cuIcon] { |
| | | position: relative; |
| | | display: block; |
| | | margin-top: 20upx; |
| | | width: 100%; |
| | | font-size: 48upx |
| | | } |
| | | |
| | | .cu-list.grid>.cu-item .cu-tag { |
| | | right: auto; |
| | | left: 50%; |
| | | margin-left: 20upx |
| | | } |
| | | |
| | | .cu-list.grid { |
| | | background-color: #ffffff; |
| | | text-align: center |
| | | } |
| | | |
| | | .cu-list.grid.no-border>.cu-item { |
| | | padding-top: 10upx; |
| | | padding-bottom: 20upx |
| | | } |
| | | |
| | | .cu-list.grid.no-border>.cu-item:after { |
| | | border: none |
| | | } |
| | | |
| | | .cu-list.grid.no-border { |
| | | padding: 20upx 10upx |
| | | } |
| | | |
| | | .cu-list.grid.col-3>.cu-item:nth-child(3n):after, |
| | | .cu-list.grid.col-4>.cu-item:nth-child(4n):after, |
| | | .cu-list.grid.col-5>.cu-item:nth-child(5n):after { |
| | | border-right-width: 0 |
| | | } |
| | | |
| | | .cu-list.card-menu { |
| | | overflow: hidden; |
| | | margin-right: 30upx; |
| | | margin-left: 30upx; |
| | | border-radius: 20upx |
| | | } |
| | | |
| | | |
| | | /* ================== |
| | | æä½æ¡ |
| | | ==================== */ |
| | | |
| | | .cu-bar { |
| | | display: flex; |
| | | position: relative; |
| | | align-items: center; |
| | | min-height: 100upx; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cu-bar .action { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 100%; |
| | | justify-content: center; |
| | | max-width: 100%; |
| | | } |
| | | |
| | | .cu-bar .action.border-title { |
| | | position: relative; |
| | | top: -10upx; |
| | | } |
| | | |
| | | .cu-bar .action.border-title text[class*="bg-"]:last-child { |
| | | position: absolute; |
| | | bottom: -0.5rem; |
| | | min-width: 2rem; |
| | | height: 6upx; |
| | | left: 0; |
| | | } |
| | | |
| | | .cu-bar .action.sub-title { |
| | | position: relative; |
| | | top: -0.2rem; |
| | | } |
| | | |
| | | .cu-bar .action.sub-title text { |
| | | position: relative; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .cu-bar .action.sub-title text[class*="bg-"]:last-child { |
| | | position: absolute; |
| | | display: inline-block; |
| | | bottom: -0.2rem; |
| | | border-radius: 6upx; |
| | | width: 100%; |
| | | height: 0.6rem; |
| | | left: 0.6rem; |
| | | opacity: 0.3; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .cu-bar .action.sub-title text[class*="text-"]:last-child { |
| | | position: absolute; |
| | | display: inline-block; |
| | | bottom: -0.7rem; |
| | | left: 0.5rem; |
| | | opacity: 0.2; |
| | | z-index: 0; |
| | | text-align: right; |
| | | font-weight: 900; |
| | | font-size: 36upx; |
| | | } |
| | | |
| | | .cu-bar.justify-center .action.border-title text:last-child, |
| | | .cu-bar.justify-center .action.sub-title text:last-child { |
| | | left: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | text-align: center; |
| | | } |
| | | |
| | | .cu-bar .action:first-child { |
| | | margin-left: 30upx; |
| | | font-size: 30upx; |
| | | } |
| | | |
| | | .cu-bar .action text.text-cut { |
| | | text-align: left; |
| | | width: 100%; |
| | | } |
| | | |
| | | .cu-bar .cu-avatar:first-child { |
| | | margin-left: 20upx; |
| | | } |
| | | |
| | | .cu-bar .action:first-child>text[class*="cuIcon-"] { |
| | | margin-left: -0.3em; |
| | | margin-right: 0.3em; |
| | | } |
| | | |
| | | .cu-bar .action:last-child { |
| | | margin-right: 30upx; |
| | | } |
| | | |
| | | .cu-bar .action>text[class*="cuIcon-"], |
| | | .cu-bar .action>view[class*="cuIcon-"] { |
| | | font-size: 36upx; |
| | | } |
| | | |
| | | .cu-bar .action>text[class*="cuIcon-"]+text[class*="cuIcon-"] { |
| | | margin-left: 0.5em; |
| | | } |
| | | |
| | | .cu-bar .content { |
| | | position: absolute; |
| | | text-align: center; |
| | | width: calc(100% - 340upx); |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | top: 0; |
| | | margin: auto; |
| | | height: 30px; |
| | | font-size: 16px; |
| | | line-height: 30px; |
| | | cursor: none; |
| | | pointer-events: none; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-bar.ios .content { |
| | | bottom: 7px; |
| | | height: 30px; |
| | | font-size: 16px; |
| | | line-height: 30px; |
| | | } |
| | | |
| | | .cu-bar.btn-group { |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | .cu-bar.btn-group button { |
| | | padding: 20upx 32upx; |
| | | } |
| | | |
| | | .cu-bar.btn-group button { |
| | | flex: 1; |
| | | margin: 0 20upx; |
| | | max-width: 50%; |
| | | } |
| | | |
| | | .cu-bar .search-form { |
| | | background-color: #f5f5f5; |
| | | line-height: 64upx; |
| | | height: 64upx; |
| | | font-size: 24upx; |
| | | color: #333333; |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 0 30upx; |
| | | } |
| | | |
| | | .cu-bar .search-form+.action { |
| | | margin-right: 30upx; |
| | | } |
| | | |
| | | .cu-bar .search-form input { |
| | | flex: 1; |
| | | padding-right: 30upx; |
| | | height: 64upx; |
| | | line-height: 64upx; |
| | | font-size: 26upx; |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .cu-bar .search-form [class*="cuIcon-"] { |
| | | margin: 0 0.5em 0 0.8em; |
| | | } |
| | | |
| | | .cu-bar .search-form [class*="cuIcon-"]::before { |
| | | top: 0upx; |
| | | } |
| | | |
| | | .cu-bar.fixed, |
| | | .nav.fixed { |
| | | position: fixed; |
| | | width: 100%; |
| | | top: 0; |
| | | z-index: 1024; |
| | | box-shadow: 0 1upx 6upx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .cu-bar.foot { |
| | | position: fixed; |
| | | width: 100%; |
| | | bottom: 0; |
| | | z-index: 1024; |
| | | box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .cu-bar.tabbar { |
| | | padding: 0; |
| | | height: calc(100upx + env(safe-area-inset-bottom) / 2); |
| | | padding-bottom: calc(env(safe-area-inset-bottom) / 2); |
| | | } |
| | | |
| | | .cu-tabbar-height { |
| | | min-height: 100upx; |
| | | height: calc(100upx + env(safe-area-inset-bottom) / 2); |
| | | } |
| | | |
| | | .cu-bar.tabbar.shadow { |
| | | box-shadow: 0 -1upx 6upx rgba(0, 0, 0, 0.1); |
| | | } |
| | | |
| | | .cu-bar.tabbar .action { |
| | | font-size: 22upx; |
| | | position: relative; |
| | | flex: 1; |
| | | text-align: center; |
| | | padding: 0; |
| | | display: block; |
| | | height: auto; |
| | | line-height: 1; |
| | | margin: 0; |
| | | background-color: inherit; |
| | | overflow: initial; |
| | | } |
| | | |
| | | .cu-bar.tabbar.shop .action { |
| | | width: 140upx; |
| | | flex: initial; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action.add-action { |
| | | position: relative; |
| | | z-index: 2; |
| | | padding-top: 50upx; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action.add-action [class*="cuIcon-"] { |
| | | position: absolute; |
| | | width: 70upx; |
| | | z-index: 2; |
| | | height: 70upx; |
| | | border-radius: 50%; |
| | | line-height: 70upx; |
| | | font-size: 50upx; |
| | | top: -35upx; |
| | | left: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | padding: 0; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action.add-action::after { |
| | | content: ""; |
| | | position: absolute; |
| | | width: 100upx; |
| | | height: 100upx; |
| | | top: -50upx; |
| | | left: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | box-shadow: 0 -3upx 8upx rgba(0, 0, 0, 0.08); |
| | | border-radius: 50upx; |
| | | background-color: inherit; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action.add-action::before { |
| | | content: ""; |
| | | position: absolute; |
| | | width: 100upx; |
| | | height: 30upx; |
| | | bottom: 30upx; |
| | | left: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | background-color: inherit; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .cu-bar.tabbar .btn-group { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: space-around; |
| | | align-items: center; |
| | | padding: 0 10upx; |
| | | } |
| | | |
| | | .cu-bar.tabbar button.action::after { |
| | | border: 0; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action [class*="cuIcon-"] { |
| | | width: 100upx; |
| | | position: relative; |
| | | display: block; |
| | | height: auto; |
| | | margin: 0 auto 10upx; |
| | | text-align: center; |
| | | font-size: 40upx; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action .cuIcon-cu-image { |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .cu-bar.tabbar .action .cuIcon-cu-image image { |
| | | width: 50upx; |
| | | height: 50upx; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .cu-bar.tabbar .submit { |
| | | align-items: center; |
| | | display: flex; |
| | | justify-content: center; |
| | | text-align: center; |
| | | position: relative; |
| | | flex: 2; |
| | | align-self: stretch; |
| | | } |
| | | |
| | | .cu-bar.tabbar .submit:last-child { |
| | | flex: 2.6; |
| | | } |
| | | |
| | | .cu-bar.tabbar .submit+.submit { |
| | | flex: 2; |
| | | } |
| | | |
| | | .cu-bar.tabbar.border .action::before { |
| | | content: " "; |
| | | width: 200%; |
| | | height: 200%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | border-right: 1upx solid rgba(0, 0, 0, 0.1); |
| | | z-index: 3; |
| | | } |
| | | |
| | | .cu-bar.tabbar.border .action:last-child:before { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-bar.input { |
| | | padding-right: 20upx; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .cu-bar.input input { |
| | | overflow: initial; |
| | | line-height: 64upx; |
| | | height: 64upx; |
| | | min-height: 64upx; |
| | | flex: 1; |
| | | font-size: 30upx; |
| | | margin: 0 20upx; |
| | | } |
| | | |
| | | .cu-bar.input .action { |
| | | margin-left: 20upx; |
| | | } |
| | | |
| | | .cu-bar.input .action [class*="cuIcon-"] { |
| | | font-size: 48upx; |
| | | } |
| | | |
| | | .cu-bar.input input+.action { |
| | | margin-right: 20upx; |
| | | margin-left: 0upx; |
| | | } |
| | | |
| | | .cu-bar.input .action:first-child [class*="cuIcon-"] { |
| | | margin-left: 0upx; |
| | | } |
| | | |
| | | .cu-custom { |
| | | display: block; |
| | | position: relative; |
| | | } |
| | | |
| | | .cu-custom .cu-bar .content { |
| | | /* width: calc(100% - 440upx); */ |
| | | } |
| | | |
| | | /* #ifdef MP-ALIPAY */ |
| | | .cu-custom .cu-bar .action .cuIcon-back { |
| | | opacity: 0; |
| | | } |
| | | |
| | | /* #endif */ |
| | | |
| | | .cu-custom .cu-bar .content image { |
| | | height: 60upx; |
| | | width: 240upx; |
| | | } |
| | | |
| | | .cu-custom .cu-bar { |
| | | min-height: 0px; |
| | | /* #ifdef MP-WEIXIN */ |
| | | padding-right: 220upx; |
| | | /* #endif */ |
| | | /* #ifdef MP-ALIPAY */ |
| | | padding-right: 150upx; |
| | | /* #endif */ |
| | | box-shadow: 0upx 0upx 0upx; |
| | | z-index: 9999; |
| | | } |
| | | |
| | | .cu-custom .cu-bar .border-custom { |
| | | position: relative; |
| | | background: rgba(0, 0, 0, 0.15); |
| | | border-radius: 1000upx; |
| | | height: 30px; |
| | | } |
| | | |
| | | .cu-custom .cu-bar .border-custom::after { |
| | | content: " "; |
| | | width: 200%; |
| | | height: 200%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | border-radius: inherit; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | pointer-events: none; |
| | | box-sizing: border-box; |
| | | border: 1upx solid #ffffff; |
| | | opacity: 0.5; |
| | | } |
| | | |
| | | .cu-custom .cu-bar .border-custom::before { |
| | | content: " "; |
| | | width: 1upx; |
| | | height: 110%; |
| | | position: absolute; |
| | | top: 22.5%; |
| | | left: 0; |
| | | right: 0; |
| | | margin: auto; |
| | | transform: scale(0.5); |
| | | transform-origin: 0 0; |
| | | pointer-events: none; |
| | | box-sizing: border-box; |
| | | opacity: 0.6; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .cu-custom .cu-bar .border-custom text { |
| | | display: block; |
| | | flex: 1; |
| | | margin: auto !important; |
| | | text-align: center; |
| | | font-size: 34upx; |
| | | } |
| | | |
| | | /* ================== |
| | | å¯¼èªæ |
| | | ==================== */ |
| | | |
| | | .nav { |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | |
| | | .nav .cu-item { |
| | | height: 90upx; |
| | | display: inline-block; |
| | | line-height: 90upx; |
| | | margin: 0 10upx; |
| | | padding: 0 20upx; |
| | | } |
| | | |
| | | .nav .cu-item.cur { |
| | | border-bottom: 4upx solid; |
| | | } |
| | | |
| | | /* ================== |
| | | æ¶é´è½´ |
| | | ==================== */ |
| | | |
| | | .cu-timeline { |
| | | display: block; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | .cu-timeline .cu-time { |
| | | width: 120upx; |
| | | text-align: center; |
| | | padding: 20upx 0; |
| | | font-size: 26upx; |
| | | color: #888; |
| | | display: block; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item { |
| | | padding: 30upx 30upx 30upx 120upx; |
| | | position: relative; |
| | | display: block; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item:not([class*="text-"]) { |
| | | color: #ccc; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item::after { |
| | | content: ""; |
| | | display: block; |
| | | position: absolute; |
| | | width: 1upx; |
| | | background-color: #ddd; |
| | | left: 60upx; |
| | | height: 100%; |
| | | top: 0; |
| | | z-index: 8; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item::before { |
| | | font-family: "cuIcon"; |
| | | display: block; |
| | | position: absolute; |
| | | top: 36upx; |
| | | z-index: 9; |
| | | background-color: #ffffff; |
| | | width: 50upx; |
| | | height: 50upx; |
| | | text-align: center; |
| | | border: none; |
| | | line-height: 50upx; |
| | | left: 36upx; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item:not([class*="cuIcon-"])::before { |
| | | content: "\e763"; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item[class*="cuIcon-"]::before { |
| | | background-color: #ffffff; |
| | | width: 50upx; |
| | | height: 50upx; |
| | | text-align: center; |
| | | border: none; |
| | | line-height: 50upx; |
| | | left: 36upx; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item>.content { |
| | | padding: 30upx; |
| | | border-radius: 6upx; |
| | | display: block; |
| | | line-height: 1.6; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item>.content:not([class*="bg-"]) { |
| | | background-color: #f1f1f1; |
| | | color: #333333; |
| | | } |
| | | |
| | | .cu-timeline>.cu-item>.content+.content { |
| | | margin-top: 20upx; |
| | | } |
| | | |
| | | /* ================== |
| | | è天 |
| | | ==================== */ |
| | | |
| | | .cu-chat { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .cu-chat .cu-item { |
| | | display: flex; |
| | | padding: 30upx 30upx 70upx; |
| | | position: relative; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.cu-avatar { |
| | | width: 80upx; |
| | | height: 80upx; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main { |
| | | max-width: calc(100% - 260upx); |
| | | margin: 0 40upx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .cu-chat .cu-item>image { |
| | | height: 320upx; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main .content { |
| | | padding: 20upx; |
| | | border-radius: 6upx; |
| | | display: inline-flex; |
| | | max-width: 100%; |
| | | align-items: center; |
| | | font-size: 30upx; |
| | | position: relative; |
| | | min-height: 80upx; |
| | | line-height: 40upx; |
| | | text-align: left; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main .content:not([class*="bg-"]) { |
| | | background-color: #ffffff; |
| | | color: #333333; |
| | | } |
| | | |
| | | .cu-chat .cu-item .date { |
| | | position: absolute; |
| | | font-size: 24upx; |
| | | color: #8799a3; |
| | | width: calc(100% - 320upx); |
| | | bottom: 20upx; |
| | | left: 160upx; |
| | | } |
| | | |
| | | .cu-chat .cu-item .action { |
| | | padding: 0 30upx; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main .content::after { |
| | | content: ""; |
| | | top: 27upx; |
| | | transform: rotate(45deg); |
| | | position: absolute; |
| | | z-index: 100; |
| | | display: inline-block; |
| | | overflow: hidden; |
| | | width: 24upx; |
| | | height: 24upx; |
| | | left: -12upx; |
| | | right: initial; |
| | | background-color: inherit; |
| | | } |
| | | |
| | | .cu-chat .cu-item.self>.main .content::after { |
| | | left: auto; |
| | | right: -12upx; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main .content::before { |
| | | content: ""; |
| | | top: 30upx; |
| | | transform: rotate(45deg); |
| | | position: absolute; |
| | | z-index: -1; |
| | | display: inline-block; |
| | | overflow: hidden; |
| | | width: 24upx; |
| | | height: 24upx; |
| | | left: -12upx; |
| | | right: initial; |
| | | background-color: inherit; |
| | | filter: blur(5upx); |
| | | opacity: 0.3; |
| | | } |
| | | |
| | | .cu-chat .cu-item>.main .content:not([class*="bg-"])::before { |
| | | background-color: #333333; |
| | | opacity: 0.1; |
| | | } |
| | | |
| | | .cu-chat .cu-item.self>.main .content::before { |
| | | left: auto; |
| | | right: -12upx; |
| | | } |
| | | |
| | | .cu-chat .cu-item.self { |
| | | justify-content: flex-end; |
| | | text-align: right; |
| | | } |
| | | |
| | | .cu-chat .cu-info { |
| | | display: inline-block; |
| | | margin: 20upx auto; |
| | | font-size: 24upx; |
| | | padding: 8upx 12upx; |
| | | background-color: rgba(0, 0, 0, 0.2); |
| | | border-radius: 6upx; |
| | | color: #ffffff; |
| | | max-width: 400upx; |
| | | line-height: 1.4; |
| | | } |
| | | |
| | | /* ================== |
| | | å¡ç |
| | | ==================== */ |
| | | |
| | | .cu-card { |
| | | display: block; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-card>.cu-item { |
| | | display: block; |
| | | background-color: #ffffff; |
| | | overflow: hidden; |
| | | border-radius: 10upx; |
| | | margin: 30upx; |
| | | } |
| | | |
| | | .cu-card>.cu-item.shadow-blur { |
| | | overflow: initial; |
| | | } |
| | | |
| | | .cu-card.no-card>.cu-item { |
| | | margin: 0upx; |
| | | border-radius: 0upx; |
| | | } |
| | | |
| | | .cu-card .grid.grid-square { |
| | | margin-bottom: -20upx; |
| | | } |
| | | |
| | | .cu-card.case .image { |
| | | position: relative; |
| | | } |
| | | |
| | | .cu-card.case .image image { |
| | | width: 100%; |
| | | } |
| | | |
| | | .cu-card.case .image .cu-tag { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | } |
| | | |
| | | .cu-card.case .image .cu-bar { |
| | | position: absolute; |
| | | bottom: 0; |
| | | width: 100%; |
| | | background-color: transparent; |
| | | padding: 0upx 30upx; |
| | | } |
| | | |
| | | .cu-card.case.no-card .image { |
| | | margin: 30upx 30upx 0; |
| | | overflow: hidden; |
| | | border-radius: 10upx; |
| | | } |
| | | |
| | | .cu-card.dynamic { |
| | | display: block; |
| | | } |
| | | |
| | | .cu-card.dynamic>.cu-item { |
| | | display: block; |
| | | background-color: #ffffff; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-card.dynamic>.cu-item>.text-content { |
| | | padding: 0 30upx 0; |
| | | max-height: 6.4em; |
| | | overflow: hidden; |
| | | font-size: 30upx; |
| | | margin-bottom: 20upx; |
| | | } |
| | | |
| | | .cu-card.dynamic>.cu-item .square-img { |
| | | width: 100%; |
| | | height: 200upx; |
| | | border-radius: 6upx; |
| | | } |
| | | |
| | | .cu-card.dynamic>.cu-item .only-img { |
| | | width: 100%; |
| | | height: 320upx; |
| | | border-radius: 6upx; |
| | | } |
| | | |
| | | /* card.dynamic>.cu-item .comment { |
| | | padding: 20upx; |
| | | background-color: #f1f1f1; |
| | | margin: 0 30upx 30upx; |
| | | border-radius: 6upx; |
| | | } */ |
| | | |
| | | .cu-card.article { |
| | | display: block; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item { |
| | | padding-bottom: 30upx; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item .title { |
| | | font-size: 30upx; |
| | | font-weight: 900; |
| | | color: #333333; |
| | | line-height: 100upx; |
| | | padding: 0 30upx; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item .content { |
| | | display: flex; |
| | | padding: 0 30upx; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item .content>image { |
| | | width: 240upx; |
| | | height: 6.4em; |
| | | margin-right: 20upx; |
| | | border-radius: 6upx; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item .content .desc { |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cu-card.article>.cu-item .content .text-content { |
| | | font-size: 28upx; |
| | | color: #888; |
| | | height: 4.8em; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | /* ================== |
| | | 表å |
| | | ==================== */ |
| | | |
| | | .cu-form-group { |
| | | background-color: #ffffff; |
| | | padding: 1upx 30upx; |
| | | display: flex; |
| | | align-items: center; |
| | | min-height: 100upx; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .cu-form-group+.cu-form-group { |
| | | border-top: 1upx solid #eee; |
| | | } |
| | | |
| | | .cu-form-group .title { |
| | | text-align: justify; |
| | | padding-right: 30upx; |
| | | font-size: 30upx; |
| | | position: relative; |
| | | height: 60upx; |
| | | line-height: 60upx; |
| | | } |
| | | |
| | | .cu-form-group input { |
| | | flex: 1; |
| | | font-size: 30upx; |
| | | color: #555; |
| | | padding-right: 20upx; |
| | | } |
| | | |
| | | .cu-form-group>text[class*="cuIcon-"] { |
| | | font-size: 36upx; |
| | | padding: 0; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .cu-form-group textarea { |
| | | margin: 32upx 0 30upx; |
| | | height: 4.6em; |
| | | width: 100%; |
| | | line-height: 1.2em; |
| | | flex: 1; |
| | | font-size: 28upx; |
| | | padding: 0; |
| | | } |
| | | |
| | | .cu-form-group.align-start .title { |
| | | height: 1em; |
| | | margin-top: 32upx; |
| | | line-height: 1em; |
| | | } |
| | | |
| | | .cu-form-group picker { |
| | | flex: 1; |
| | | padding-right: 40upx; |
| | | overflow: hidden; |
| | | position: relative; |
| | | } |
| | | |
| | | .cu-form-group picker .picker { |
| | | line-height: 100upx; |
| | | font-size: 28upx; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | width: 100%; |
| | | text-align: right; |
| | | } |
| | | |
| | | .cu-form-group picker::after { |
| | | font-family: cuIcon; |
| | | display: block; |
| | | content: "\e6a3"; |
| | | position: absolute; |
| | | font-size: 34upx; |
| | | color: #8799a3; |
| | | line-height: 100upx; |
| | | width: 60upx; |
| | | text-align: center; |
| | | top: 0; |
| | | bottom: 0; |
| | | right: -20upx; |
| | | margin: auto; |
| | | } |
| | | |
| | | .cu-form-group textarea[disabled], |
| | | .cu-form-group textarea[disabled] .placeholder { |
| | | color: transparent; |
| | | } |
| | | |
| | | /* ================== |
| | | 模æçªå£ |
| | | ==================== */ |
| | | |
| | | .cu-modal { |
| | | position: fixed; |
| | | top: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | z-index: 1110; |
| | | opacity: 0; |
| | | outline: 0; |
| | | text-align: center; |
| | | -ms-transform: scale(1.185); |
| | | transform: scale(1.185); |
| | | backface-visibility: hidden; |
| | | perspective: 2000upx; |
| | | background: rgba(0, 0, 0, 0.6); |
| | | transition: all 0.3s ease-in-out 0s; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | .cu-modal::before { |
| | | content: "\200B"; |
| | | display: inline-block; |
| | | height: 100%; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .cu-modal.show { |
| | | opacity: 1; |
| | | transition-duration: 0.3s; |
| | | -ms-transform: scale(1); |
| | | transform: scale(1); |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | pointer-events: auto; |
| | | } |
| | | |
| | | .cu-dialog { |
| | | position: relative; |
| | | display: inline-block; |
| | | vertical-align: middle; |
| | | margin-left: auto; |
| | | margin-right: auto; |
| | | width: 680upx; |
| | | max-width: 100%; |
| | | background-color: #f8f8f8; |
| | | border-radius: 10upx; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-modal.bottom-modal::before { |
| | | vertical-align: bottom; |
| | | } |
| | | |
| | | .cu-modal.bottom-modal .cu-dialog { |
| | | width: 100%; |
| | | border-radius: 0; |
| | | } |
| | | |
| | | .cu-modal.bottom-modal { |
| | | margin-bottom: -1000upx; |
| | | } |
| | | |
| | | .cu-modal.bottom-modal.show { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .cu-modal.drawer-modal { |
| | | transform: scale(1); |
| | | display: flex; |
| | | } |
| | | |
| | | .cu-modal.drawer-modal .cu-dialog { |
| | | height: 100%; |
| | | min-width: 200upx; |
| | | border-radius: 0; |
| | | margin: initial; |
| | | transition-duration: 0.3s; |
| | | } |
| | | |
| | | .cu-modal.drawer-modal.justify-start .cu-dialog { |
| | | transform: translateX(-100%); |
| | | } |
| | | |
| | | .cu-modal.drawer-modal.justify-end .cu-dialog { |
| | | transform: translateX(100%); |
| | | } |
| | | |
| | | .cu-modal.drawer-modal.show .cu-dialog { |
| | | transform: translateX(0%); |
| | | } |
| | | |
| | | .cu-modal .cu-dialog>.cu-bar:first-child .action { |
| | | min-width: 100rpx; |
| | | margin-right: 0; |
| | | min-height: 100rpx; |
| | | } |
| | | |
| | | /* ================== |
| | | è½®æ |
| | | ==================== */ |
| | | swiper .a-swiper-dot { |
| | | display: inline-block; |
| | | width: 16upx; |
| | | height: 16upx; |
| | | background: rgba(0, 0, 0, .3); |
| | | border-radius: 50%; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | swiper[class*="-dot"] .wx-swiper-dots, |
| | | swiper[class*="-dot"] .a-swiper-dots, |
| | | swiper[class*="-dot"] .uni-swiper-dots { |
| | | display: flex; |
| | | align-items: center; |
| | | width: 100%; |
| | | justify-content: center; |
| | | } |
| | | |
| | | swiper.square-dot .wx-swiper-dot, |
| | | swiper.square-dot .a-swiper-dot, |
| | | swiper.square-dot .uni-swiper-dot { |
| | | background-color: #ffffff; |
| | | opacity: 0.4; |
| | | width: 10upx; |
| | | height: 10upx; |
| | | border-radius: 20upx; |
| | | margin: 0 8upx !important; |
| | | } |
| | | |
| | | swiper.square-dot .wx-swiper-dot.wx-swiper-dot-active, |
| | | swiper.square-dot .a-swiper-dot.a-swiper-dot-active, |
| | | swiper.square-dot .uni-swiper-dot.uni-swiper-dot-active { |
| | | opacity: 1; |
| | | width: 30upx; |
| | | } |
| | | |
| | | swiper.round-dot .wx-swiper-dot, |
| | | swiper.round-dot .a-swiper-dot, |
| | | swiper.round-dot .uni-swiper-dot { |
| | | width: 10upx; |
| | | height: 10upx; |
| | | position: relative; |
| | | margin: 4upx 8upx !important; |
| | | } |
| | | |
| | | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active::after, |
| | | swiper.round-dot .a-swiper-dot.a-swiper-dot-active::after, |
| | | swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active::after { |
| | | content: ""; |
| | | position: absolute; |
| | | width: 10upx; |
| | | height: 10upx; |
| | | top: 0upx; |
| | | left: 0upx; |
| | | right: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | background-color: #ffffff; |
| | | border-radius: 20upx; |
| | | } |
| | | |
| | | swiper.round-dot .wx-swiper-dot.wx-swiper-dot-active, |
| | | swiper.round-dot .a-swiper-dot.a-swiper-dot-active, |
| | | swiper.round-dot .uni-swiper-dot.uni-swiper-dot-active { |
| | | width: 18upx; |
| | | height: 18upx; |
| | | } |
| | | |
| | | .screen-swiper { |
| | | min-height: 375upx; |
| | | } |
| | | |
| | | .screen-swiper image, |
| | | .screen-swiper video, |
| | | .swiper-item image, |
| | | .swiper-item video { |
| | | width: 100%; |
| | | display: block; |
| | | height: 100%; |
| | | margin: 0; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | .card-swiper { |
| | | height: 420upx !important; |
| | | } |
| | | |
| | | .card-swiper swiper-item { |
| | | width: 610upx !important; |
| | | left: 70upx; |
| | | box-sizing: border-box; |
| | | padding: 40upx 0upx 70upx; |
| | | overflow: initial; |
| | | } |
| | | |
| | | .card-swiper swiper-item .swiper-item { |
| | | width: 100%; |
| | | display: block; |
| | | height: 100%; |
| | | border-radius: 10upx; |
| | | transform: scale(0.9); |
| | | transition: all 0.2s ease-in 0s; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card-swiper swiper-item.cur .swiper-item { |
| | | transform: none; |
| | | transition: all 0.2s ease-in 0s; |
| | | } |
| | | |
| | | |
| | | .tower-swiper { |
| | | height: 420upx; |
| | | position: relative; |
| | | max-width: 750upx; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .tower-swiper .tower-item { |
| | | position: absolute; |
| | | width: 300upx; |
| | | height: 380upx; |
| | | top: 0; |
| | | bottom: 0; |
| | | left: 50%; |
| | | margin: auto; |
| | | transition: all 0.2s ease-in 0s; |
| | | opacity: 1; |
| | | } |
| | | |
| | | .tower-swiper .tower-item.none { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .tower-swiper .tower-item .swiper-item { |
| | | width: 100%; |
| | | height: 100%; |
| | | border-radius: 6upx; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | /* ================== |
| | | æ¥éª¤æ¡ |
| | | ==================== */ |
| | | |
| | | .cu-steps { |
| | | display: flex; |
| | | } |
| | | |
| | | scroll-view.cu-steps { |
| | | display: block; |
| | | white-space: nowrap; |
| | | } |
| | | |
| | | scroll-view.cu-steps .cu-item { |
| | | display: inline-block; |
| | | } |
| | | |
| | | .cu-steps .cu-item { |
| | | flex: 1; |
| | | text-align: center; |
| | | position: relative; |
| | | min-width: 100upx; |
| | | } |
| | | |
| | | .cu-steps .cu-item:not([class*="text-"]) { |
| | | color: #8799a3; |
| | | } |
| | | |
| | | .cu-steps .cu-item [class*="cuIcon-"], |
| | | .cu-steps .cu-item .num { |
| | | display: block; |
| | | font-size: 40upx; |
| | | line-height: 80upx; |
| | | } |
| | | |
| | | .cu-steps .cu-item::before, |
| | | .cu-steps .cu-item::after, |
| | | .cu-steps.steps-arrow .cu-item::before, |
| | | .cu-steps.steps-arrow .cu-item::after { |
| | | content: ""; |
| | | display: block; |
| | | position: absolute; |
| | | height: 0px; |
| | | width: calc(100% - 80upx); |
| | | border-bottom: 1px solid #ccc; |
| | | left: calc(0px - (100% - 80upx) / 2); |
| | | top: 40upx; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .cu-steps.steps-arrow .cu-item::before, |
| | | .cu-steps.steps-arrow .cu-item::after { |
| | | content: "\e6a3"; |
| | | font-family: 'cuIcon'; |
| | | height: 30upx; |
| | | border-bottom-width: 0px; |
| | | line-height: 30upx; |
| | | top: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | color: #ccc; |
| | | } |
| | | |
| | | .cu-steps.steps-bottom .cu-item::before, |
| | | .cu-steps.steps-bottom .cu-item::after { |
| | | bottom: 40upx; |
| | | top: initial; |
| | | } |
| | | |
| | | .cu-steps .cu-item::after { |
| | | border-bottom: 1px solid currentColor; |
| | | width: 0px; |
| | | transition: all 0.3s ease-in-out 0s; |
| | | } |
| | | |
| | | .cu-steps .cu-item[class*="text-"]::after { |
| | | width: calc(100% - 80upx); |
| | | color: currentColor; |
| | | } |
| | | |
| | | .cu-steps .cu-item:first-child::before, |
| | | .cu-steps .cu-item:first-child::after { |
| | | display: none; |
| | | } |
| | | |
| | | .cu-steps .cu-item .num { |
| | | width: 40upx; |
| | | height: 40upx; |
| | | border-radius: 50%; |
| | | line-height: 40upx; |
| | | margin: 20upx auto; |
| | | font-size: 24upx; |
| | | border: 1px solid currentColor; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .cu-steps .cu-item[class*="text-"] .num { |
| | | background-color: currentColor; |
| | | } |
| | | |
| | | .cu-steps .cu-item .num::before, |
| | | .cu-steps .cu-item .num::after { |
| | | content: attr(data-index); |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | margin: auto; |
| | | transition: all 0.3s ease-in-out 0s; |
| | | transform: translateY(0upx); |
| | | } |
| | | |
| | | .cu-steps .cu-item[class*="text-"] .num::before { |
| | | transform: translateY(-40upx); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .cu-steps .cu-item .num::after { |
| | | transform: translateY(40upx); |
| | | color: #ffffff; |
| | | transition: all 0.3s ease-in-out 0s; |
| | | } |
| | | |
| | | .cu-steps .cu-item[class*="text-"] .num::after { |
| | | content: "\e645"; |
| | | font-family: 'cuIcon'; |
| | | color: #ffffff; |
| | | transform: translateY(0upx); |
| | | } |
| | | |
| | | .cu-steps .cu-item[class*="text-"] .num.err::after { |
| | | content: "\e646"; |
| | | } |
| | | |
| | | /* ================== |
| | | å¸å± |
| | | ==================== */ |
| | | |
| | | /* -- flexå¼¹æ§å¸å± -- */ |
| | | |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .basis-xs { |
| | | flex-basis: 20%; |
| | | } |
| | | |
| | | .basis-sm { |
| | | flex-basis: 40%; |
| | | } |
| | | |
| | | .basis-df { |
| | | flex-basis: 50%; |
| | | } |
| | | |
| | | .basis-lg { |
| | | flex-basis: 60%; |
| | | } |
| | | |
| | | .basis-xl { |
| | | flex-basis: 80%; |
| | | } |
| | | |
| | | .flex-sub { |
| | | flex: 1; |
| | | } |
| | | |
| | | .flex-twice { |
| | | flex: 2; |
| | | } |
| | | |
| | | .flex-treble { |
| | | flex: 3; |
| | | } |
| | | |
| | | .flex-direction { |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .flex-wrap { |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .align-start { |
| | | align-items: flex-start; |
| | | } |
| | | |
| | | .align-end { |
| | | align-items: flex-end; |
| | | } |
| | | |
| | | .align-center { |
| | | align-items: center; |
| | | } |
| | | |
| | | .align-stretch { |
| | | align-items: stretch; |
| | | } |
| | | |
| | | .self-start { |
| | | align-self: flex-start; |
| | | } |
| | | |
| | | .self-center { |
| | | align-self: flex-center; |
| | | } |
| | | |
| | | .self-end { |
| | | align-self: flex-end; |
| | | } |
| | | |
| | | .self-stretch { |
| | | align-self: stretch; |
| | | } |
| | | |
| | | .align-stretch { |
| | | align-items: stretch; |
| | | } |
| | | |
| | | .justify-start { |
| | | justify-content: flex-start; |
| | | } |
| | | |
| | | .justify-end { |
| | | justify-content: flex-end; |
| | | } |
| | | |
| | | .justify-center { |
| | | justify-content: center; |
| | | } |
| | | |
| | | .justify-between { |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .justify-around { |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | /* gridå¸å± */ |
| | | |
| | | .grid { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .grid.grid-square { |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .grid.grid-square .cu-tag { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 0; |
| | | border-bottom-left-radius: 6upx; |
| | | padding: 6upx 12upx; |
| | | height: auto; |
| | | background-color: rgba(0, 0, 0, 0.5); |
| | | } |
| | | |
| | | .grid.grid-square>view>text[class*="cuIcon-"] { |
| | | font-size: 52upx; |
| | | position: absolute; |
| | | color: #8799a3; |
| | | margin: auto; |
| | | top: 0; |
| | | bottom: 0; |
| | | left: 0; |
| | | right: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .grid.grid-square>view { |
| | | margin-right: 20upx; |
| | | margin-bottom: 20upx; |
| | | border-radius: 6upx; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .grid.grid-square>view.bg-img image { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | } |
| | | |
| | | .grid.col-1.grid-square>view { |
| | | padding-bottom: 100%; |
| | | height: 0; |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .grid.col-2.grid-square>view { |
| | | padding-bottom: calc((100% - 20upx)/2); |
| | | height: 0; |
| | | width: calc((100% - 20upx)/2); |
| | | } |
| | | |
| | | .grid.col-3.grid-square>view { |
| | | padding-bottom: calc((100% - 40upx)/3); |
| | | height: 0; |
| | | width: calc((100% - 40upx)/3); |
| | | } |
| | | |
| | | .grid.col-4.grid-square>view { |
| | | padding-bottom: calc((100% - 60upx)/4); |
| | | height: 0; |
| | | width: calc((100% - 60upx)/4); |
| | | } |
| | | |
| | | .grid.col-5.grid-square>view { |
| | | padding-bottom: calc((100% - 80upx)/5); |
| | | height: 0; |
| | | width: calc((100% - 80upx)/5); |
| | | } |
| | | |
| | | .grid.col-2.grid-square>view:nth-child(2n), |
| | | .grid.col-3.grid-square>view:nth-child(3n), |
| | | .grid.col-4.grid-square>view:nth-child(4n), |
| | | .grid.col-5.grid-square>view:nth-child(5n) { |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .grid.col-1>view { |
| | | width: 100%; |
| | | } |
| | | |
| | | .grid.col-2>view { |
| | | width: 50%; |
| | | } |
| | | |
| | | .grid.col-3>view { |
| | | width: 33.33%; |
| | | } |
| | | |
| | | .grid.col-4>view { |
| | | width: 25%; |
| | | } |
| | | |
| | | .grid.col-5>view { |
| | | width: 20%; |
| | | } |
| | | |
| | | /* -- å
å¤è¾¹è· -- */ |
| | | |
| | | .margin-0 { |
| | | margin: 0; |
| | | } |
| | | |
| | | .margin-xs { |
| | | margin: 10upx; |
| | | } |
| | | |
| | | .margin-sm { |
| | | margin: 20upx; |
| | | } |
| | | |
| | | .margin { |
| | | margin: 30upx; |
| | | } |
| | | |
| | | .margin-lg { |
| | | margin: 40upx; |
| | | } |
| | | |
| | | .margin-xl { |
| | | margin: 50upx; |
| | | } |
| | | |
| | | .margin-top-xs { |
| | | margin-top: 10upx; |
| | | } |
| | | |
| | | .margin-top-sm { |
| | | margin-top: 20upx; |
| | | } |
| | | |
| | | .margin-top { |
| | | margin-top: 30upx; |
| | | } |
| | | |
| | | .margin-top-lg { |
| | | margin-top: 40upx; |
| | | } |
| | | |
| | | .margin-top-xl { |
| | | margin-top: 50upx; |
| | | } |
| | | |
| | | .margin-right-xs { |
| | | margin-right: 10upx; |
| | | } |
| | | |
| | | .margin-right-sm { |
| | | margin-right: 20upx; |
| | | } |
| | | |
| | | .margin-right { |
| | | margin-right: 30upx; |
| | | } |
| | | |
| | | .margin-right-lg { |
| | | margin-right: 40upx; |
| | | } |
| | | |
| | | .margin-right-xl { |
| | | margin-right: 50upx; |
| | | } |
| | | |
| | | .margin-bottom-xs { |
| | | margin-bottom: 10upx; |
| | | } |
| | | |
| | | .margin-bottom-sm { |
| | | margin-bottom: 20upx; |
| | | } |
| | | |
| | | .margin-bottom { |
| | | margin-bottom: 30upx; |
| | | } |
| | | |
| | | .margin-bottom-lg { |
| | | margin-bottom: 40upx; |
| | | } |
| | | |
| | | .margin-bottom-xl { |
| | | margin-bottom: 50upx; |
| | | } |
| | | |
| | | .margin-left-xs { |
| | | margin-left: 10upx; |
| | | } |
| | | |
| | | .margin-left-sm { |
| | | margin-left: 20upx; |
| | | } |
| | | |
| | | .margin-left { |
| | | margin-left: 30upx; |
| | | } |
| | | |
| | | .margin-left-lg { |
| | | margin-left: 40upx; |
| | | } |
| | | |
| | | .margin-left-xl { |
| | | margin-left: 50upx; |
| | | } |
| | | |
| | | .margin-lr-xs { |
| | | margin-left: 10upx; |
| | | margin-right: 10upx; |
| | | } |
| | | |
| | | .margin-lr-sm { |
| | | margin-left: 20upx; |
| | | margin-right: 20upx; |
| | | } |
| | | |
| | | .margin-lr { |
| | | margin-left: 30upx; |
| | | margin-right: 30upx; |
| | | } |
| | | |
| | | .margin-lr-lg { |
| | | margin-left: 40upx; |
| | | margin-right: 40upx; |
| | | } |
| | | |
| | | .margin-lr-xl { |
| | | margin-left: 50upx; |
| | | margin-right: 50upx; |
| | | } |
| | | |
| | | .margin-tb-xs { |
| | | margin-top: 10upx; |
| | | margin-bottom: 10upx; |
| | | } |
| | | |
| | | .margin-tb-sm { |
| | | margin-top: 20upx; |
| | | margin-bottom: 20upx; |
| | | } |
| | | |
| | | .margin-tb { |
| | | margin-top: 30upx; |
| | | margin-bottom: 30upx; |
| | | } |
| | | |
| | | .margin-tb-lg { |
| | | margin-top: 40upx; |
| | | margin-bottom: 40upx; |
| | | } |
| | | |
| | | .margin-tb-xl { |
| | | margin-top: 50upx; |
| | | margin-bottom: 50upx; |
| | | } |
| | | |
| | | .padding-0 { |
| | | padding: 0; |
| | | } |
| | | |
| | | .padding-xs { |
| | | padding: 10upx; |
| | | } |
| | | |
| | | .padding-sm { |
| | | padding: 20upx; |
| | | } |
| | | |
| | | .padding { |
| | | padding: 30upx; |
| | | } |
| | | |
| | | .padding-lg { |
| | | padding: 40upx; |
| | | } |
| | | |
| | | .padding-xl { |
| | | padding: 50upx; |
| | | } |
| | | |
| | | .padding-top-xs { |
| | | padding-top: 10upx; |
| | | } |
| | | |
| | | .padding-top-sm { |
| | | padding-top: 20upx; |
| | | } |
| | | |
| | | .padding-top { |
| | | padding-top: 30upx; |
| | | } |
| | | |
| | | .padding-top-lg { |
| | | padding-top: 40upx; |
| | | } |
| | | |
| | | .padding-top-xl { |
| | | padding-top: 50upx; |
| | | } |
| | | |
| | | .padding-right-xs { |
| | | padding-right: 10upx; |
| | | } |
| | | |
| | | .padding-right-sm { |
| | | padding-right: 20upx; |
| | | } |
| | | |
| | | .padding-right { |
| | | padding-right: 30upx; |
| | | } |
| | | |
| | | .padding-right-lg { |
| | | padding-right: 40upx; |
| | | } |
| | | |
| | | .padding-right-xl { |
| | | padding-right: 50upx; |
| | | } |
| | | |
| | | .padding-bottom-xs { |
| | | padding-bottom: 10upx; |
| | | } |
| | | |
| | | .padding-bottom-sm { |
| | | padding-bottom: 20upx; |
| | | } |
| | | |
| | | .padding-bottom { |
| | | padding-bottom: 30upx; |
| | | } |
| | | |
| | | .padding-bottom-lg { |
| | | padding-bottom: 40upx; |
| | | } |
| | | |
| | | .padding-bottom-xl { |
| | | padding-bottom: 50upx; |
| | | } |
| | | |
| | | .padding-left-xs { |
| | | padding-left: 10upx; |
| | | } |
| | | |
| | | .padding-left-sm { |
| | | padding-left: 20upx; |
| | | } |
| | | |
| | | .padding-left { |
| | | padding-left: 30upx; |
| | | } |
| | | |
| | | .padding-left-lg { |
| | | padding-left: 40upx; |
| | | } |
| | | |
| | | .padding-left-xl { |
| | | padding-left: 50upx; |
| | | } |
| | | |
| | | .padding-lr-xs { |
| | | padding-left: 10upx; |
| | | padding-right: 10upx; |
| | | } |
| | | |
| | | .padding-lr-sm { |
| | | padding-left: 20upx; |
| | | padding-right: 20upx; |
| | | } |
| | | |
| | | .padding-lr { |
| | | padding-left: 30upx; |
| | | padding-right: 30upx; |
| | | } |
| | | |
| | | .padding-lr-lg { |
| | | padding-left: 40upx; |
| | | padding-right: 40upx; |
| | | } |
| | | |
| | | .padding-lr-xl { |
| | | padding-left: 50upx; |
| | | padding-right: 50upx; |
| | | } |
| | | |
| | | .padding-tb-xs { |
| | | padding-top: 10upx; |
| | | padding-bottom: 10upx; |
| | | } |
| | | |
| | | .padding-tb-sm { |
| | | padding-top: 20upx; |
| | | padding-bottom: 20upx; |
| | | } |
| | | |
| | | .padding-tb { |
| | | padding-top: 30upx; |
| | | padding-bottom: 30upx; |
| | | } |
| | | |
| | | .padding-tb-lg { |
| | | padding-top: 40upx; |
| | | padding-bottom: 40upx; |
| | | } |
| | | |
| | | .padding-tb-xl { |
| | | padding-top: 50upx; |
| | | padding-bottom: 50upx; |
| | | } |
| | | |
| | | /* -- æµ®å¨ -- */ |
| | | |
| | | .cf::after, |
| | | .cf::before { |
| | | content: " "; |
| | | display: table; |
| | | } |
| | | |
| | | .cf::after { |
| | | clear: both; |
| | | } |
| | | |
| | | .fl { |
| | | float: left; |
| | | } |
| | | |
| | | .fr { |
| | | float: right; |
| | | } |
| | | |
| | | /* ================== |
| | | èæ¯ |
| | | ==================== */ |
| | | |
| | | .line-red::after, |
| | | .lines-red::after { |
| | | border-color: #e54d42; |
| | | } |
| | | |
| | | .line-orange::after, |
| | | .lines-orange::after { |
| | | border-color: #f37b1d; |
| | | } |
| | | |
| | | .line-yellow::after, |
| | | .lines-yellow::after { |
| | | border-color: #fbbd08; |
| | | } |
| | | |
| | | .line-olive::after, |
| | | .lines-olive::after { |
| | | border-color: #8dc63f; |
| | | } |
| | | |
| | | .line-green::after, |
| | | .lines-green::after { |
| | | border-color: #39b54a; |
| | | } |
| | | |
| | | .line-cyan::after, |
| | | .lines-cyan::after { |
| | | border-color: #1cbbb4; |
| | | } |
| | | |
| | | .line-blue::after, |
| | | .lines-blue::after { |
| | | border-color: #0081ff; |
| | | } |
| | | |
| | | .line-purple::after, |
| | | .lines-purple::after { |
| | | border-color: #6739b6; |
| | | } |
| | | |
| | | .line-mauve::after, |
| | | .lines-mauve::after { |
| | | border-color: #9c26b0; |
| | | } |
| | | |
| | | .line-pink::after, |
| | | .lines-pink::after { |
| | | border-color: #e03997; |
| | | } |
| | | |
| | | .line-brown::after, |
| | | .lines-brown::after { |
| | | border-color: #a5673f; |
| | | } |
| | | |
| | | .line-grey::after, |
| | | .lines-grey::after { |
| | | border-color: #8799a3; |
| | | } |
| | | |
| | | .line-gray::after, |
| | | .lines-gray::after { |
| | | border-color: #aaaaaa; |
| | | } |
| | | |
| | | .line-black::after, |
| | | .lines-black::after { |
| | | border-color: #333333; |
| | | } |
| | | |
| | | .line-white::after, |
| | | .lines-white::after { |
| | | border-color: #ffffff; |
| | | } |
| | | |
| | | .bg-red { |
| | | background-color: #e54d42; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-orange { |
| | | background-color: #f37b1d; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-yellow { |
| | | background-color: #fbbd08; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-olive { |
| | | background-color: #8dc63f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-green { |
| | | background-color: #39b54a; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-cyan { |
| | | background-color: #1cbbb4; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-blue { |
| | | background-color: #0081ff; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-purple { |
| | | background-color: #6739b6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-mauve { |
| | | background-color: #9c26b0; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-pink { |
| | | background-color: #e03997; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-brown { |
| | | background-color: #a5673f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-grey { |
| | | background-color: #fff; |
| | | color: #f18202; |
| | | border: 1px solid #f18202; |
| | | } |
| | | |
| | | .bg-gray { |
| | | background-color: #f0f0f0; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-black { |
| | | background-color: #333333; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-white { |
| | | background-color: #ffffff; |
| | | color: #666666; |
| | | } |
| | | |
| | | .bg-shadeTop { |
| | | background-image: linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0.01)); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-shadeBottom { |
| | | background-image: linear-gradient(rgba(0, 0, 0, 0.01), rgba(0, 0, 0, 1)); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-red.light { |
| | | color: #e54d42; |
| | | background-color: #fadbd9; |
| | | } |
| | | |
| | | .bg-orange.light { |
| | | color: #f37b1d; |
| | | background-color: #fde6d2; |
| | | } |
| | | |
| | | .bg-yellow.light { |
| | | color: #fbbd08; |
| | | background-color: #fef2ced2; |
| | | } |
| | | |
| | | .bg-olive.light { |
| | | color: #8dc63f; |
| | | background-color: #e8f4d9; |
| | | } |
| | | |
| | | .bg-green.light { |
| | | color: #39b54a; |
| | | background-color: #d7f0dbff; |
| | | } |
| | | |
| | | .bg-cyan.light { |
| | | color: #1cbbb4; |
| | | background-color: #d2f1f0; |
| | | } |
| | | |
| | | .bg-blue.light { |
| | | color: #0081ff; |
| | | background-color: #cce6ff; |
| | | } |
| | | |
| | | .bg-purple.light { |
| | | color: #6739b6; |
| | | background-color: #e1d7f0; |
| | | } |
| | | |
| | | .bg-mauve.light { |
| | | color: #9c26b0; |
| | | background-color: #ebd4ef; |
| | | } |
| | | |
| | | .bg-pink.light { |
| | | color: #e03997; |
| | | background-color: #f9d7ea; |
| | | } |
| | | |
| | | .bg-brown.light { |
| | | color: #a5673f; |
| | | background-color: #ede1d9; |
| | | } |
| | | |
| | | .bg-grey.light { |
| | | color: #8799a3; |
| | | background-color: #e7ebed; |
| | | } |
| | | |
| | | .bg-gradual-red { |
| | | background-image: linear-gradient(45deg, #f43f3b, #ec008c); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gradual-orange { |
| | | background-image: linear-gradient(45deg, #ff9700, #ed1c24); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gradual-green { |
| | | background-image: linear-gradient(45deg, #39b54a, #8dc63f); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gradual-purple { |
| | | background-image: linear-gradient(45deg, #9000ff, #5e00ff); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gradual-pink { |
| | | background-image: linear-gradient(45deg, #ec008c, #6739b6); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gradual-blue { |
| | | background-image: linear-gradient(45deg, #0081ff, #1cbbb4); |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .shadow[class*="-red"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-orange"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-yellow"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-olive"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-green"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-cyan"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-blue"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-purple"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-mauve"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-pink"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-brown"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-grey"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-gray"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-black"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); |
| | | } |
| | | |
| | | .shadow[class*="-white"] { |
| | | box-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-red"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(204, 69, 59, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-orange"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(217, 109, 26, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-yellow"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(224, 170, 7, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-olive"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(124, 173, 55, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-green"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(48, 156, 63, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-cyan"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(28, 187, 180, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-blue"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(0, 102, 204, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-purple"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(88, 48, 156, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-mauve"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(133, 33, 150, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-pink"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(199, 50, 134, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-brown"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(140, 88, 53, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-grey"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-gray"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(114, 130, 138, 0.2); |
| | | } |
| | | |
| | | .text-shadow[class*="-black"] { |
| | | text-shadow: 6upx 6upx 8upx rgba(26, 26, 26, 0.2); |
| | | } |
| | | |
| | | .bg-img { |
| | | background-size: cover; |
| | | background-position: center; |
| | | background-repeat: no-repeat; |
| | | } |
| | | |
| | | .bg-mask { |
| | | background-color: #333333; |
| | | position: relative; |
| | | } |
| | | |
| | | .bg-mask::after { |
| | | content: ""; |
| | | border-radius: inherit; |
| | | width: 100%; |
| | | height: 100%; |
| | | display: block; |
| | | background-color: rgba(0, 0, 0, 0.4); |
| | | position: absolute; |
| | | left: 0; |
| | | right: 0; |
| | | bottom: 0; |
| | | top: 0; |
| | | } |
| | | |
| | | .bg-mask view, |
| | | .bg-mask cover-view { |
| | | z-index: 5; |
| | | position: relative; |
| | | } |
| | | |
| | | .bg-video { |
| | | position: relative; |
| | | } |
| | | |
| | | .bg-video video { |
| | | display: block; |
| | | height: 100%; |
| | | width: 100%; |
| | | -o-object-fit: cover; |
| | | object-fit: cover; |
| | | position: absolute; |
| | | top: 0; |
| | | z-index: 0; |
| | | pointer-events: none; |
| | | } |
| | | |
| | | /* ================== |
| | | ææ¬ |
| | | ==================== */ |
| | | |
| | | .text-xs { |
| | | font-size: 20upx; |
| | | } |
| | | |
| | | .text-sm { |
| | | font-size: 24upx; |
| | | } |
| | | |
| | | .text-df { |
| | | font-size: 28upx; |
| | | } |
| | | |
| | | .text-lg { |
| | | font-size: 32upx; |
| | | } |
| | | |
| | | .text-xl { |
| | | font-size: 36upx; |
| | | } |
| | | |
| | | .text-xxl { |
| | | font-size: 44upx; |
| | | } |
| | | |
| | | .text-sl { |
| | | font-size: 80upx; |
| | | } |
| | | |
| | | .text-xsl { |
| | | font-size: 120upx; |
| | | } |
| | | |
| | | .text-Abc { |
| | | text-transform: Capitalize; |
| | | } |
| | | |
| | | .text-ABC { |
| | | text-transform: Uppercase; |
| | | } |
| | | |
| | | .text-abc { |
| | | text-transform: Lowercase; |
| | | } |
| | | |
| | | .text-price::before { |
| | | content: "Â¥"; |
| | | font-size: 80%; |
| | | margin-right: 4upx; |
| | | } |
| | | |
| | | .text-cut { |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .text-bold { |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .text-center { |
| | | text-align: center; |
| | | } |
| | | |
| | | .text-content { |
| | | line-height: 1.6; |
| | | } |
| | | |
| | | .text-left { |
| | | text-align: left; |
| | | } |
| | | |
| | | .text-right { |
| | | text-align: right; |
| | | } |
| | | |
| | | .text-red, |
| | | .line-red, |
| | | .lines-red { |
| | | color: #e54d42; |
| | | } |
| | | |
| | | .text-orange, |
| | | .line-orange, |
| | | .lines-orange { |
| | | color: #f37b1d; |
| | | } |
| | | |
| | | .text-yellow, |
| | | .line-yellow, |
| | | .lines-yellow { |
| | | color: #fbbd08; |
| | | } |
| | | |
| | | .text-olive, |
| | | .line-olive, |
| | | .lines-olive { |
| | | color: #8dc63f; |
| | | } |
| | | |
| | | .text-green, |
| | | .line-green, |
| | | .lines-green { |
| | | color: #39b54a; |
| | | } |
| | | |
| | | .text-cyan, |
| | | .line-cyan, |
| | | .lines-cyan { |
| | | color: #1cbbb4; |
| | | } |
| | | |
| | | .text-blue, |
| | | .line-blue, |
| | | .lines-blue { |
| | | color: #0081ff; |
| | | } |
| | | |
| | | .text-purple, |
| | | .line-purple, |
| | | .lines-purple { |
| | | color: #6739b6; |
| | | } |
| | | |
| | | .text-mauve, |
| | | .line-mauve, |
| | | .lines-mauve { |
| | | color: #9c26b0; |
| | | } |
| | | |
| | | .text-pink, |
| | | .line-pink, |
| | | .lines-pink { |
| | | color: #e03997; |
| | | } |
| | | |
| | | .text-brown, |
| | | .line-brown, |
| | | .lines-brown { |
| | | color: #a5673f; |
| | | } |
| | | |
| | | .text-grey, |
| | | .line-grey, |
| | | .lines-grey { |
| | | color: #8799a3; |
| | | } |
| | | |
| | | .text-gray, |
| | | .line-gray, |
| | | .lines-gray { |
| | | color: #aaaaaa; |
| | | } |
| | | |
| | | .text-black, |
| | | .line-black, |
| | | .lines-black { |
| | | color: #333333; |
| | | } |
| | | |
| | | .text-white, |
| | | .line-white, |
| | | .lines-white { |
| | | color: #ffffff; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="cu-modal bottom-modal" :class="BottomModal?'show':''"> |
| | | <view class="cu-dialog" :style="'height:'+cudiaheight+'rpx'"> |
| | | <view v-if="hidshow" class="cu-bar bg-white"> |
| | | <view class="action text-green" @click="$emit('submit')">{{modaltitle}}</view> |
| | | <view class="action text-blue fontSize32rpx" @tap="$emit('hideModal')">åæ¶</view> |
| | | </view> |
| | | <view v-if="inputshow" class="cu-bar bg-white"> |
| | | <view style="margin-bottom: 5px;height: 45px;" |
| | | class="width background_fff border_top_F2F2F2 flex align-center justify-between border_bottom_fff "> |
| | | <view class="width70 flex align-center"> |
| | | <text class="fontSize42rpx margin_left10rpx iconfont icon-tiaomashuru"></text> |
| | | <slot name='serinput'></slot> |
| | | </view> |
| | | <view @tap="$emit('hideModal');" class="margin_right30rpx fontSize32rpx color_1989FA "> |
| | | åæ¶ |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="padding-xl"> |
| | | <slot name="content"></slot> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"BottomModal", |
| | | data() { |
| | | return { |
| | | sacncode:'' |
| | | }; |
| | | }, |
| | | props:{ |
| | | hidshow:{ |
| | | type:Boolean, |
| | | default:true |
| | | }, |
| | | inputshow:{ |
| | | type:Boolean, |
| | | default:false |
| | | }, |
| | | BottomModal:{ |
| | | type:Boolean, |
| | | default:false |
| | | }, |
| | | focusshow:{ |
| | | type:Boolean, |
| | | default:true |
| | | }, |
| | | cudiaheight:{ |
| | | type:String, |
| | | default:'200' |
| | | }, |
| | | placeholder:{ |
| | | type:String, |
| | | default:'' |
| | | }, |
| | | modaltitle:{ |
| | | type:String, |
| | | default:'确认' |
| | | } |
| | | }, |
| | | methods:{ |
| | | butonchange(e){ |
| | | console.log(e) |
| | | this.sacncode=e.target.value |
| | | this.$emit('butonchange',e.target.value) |
| | | }, |
| | | endsacn(){ |
| | | this.sacncode='' |
| | | }, |
| | | doSearch(e){ |
| | | this.sacncode=e.target.value |
| | | this.$emit('doSearch',e.target.value) |
| | | }, |
| | | qkseach(){ |
| | | console.log(789456464) |
| | | this.sacncode='' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="cu-modal" :class="modalshow?'show':''"> |
| | | <view class="cu-dialog" > |
| | | <view class="cu-bar bg-white justify-end"> |
| | | <view class="content">{{placeholder}}</view> |
| | | <view class="action" @tap="$emit('hideModal')"> |
| | | <text class="iconfont icon-guanbi text-red"></text> |
| | | </view> |
| | | </view> |
| | | <view class="padding-xl"> |
| | | <slot name="modal"></slot> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"CuModal", |
| | | data() { |
| | | return { |
| | | show:false |
| | | }; |
| | | }, |
| | | props:{ |
| | | modalshow:{ |
| | | type:Boolean, |
| | | default:false |
| | | }, |
| | | placeholder:{ |
| | | type:String, |
| | | default:'' |
| | | } |
| | | }, |
| | | methods:{ |
| | | hideModal(){ |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="cu-modal drawer-modal justify-start" :class="DrawerModalL?'show':''" @click="$emit('hindle')"> |
| | | <view class="cu-dialog basis-lg" @tap.stop="" :style="[{top:CustomBar+'px',height:'calc(100vh - ' + CustomBar + 'px)'}]" > |
| | | <view class="cu-list menu text-left"> |
| | | <slot name="modalcontent"></slot> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"LeftModal", |
| | | data() { |
| | | return { |
| | | modalName:false, |
| | | }; |
| | | }, |
| | | props:{ |
| | | DrawerModalL:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="cu-load load-modal" v-if="loadModal"> |
| | | <image src="/static/logo.png" mode="aspectFit"></image> |
| | | <view class="gray-text">å è½½ä¸...</view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"Loding", |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | }, |
| | | props:{ |
| | | loadModal:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <u-modal v-model="show" :show-confirm-button="false" :mask-close-able="!showBtn" :show-cancel-button="false" |
| | | confirm-text="" :show-title="false" @tap="close"> |
| | | <view class="slot-content text_align_center flex align-center justify-center align-center" |
| | | style="min-height: 500rpx;"> |
| | | <view class="margin_auto padding5_10"> |
| | | <view :class="rescode == 200?'succeicon':'erroricon'" |
| | | class="margin_auto margin_bottom25rpx" |
| | | style="width: 250rpx;height: 200rpx;" |
| | | > |
| | | </view> |
| | | <!-- </view> --> |
| | | <view class="fontSize38rpx padding15 flex justify-center boxRwd" |
| | | style="width: 450rpx;"> |
| | | {{ resmessage }} |
| | | </view> |
| | | <br> |
| | | <!-- <button v-if="showBtn" class="width95 color_1989FA" @click="close(1)">å
³é</button> --> |
| | | <!-- <br> --> |
| | | <!-- <button v-if="showBtn" class="width95 bg-f18202" @click="$emit('goYuKu')">è¶åº</button> --> |
| | | </view> |
| | | </view> |
| | | </u-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | show: false |
| | | } |
| | | }, |
| | | props: { |
| | | rescode: { |
| | | type: [String, Number], |
| | | default: 0 |
| | | }, |
| | | resmessage: { |
| | | type: [String, Object], |
| | | default: '' |
| | | }, |
| | | showBtn: { |
| | | type: [String, Number], |
| | | default: 0 |
| | | }, |
| | | // show: { |
| | | // type: Boolean, |
| | | // default: false |
| | | // } |
| | | }, |
| | | methods: { |
| | | close(param){ |
| | | if(this.showBtn==1 && !param){ |
| | | return |
| | | } |
| | | this.show = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .modalcode { |
| | | width: 94%; |
| | | margin: auto; |
| | | margin-top: 10px; |
| | | border-radius: 6px; |
| | | box-shadow: 0 0 4px #d4dde5; |
| | | } |
| | | |
| | | .succeicon { |
| | | background-image: url("../static/modal/success.png"); |
| | | background-size: cover; |
| | | } |
| | | |
| | | .erroricon { |
| | | background-image: url("../static/modal/error.png"); |
| | | background-size: cover; |
| | | } |
| | | |
| | | .boxRwd{ |
| | | word-wrap: break-word; |
| | | display: inline-block; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <u-upload :action="action" :file-list="fileList" :max-count="count" :header="header" ref="uploadRef"></u-upload> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"MsiUpload", |
| | | props: { |
| | | action: {type: String,required: true}, |
| | | count: {type: Number,default: 1}, |
| | | }, |
| | | data() { |
| | | return { |
| | | header: {Authorization: ''} |
| | | }; |
| | | }, |
| | | onLoad(){ |
| | | this.header.Authorization = 'Bearer ' + uni.getStorageSync('token'); |
| | | }, |
| | | methods: { |
| | | submit() { |
| | | this.$refs.uploadRef.submit(); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="width background_fff border_top_F2F2F2 flex align-center justify-between border_bottom_fff padding_surround"> |
| | | <view class="width70 flex align-center"> |
| | | <text class="fontSize32rpx margin_right10rpx iconfont icon-bar-code"></text> |
| | | <input class="fontSize40rpx width" :focus="renamefocus" @focus='focuss' v-model="sacncode" @input="changeinput" @confirm="inputchange" |
| | | type="text" :placeholder="placeholder" /> |
| | | </view> |
| | | <button style="padding: 0;background-color: unset;line-height: unset;border: unset;" |
| | | class="margin_right30rpx fontSize60rpx color_1989FA iconfont icon-saoma" |
| | | @click="tel()"></button> |
| | | |
| | | </view> |
| | | </template> |
| | | <script> |
| | | // import {mixin} from '../utils/mixin.js' |
| | | export default { |
| | | name:"ScanCode", |
| | | data() { |
| | | return { |
| | | renamefocus:true,//è·åç¦ç¹ |
| | | sacncode:null, |
| | | changecode:null |
| | | }; |
| | | }, |
| | | // mixins:[mixin], |
| | | props:{ |
| | | renameFocus:{ |
| | | type:Boolean, |
| | | default:true |
| | | }, |
| | | placeholder:{ |
| | | type:String, |
| | | default:'è¯·æ«æçå
·ç¼ç ' |
| | | } |
| | | }, |
| | | onShow() { |
| | | // setTimeout(() => { |
| | | // // 忝«ç§å软é®çéè |
| | | // uni.hideKeyboard() |
| | | // }, 10) |
| | | }, |
| | | watch:{ |
| | | renameFocus:{ |
| | | handler(nv,ov){ |
| | | this.renamefocus=nv |
| | | }, |
| | | deep:true |
| | | } |
| | | }, |
| | | methods:{ |
| | | focuss() { |
| | | // uni.hideKeyboard() |
| | | }, |
| | | //æ«ç |
| | | inputchange(event){ |
| | | uni.hideKeyboard() |
| | | this.sacncode=event.target.value |
| | | this.$emit('scancode',this.sacncode) |
| | | |
| | | }, |
| | | //æ¨¡ç³æ¥è¯¢ |
| | | changeinput(event){ |
| | | // uni.hideKeyboard() |
| | | this.changecode=event.target.value |
| | | this.$emit('changecode',this.changecode) |
| | | |
| | | }, |
| | | //è°ç¨æå头æ«ç |
| | | tel(){ |
| | | // uni.scanCode({ |
| | | // success:function(res){ |
| | | // this.sacncode=JSON.stringify(res) |
| | | // console.log(JSON.stringify(res)); |
| | | // }, |
| | | // fail(res) { |
| | | // console.log(res) |
| | | // } |
| | | // }); |
| | | }, |
| | | clearinquer(event){ |
| | | // setTimeout(()=>{ |
| | | this.sacncode='' |
| | | // this.renamefocus=true |
| | | uni.hideKeyboard() |
| | | // },500) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | .uni-button{ |
| | | padding: 0 !important; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="width background_fff border_top_F2F2F2 flex align-center justify-between border_bottom_fff padding_surround"> |
| | | <view class="width70 flex align-center"> |
| | | <text class=" margin_right10rpx iconfont icon-chaxun"></text> |
| | | <input class="fontSize32rpx width" disabled |
| | | type="text" :placeholder="placeholder" @click="inputchange" /> |
| | | </view> |
| | | <!-- <text class=" margin_right30rpx iconfont icon-zelvxuanzefeiyongzhengsanjiaoxingzhichi" |
| | | :class="modalshow?'transition_rotate180':'transition_rotate0'" |
| | | ></text> --> |
| | | <cu-modal placeholder='å·¥åç¼å·' :modalshow='modalshow' @hideModal='inputchange' /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"SelectList", |
| | | data() { |
| | | return { |
| | | modalshow:false |
| | | }; |
| | | }, |
| | | props:{ |
| | | placeholder:{ |
| | | type:String, |
| | | default:'è¯·éæ©å·¥åç¼å·' |
| | | } |
| | | }, |
| | | methods:{ |
| | | inputchange(){ |
| | | this.modalshow=!this.modalshow |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <view class="border margin_top30rpx"> |
| | | <h2 class="text_align_center padding_bottom18 padding15 margin_bottom10rpx">éæ©æå°é©±å¨</h2> |
| | | <scroll-view scroll-y="true" style="height: 150rpx;"> |
| | | <view style="margin-top: 30upx;" :key="index" v-for="(item,index) in list"> |
| | | <button style="width: 400upx; color: #f18202;background-color: #fff;border: 1px solid #f18202;" |
| | | @click="longpress(item,index)" |
| | | :class="active==index?'bg-f18202':'color_f18202 border_1989FA'">{{item.name}}</button> |
| | | </view> |
| | | <view style="margin-top: 30upx;height: 130rpx;" v-if='list.length==0'> |
| | | <button |
| | | style="width: 600upx; color: #f18202;background-color: #fff;border: 1px solid #f18202;">ææ é©±å¨</button> |
| | | </view> |
| | | </scroll-view> |
| | | <u-form :model="ware" ref="wareRef" v-if="numberShow" style='border-top: 1px solid #e4e4e4;'> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <u-form-item label="æå°æ°é:" prop="num" required label-width='150' |
| | | class='margin_left30rpx font_weight_bold'> |
| | | <input v-model="printNum" placeholder="请è¾å
¥æå°æ°é" class='width' |
| | | style="margin-left: 30rpx;text-align: right;"> |
| | | </input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | </u-form> |
| | | |
| | | </view> |
| | | <view class="flex justify-around transition margin_bottom30rpx margin_top30rpx"> |
| | | <button class="width25 bg-grey" @click="$emit('back')">ä¸ä¸æ¥</button> |
| | | <button class="width70 bg-f18202 color_F2F2F2" @click="writeBLECharacteristicValue">æå°</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import mixBule from '@/mixins/Blue.js' |
| | | export default { |
| | | mixins: [mixBule], |
| | | data() { |
| | | return { |
| | | list: [], |
| | | active: null, |
| | | printNum:'', |
| | | ware: { |
| | | num: '' |
| | | }, |
| | | wareRules: { |
| | | num: [{ |
| | | required: true, |
| | | message: 'æå°æ°éä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }] |
| | | } |
| | | } |
| | | }, |
| | | props: { |
| | | numberShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | printlist: { |
| | | type: Object, |
| | | default:{} |
| | | } |
| | | }, |
| | | onReady() { |
| | | this.$refs.wareRef.setRules(this.wareRules) |
| | | }, |
| | | created() { |
| | | this.tomy() |
| | | this.openBluetoothAdapter() |
| | | }, |
| | | mounted() { |
| | | // console.log(this.printlist) |
| | | }, |
| | | methods: { |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="width height140rpx fixed transformX left50 bottom0 background_fff padding40_0"> |
| | | <button v-if="singforShow" :disabled="disabled" class=" width90 bg-blue transition" |
| | | @click="$emit('submit')">{{singfoTitle}}</button> |
| | | <view v-if="garmenShow" class="flex justify-around transition"> |
| | | <button class="width70 bg-f18202 color_F2F2F2" @click="$emit('submit')">{{garmenTitle}}</button> |
| | | <button class="width25 bg-grey" @click="$emit('reset')">éç½®</button> |
| | | |
| | | </view> |
| | | <view v-if="subShow" class="flex justify-around transition" style="padding-top: 10rpx;"> |
| | | <button class="width95 bg-f18202" @click="$emit('submit')">{{garmenTitle}}</button> |
| | | </view> |
| | | <view v-if="empTytowerShow" class="flex justify-around transition"> |
| | | <button class="width45 bg-grey" @click="$emit('reset')">{{cleaningTitle}}</button> |
| | | <button class="width45 bg-f18202 color_F2F2F2" @click="$emit('submit')">{{garmenTitle}}</button> |
| | | </view> |
| | | <view v-if="cleaningShow" class="flex justify-around transition"> |
| | | <button class="width45 bg-grey" @click="$emit('allsubmit')">{{allTitle}}</button> |
| | | <button class="width45 bg-f18202 color_F2F2F2" @click="$emit('submit')">{{cleaningTitle}}</button> |
| | | </view> |
| | | <view v-if="printShow" class="flex justify-around transition"> |
| | | <button class="width45 bg-f18202" @click="$emit('submit')">{{garmenTitle}}</button> |
| | | <button class="width25 bg-ffe6c9" @click="$emit('print')">æå°</button> |
| | | <button class="width25 bg-grey" @click="$emit('reset')">éç½®</button> |
| | | </view> |
| | | <view v-if="issueShow" class="flex justify-around transition"> |
| | | <button class="width33 bg-ffe6c9 " @click="$emit('issue')">{{issueTitle}}</button> |
| | | <button class="width33 bg-grey" @click="$emit('reset')">{{restTiltle}}</button> |
| | | <button class="width25 bg-f18202 color_F2F2F2" @click="$emit('submit')">{{subTitle}}</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "buttonModal", |
| | | data() { |
| | | return { |
| | | |
| | | }; |
| | | }, |
| | | props: { |
| | | singforShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | empTytowerShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | disabled: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | garmenShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | subShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | cleaningShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | printShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | issueShow: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | garmenTitle: { |
| | | type: String, |
| | | defaultr: 'ä¸çº¿ç»å®' |
| | | }, |
| | | singfoTitle: { |
| | | type: String, |
| | | default: 'ç¾æ¶' |
| | | }, |
| | | resetTitle: { |
| | | type: String, |
| | | default: 'å
¨é¨å é¤' |
| | | }, |
| | | allTitle: { |
| | | type: String, |
| | | defaultr: 'å
¨é¨åºåº' |
| | | }, |
| | | cleaningTitle: { |
| | | type: String, |
| | | defaultr: 'åºåº' |
| | | }, |
| | | issueTitle: { |
| | | type: String, |
| | | defaultr: 'é®é¢æ è®°' |
| | | }, |
| | | restTiltle: { |
| | | type: String, |
| | | defaultr: 'éç½®' |
| | | }, |
| | | subTitle: { |
| | | type: String, |
| | | defaultr: 'ç¡®å®' |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | // uni-button{ |
| | | // // font-size: 16px !important; |
| | | // } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <u-popup v-model="showPop" mode="bottom"> |
| | | <view class="cascader-head"> |
| | | <text class="cancel" @click="cancelSelect">åæ¶</text> |
| | | <text class="title">è¯·éæ©</text> |
| | | <text class="confirem" @click="confiremSelect">ç¡®å®</text> |
| | | </view> |
| | | <view class="cascader"> |
| | | <scroll-view class="item" style="width: 300rpx;" scroll-y="true"> |
| | | <view class="item-block" v-for="(item, index) in selectData" :key="index" v-if="selectData.length > 0" |
| | | :style="{ 'background': current == index ? 'white' : '#f8f8f8', 'color': current == index ? '#f44c01' : '#333333' }" |
| | | @click="selectOne(index,item)"> |
| | | <view style="flex: 1;"> |
| | | <text>{{ item.name }}</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view class="item" style="background-color: white;" scroll-y="true"> |
| | | <block v-if="selectData.length > 0 && selectData[current].children.length > 0"> |
| | | <view class="item-cont" v-for="(item, index) in selectData[current].children" :key="index"> |
| | | <view class="item-cate" @click="selectTwo(item, index)"> |
| | | <text class="title" :style="{ 'color': item.active ? '#f44c01' : '#333333' }">{{ |
| | | item.name || '空æºåºå·'}}</text> |
| | | <u-icon v-if="item.active" name="checkmark" color="#f44c01" size="28"></u-icon> |
| | | </view> |
| | | <view class="item-cellbox" v-if="item.children && item.children.length > 0"> |
| | | <text class="item-cell" v-for="(it, ix) in item.children" :key="ix" |
| | | @click="selectTree(index, it, ix)" |
| | | v-bind:style="{ color: it.active ? '#ffffff' : '#666666', background: it.active ? 'red' : '#f8f8f8' }">{{ |
| | | it.name }} </text> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </scroll-view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { selectOneQuery, selectTwoQuery,selectTwoQueryDelivery, selectThereQuery } from '../api/sort.js' |
| | | export default { |
| | | name: 'cascader', |
| | | props: { |
| | | activeIndex: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | cascaderShow: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | //å¼å¯ä¸çº§éæ© |
| | | oneSelect: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | //å¼å¯äºçº§éæ© |
| | | twoSelect: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | //labelå±ç¤ºå段 |
| | | labelName: { |
| | | type: String, |
| | | default: 'name' |
| | | }, |
| | | //valueéä¸å段 |
| | | valueName: { |
| | | type: String, |
| | | default: 'id' |
| | | }, |
| | | //åå§éä¸å¼ |
| | | selectValue: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | //éæ©æ°æ® |
| | | cascaderData: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | titleData: { |
| | | type: Object, |
| | | default: () => { |
| | | return {}; |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | current: this.activeIndex, |
| | | showPop: this.cascaderShow, |
| | | selectDataCopy: JSON.parse(JSON.stringify(this.cascaderData)), |
| | | selectData: JSON.parse(JSON.stringify(this.cascaderData)), |
| | | paramD : {} |
| | | } |
| | | }, |
| | | watch: { |
| | | cascaderData(val, oldVal) { |
| | | this.selectData = JSON.parse(JSON.stringify(val)); |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.defaultSelect() |
| | | }, |
| | | methods: { |
| | | // åå§åéä¸ |
| | | defaultSelect() { |
| | | let selectData = this.selectData; |
| | | console.log(this.selectValue) |
| | | for (let i = 0; i < this.selectValue.length; i++) { |
| | | for (let y = 0; y < selectData.length; y++) { |
| | | if (selectData[y][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].active = true; |
| | | break; |
| | | } else { |
| | | for (let x = 0; x < selectData[y].children.length; x++) { |
| | | if (selectData[y].children[x][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].children[x].active = true; |
| | | selectData[y].child_active = true; |
| | | break; |
| | | } else { |
| | | for (let z = 0; z < selectData[y].children[x].children.length; z++) { |
| | | if (selectData[y].children[x].children[x][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].children[x].children[x].active = true; |
| | | selectData[y].child_active = true; |
| | | selectData[y].children[x].child_active = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return; |
| | | }, |
| | | show(pram) { |
| | | this.showPop = true; |
| | | this.paramD = pram |
| | | // this.defaultSelect() |
| | | // if (this.selectData.length > 0) { |
| | | // return |
| | | // } |
| | | // è·å1çº§æ°æ® 0712 |
| | | selectOneQuery(pram).then((res) => { |
| | | if (res.code == 200) { |
| | | // æµè¯ |
| | | // if(res.data.length==0){ |
| | | // res.data = ['gx12','gx23'] |
| | | // } |
| | | let arr = [] |
| | | if(res.data.length>0){ |
| | | res.data.map((item,index)=>{ |
| | | if(item =='' || item == null){ |
| | | return |
| | | } |
| | | arr.push({ |
| | | id: item, |
| | | name: item, |
| | | children: [] |
| | | }) |
| | | }) |
| | | |
| | | this.selectData = arr |
| | | this.getTwoData(0,this.selectData[0],pram) |
| | | this.current = 0 |
| | | } |
| | | |
| | | |
| | | } |
| | | }).catch((err)=>{ |
| | | this.showPop = false |
| | | }) |
| | | }, |
| | | |
| | | // è·åäºçº§æ°æ® |
| | | getTwoData(index,item) { |
| | | if (this.selectData[index].children.length <= 0) { |
| | | let fnName = selectTwoQuery // 忣-æ¥å·¥åºæºåºå· |
| | | if(this.titleData.typeInterface && this.titleData.typeInterface=='KingtingDo'){ |
| | | fnName = selectTwoQueryDelivery // kittingåè´§-æ¥å·¥åºæºåºå· |
| | | } |
| | | fnName({ |
| | | 'process': item.id, |
| | | 'locationType':this.titleData.locationType, // 1:A3åºåï¼2:A1-A2åºå |
| | | 'type':this.titleData.type, |
| | | ...this.paramD |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | // æµè¯ |
| | | // if(res.data.length==0){ |
| | | // res.data = ['jq12','jq23','jq23','jq23','jq23','jq23','jq23','jq23last'] |
| | | // } |
| | | let arr = [] |
| | | if(res.data.length>0){ |
| | | res.data.map((item,index)=>{ |
| | | arr.push({ |
| | | id: item, |
| | | name: item, |
| | | children: [] |
| | | }) |
| | | }) |
| | | this.selectData[index].children = arr |
| | | } |
| | | |
| | | } |
| | | }).catch(()=>{ |
| | | this.showPop = false |
| | | }) |
| | | } |
| | | }, |
| | | // è·å3çº§æ°æ® |
| | | getThereData(index,item) { |
| | | console.log("selectTwo") |
| | | if (this.selectData[this.current].children[index].children.length <= 0) { |
| | | selectThereQuery({ |
| | | 'process': this.selectData[this.current].id, |
| | | "equipmentList": [item.id], |
| | | 'locationType':this.titleData.locationType, // 1:A3åºåï¼2:A1-A2åºå |
| | | 'type':this.titleData.type |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | // æµè¯ |
| | | // if(res.data.length==0){ |
| | | // res.data = ['kwh12','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23'] |
| | | // } |
| | | let arr = [] |
| | | if(res.data.length>0){ |
| | | res.data.map((item,index)=>{ |
| | | arr.push({ |
| | | id: item, |
| | | name: item |
| | | }) |
| | | }) |
| | | this.selectData[this.current].children[index].children = arr |
| | | } |
| | | } |
| | | }).catch(()=>{ |
| | | this.showPop = false |
| | | }) |
| | | } |
| | | }, |
| | | hide() { |
| | | this.showPop = false; |
| | | }, |
| | | checkboxChange(e, index) { |
| | | let oneData = this.selectData[index]; |
| | | oneData.active = e.value; |
| | | this.$set(this.selectData, index, oneData); |
| | | }, |
| | | selectOne(index,item) { |
| | | console.log("selectOne") |
| | | this.current = index; |
| | | |
| | | // æ¸
空ææéä¸çåºä½ |
| | | this.selectData.map((it)=>{ |
| | | if(it.children&&it.children.length>0){ |
| | | it.children.map((itInner)=>{ |
| | | itInner.active = false |
| | | if(itInner.children&&itInner.children.length>0){ |
| | | itInner.children.map((itInner2)=>{ |
| | | itInner2.active = false |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | // endæ¸
空ææéä¸çåºä½ |
| | | this.getTwoData(index,item) // è·åäºçº§æ°æ® |
| | | }, |
| | | |
| | | selectTwo(item, index) { |
| | | |
| | | // this.getThereData(index,item) |
| | | if (!this.twoSelect) return; |
| | | let twoData = this.selectData[this.current]; |
| | | if (twoData.children[index].active) { |
| | | twoData.children[index] = { |
| | | ...item, |
| | | active: false |
| | | }; |
| | | //夿å
å¼ä¸æ¯å¦å·²æ éä¸ |
| | | let status = false; |
| | | twoData.children.map((cell) => { |
| | | if (cell.active) { |
| | | status = true; |
| | | } |
| | | if (cell.children && cell.children.length > 0) { |
| | | cell.children.map((it) => { |
| | | if (it.active) { |
| | | status = true; |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | if (!status) { |
| | | twoData.child_active = false; |
| | | } |
| | | } else { |
| | | twoData.children[index] = { |
| | | ...item, |
| | | active: true |
| | | }; |
| | | twoData.child_active = true; |
| | | } |
| | | this.$set(this.selectData, this.current, twoData); |
| | | }, |
| | | selectTree(Pindex, item, index) { |
| | | console.log(this.selectData) |
| | | let twoData = this.selectData[this.current]; |
| | | let treeData = twoData.children[Pindex]; |
| | | if (treeData.children[index].active) { |
| | | treeData.children[index] = { |
| | | ...item, |
| | | active: false |
| | | }; |
| | | //夿å
å¼ä¸æ¯å¦å·²æ éä¸ |
| | | let status = false; |
| | | treeData.children.map((cell) => { |
| | | if (cell.active) { |
| | | status = true; |
| | | } |
| | | }) |
| | | if (!status) { |
| | | treeData.child_active = false; |
| | | } |
| | | //æ¥æ¾ç¶çº§ä¸é¢æ¯å¦æéä¸é¡¹ |
| | | let pstatus = false; |
| | | twoData.children.map((cell) => { |
| | | if (cell.active) { |
| | | pstatus = true; |
| | | } |
| | | cell.children.map((it) => { |
| | | if (it.active) { |
| | | pstatus = true; |
| | | } |
| | | }) |
| | | }) |
| | | if (!pstatus) { |
| | | twoData.child_active = false; |
| | | } |
| | | } else { |
| | | // åé |
| | | treeData.children.forEach((item)=>{ |
| | | item.active = false |
| | | }) |
| | | // endåé |
| | | treeData.children[index] = { |
| | | ...item, |
| | | active: true |
| | | }; |
| | | //æ è¯ç¶çº§ä¸é¢éä¸ |
| | | treeData.child_active = true; |
| | | twoData.child_active = true; |
| | | } |
| | | this.$set(this.selectData, this.current, twoData); |
| | | }, |
| | | cancelSelect() { |
| | | this.selectData = JSON.parse(JSON.stringify(this.selectDataCopy)) |
| | | this.showPop = false; |
| | | }, |
| | | // 确认 |
| | | confiremSelect() { |
| | | let data = this.selectData; |
| | | let select_ids = []; |
| | | let select_names = []; |
| | | let equipmentList = []; |
| | | data.map((item, index) => { |
| | | if (item.active) { |
| | | select_ids.push(item[this.valueName]); |
| | | select_names.push(item[this.labelName]); |
| | | } |
| | | if (item.children && item.children.length > 0) { |
| | | item.children.map((it, ix) => { |
| | | if(it.child_active){ |
| | | equipmentList.push(it.id) |
| | | } |
| | | if (it.active) { |
| | | select_ids.push(it[this.valueName]); |
| | | select_names.push(it[this.labelName]); |
| | | } |
| | | if (it.children && it.children.length > 0) { |
| | | it.children.map((itc, ixc) => { |
| | | if (itc.active) { |
| | | select_ids.push(itc[this.valueName]); |
| | | select_names.push(itc[this.labelName]); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | let select_ids2=Array.from(new Set(select_ids));//å»é |
| | | let select_names2=Array.from(new Set(select_names));//å»é |
| | | // åé |
| | | console.log(select_ids2.length) |
| | | // if(select_ids2.length<=0){ |
| | | // uni.showToast({ |
| | | // title: 'è¯·éæ©æºåºå·', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }); |
| | | // return |
| | | // } |
| | | // if(select_ids2.length!=1){ |
| | | // uni.showToast({ |
| | | // title: 'ä¸åæºå¨ï¼åªè½éä¸ä¸ªç¸åçåºä½ç¼å·', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }); |
| | | // return |
| | | // } |
| | | this.$emit('confirem', { |
| | | // select_ids: select_ids2, |
| | | // select_names: select_names2, |
| | | process:this.selectData[this.current].id, |
| | | // equipmentList:equipmentList |
| | | equipmentList:select_ids2 |
| | | |
| | | }); |
| | | this.showPop = false; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .cascader-head { |
| | | height: 100rpx; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 0 30rpx; |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | |
| | | .cancel { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | |
| | | .title { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | } |
| | | |
| | | .confirem { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .cascader { |
| | | display: flex; |
| | | flex-direction: row; |
| | | height: 400px; |
| | | background-color: #F8F8F8; |
| | | .item { |
| | | height: 400px; |
| | | |
| | | .item-block { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | height: 50px; |
| | | padding: 10px; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | } |
| | | |
| | | .item-list { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | height: 50px; |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .item-cont { |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding: 10px; |
| | | |
| | | .item-cate { |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | padding: 10px 0; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .title { |
| | | font-size: 15px; |
| | | color: #333333; |
| | | } |
| | | } |
| | | |
| | | .item-cellbox { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | |
| | | .item-cell { |
| | | width: 80px; |
| | | height: 30px; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-color: #F8F8F8; |
| | | margin-right: 8px; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | margin-top: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | } |
| | | |
| | | .active { |
| | | color: '#ffffff'; |
| | | background: '#fa3534'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- ä»
ä¾å货页é¢ä½¿ç¨ --> |
| | | <template> |
| | | <view> |
| | | <u-popup v-model="showPop" mode="bottom"> |
| | | <view class="cascader-head"> |
| | | <text class="cancel" @click="cancelSelect">åæ¶</text> |
| | | <text class="title">è¯·éæ©</text> |
| | | <text class="confirem" @click="confiremSelect">ç¡®å®</text> |
| | | </view> |
| | | <view class="cascader"> |
| | | <scroll-view class="item" style="width: 300rpx;" scroll-y="true"> |
| | | <view class="item-block" v-for="(item, index) in selectData" :key="index" v-if="selectData.length > 0" |
| | | :style="{ 'background': current == index ? 'white' : '#f8f8f8', 'color': current == index ? '#f44c01' : '#333333' }" |
| | | @click="selectOne(index,item)"> |
| | | <view style="flex: 1;"> |
| | | <text>{{ item.name }}</text> |
| | | </view> |
| | | </view> |
| | | </scroll-view> |
| | | <scroll-view class="item" style="background-color: white;" scroll-y="true"> |
| | | <block v-if="selectData.length > 0 && selectData[current].children.length > 0"> |
| | | <view class="item-cont" v-for="(item, index) in selectData[current].children" :key="index"> |
| | | <view class="item-cate" @click="selectTwo(item, index)"> |
| | | <text class="title" :style="{ 'color': item.active ? '#f44c01' : '#333333' }">{{ |
| | | item.name || '空æºåºå·'}}</text> |
| | | <u-icon v-if="item.active" name="checkmark" color="#f44c01" size="28"></u-icon> |
| | | </view> |
| | | <view class="item-cellbox" v-if="item.children && item.children.length > 0"> |
| | | <text class="item-cell" v-for="(it, ix) in item.children" :key="ix" |
| | | @click="selectTree(index, it, ix)" |
| | | v-bind:style="{ color: it.active ? '#ffffff' : '#666666', background: it.active ? 'red' : '#f8f8f8' }">{{ |
| | | it.name }} </text> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </scroll-view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { selectOneQuery, selectTwoQuery,selectTwoQueryDelivery, selectThereQuery } from '../api/sort.js' |
| | | export default { |
| | | name: 'cascader', |
| | | props: { |
| | | activeIndex: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | cascaderShow: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | //å¼å¯ä¸çº§éæ© |
| | | oneSelect: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | //å¼å¯äºçº§éæ© |
| | | twoSelect: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | //labelå±ç¤ºå段 |
| | | labelName: { |
| | | type: String, |
| | | default: 'name' |
| | | }, |
| | | //valueéä¸å段 |
| | | valueName: { |
| | | type: String, |
| | | default: 'id' |
| | | }, |
| | | //åå§éä¸å¼ |
| | | selectValue: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | //éæ©æ°æ® |
| | | cascaderData: { |
| | | type: Array, |
| | | default: () => { |
| | | return []; |
| | | } |
| | | }, |
| | | titleData: { |
| | | type: Object, |
| | | default: () => { |
| | | return {}; |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | current: this.activeIndex, |
| | | showPop: this.cascaderShow, |
| | | selectDataCopy: JSON.parse(JSON.stringify(this.cascaderData)), |
| | | selectData: JSON.parse(JSON.stringify(this.cascaderData)), |
| | | paramD : {} |
| | | } |
| | | }, |
| | | watch: { |
| | | cascaderData(val, oldVal) { |
| | | this.selectData = JSON.parse(JSON.stringify(val)); |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.defaultSelect() |
| | | }, |
| | | methods: { |
| | | // åå§åéä¸ |
| | | defaultSelect() { |
| | | let selectData = this.selectData; |
| | | console.log(this.selectValue) |
| | | for (let i = 0; i < this.selectValue.length; i++) { |
| | | for (let y = 0; y < selectData.length; y++) { |
| | | if (selectData[y][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].active = true; |
| | | break; |
| | | } else { |
| | | for (let x = 0; x < selectData[y].children.length; x++) { |
| | | if (selectData[y].children[x][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].children[x].active = true; |
| | | selectData[y].child_active = true; |
| | | break; |
| | | } else { |
| | | for (let z = 0; z < selectData[y].children[x].children.length; z++) { |
| | | if (selectData[y].children[x].children[x][this.valueName] == this.selectValue[i]) { |
| | | selectData[y].children[x].children[x].active = true; |
| | | selectData[y].child_active = true; |
| | | selectData[y].children[x].child_active = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return; |
| | | }, |
| | | show(pram) { |
| | | this.showPop = true; |
| | | this.paramD = pram |
| | | |
| | | // this.defaultSelect() |
| | | // if (this.selectData.length > 0) { |
| | | // return |
| | | // } |
| | | |
| | | this.selectData = [ |
| | | { |
| | | id: 'æºåºå·', |
| | | name: 'æºåºå·', |
| | | children: [] |
| | | } |
| | | ] |
| | | this.getTwoData(0,this.selectData[0],pram) |
| | | this.current = 0 |
| | | |
| | | |
| | | // è·å1çº§æ°æ® 0712 |
| | | // selectOneQuery(pram).then((res) => { |
| | | // if (res.code == 200) { |
| | | // // æµè¯ |
| | | // // if(res.data.length==0){ |
| | | // // res.data = ['gx12','gx23'] |
| | | // // } |
| | | // let arr = [] |
| | | // if(res.data.length>0){ |
| | | // res.data.map((item,index)=>{ |
| | | // if(item =='' || item == null){ |
| | | // return |
| | | // } |
| | | // arr.push({ |
| | | // id: item, |
| | | // name: item, |
| | | // children: [] |
| | | // }) |
| | | // }) |
| | | // console.log( 222222222222222222222) |
| | | // console.log( arr) |
| | | // this.selectData = arr |
| | | // this.getTwoData(0,this.selectData[0],pram) |
| | | // this.current = 0 |
| | | // } |
| | | // } |
| | | // }).catch((err)=>{ |
| | | // this.showPop = false |
| | | // }) |
| | | }, |
| | | |
| | | // è·åäºçº§æ°æ® |
| | | getTwoData(index,item) { |
| | | if (this.selectData[index].children.length <= 0) { |
| | | let fnName = selectTwoQuery // 忣-æ¥å·¥åºæºåºå· |
| | | if(this.titleData.typeInterface && this.titleData.typeInterface=='KingtingDo'){ |
| | | fnName = selectTwoQueryDelivery // kittingåè´§-æ¥å·¥åºæºåºå· |
| | | } |
| | | fnName({ |
| | | // 'process': item.id, |
| | | 'locationType':this.titleData.locationType, // 1:A3åºåï¼2:A1-A2åºå |
| | | 'type':this.titleData.type, |
| | | ...this.paramD |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | // æµè¯ |
| | | // if(res.data.length==0){ |
| | | // res.data = ['jq12','jq23','jq23','jq23','jq23','jq23','jq23','jq23last'] |
| | | // } |
| | | let arr = [] |
| | | if(res.data.length>0){ |
| | | res.data.map((item,index)=>{ |
| | | arr.push({ |
| | | id: item, |
| | | name: item, |
| | | children: [] |
| | | }) |
| | | }) |
| | | this.selectData[index].children = arr |
| | | } |
| | | |
| | | } |
| | | }).catch(()=>{ |
| | | this.showPop = false |
| | | }) |
| | | } |
| | | }, |
| | | // è·å3çº§æ°æ® |
| | | getThereData(index,item) { |
| | | console.log("selectTwo") |
| | | if (this.selectData[this.current].children[index].children.length <= 0) { |
| | | selectThereQuery({ |
| | | 'process': this.selectData[this.current].id, |
| | | "equipmentList": [item.id], |
| | | 'locationType':this.titleData.locationType, // 1:A3åºåï¼2:A1-A2åºå |
| | | 'type':this.titleData.type |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | // æµè¯ |
| | | // if(res.data.length==0){ |
| | | // res.data = ['kwh12','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23','kwh23'] |
| | | // } |
| | | let arr = [] |
| | | if(res.data.length>0){ |
| | | res.data.map((item,index)=>{ |
| | | arr.push({ |
| | | id: item, |
| | | name: item |
| | | }) |
| | | }) |
| | | this.selectData[this.current].children[index].children = arr |
| | | } |
| | | } |
| | | }).catch(()=>{ |
| | | this.showPop = false |
| | | }) |
| | | } |
| | | }, |
| | | hide() { |
| | | this.showPop = false; |
| | | }, |
| | | checkboxChange(e, index) { |
| | | let oneData = this.selectData[index]; |
| | | oneData.active = e.value; |
| | | this.$set(this.selectData, index, oneData); |
| | | }, |
| | | selectOne(index,item) { |
| | | console.log("selectOne") |
| | | this.current = index; |
| | | |
| | | // æ¸
空ææéä¸çåºä½ |
| | | this.selectData.map((it)=>{ |
| | | if(it.children&&it.children.length>0){ |
| | | it.children.map((itInner)=>{ |
| | | itInner.active = false |
| | | if(itInner.children&&itInner.children.length>0){ |
| | | itInner.children.map((itInner2)=>{ |
| | | itInner2.active = false |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | // endæ¸
空ææéä¸çåºä½ |
| | | this.getTwoData(index,item) // è·åäºçº§æ°æ® |
| | | }, |
| | | |
| | | selectTwo(item, index) { |
| | | |
| | | // this.getThereData(index,item) |
| | | if (!this.twoSelect) return; |
| | | let twoData = this.selectData[this.current]; |
| | | if (twoData.children[index].active) { |
| | | twoData.children[index] = { |
| | | ...item, |
| | | active: false |
| | | }; |
| | | //夿å
å¼ä¸æ¯å¦å·²æ éä¸ |
| | | let status = false; |
| | | twoData.children.map((cell) => { |
| | | if (cell.active) { |
| | | status = true; |
| | | } |
| | | if (cell.children && cell.children.length > 0) { |
| | | cell.children.map((it) => { |
| | | if (it.active) { |
| | | status = true; |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | if (!status) { |
| | | twoData.child_active = false; |
| | | } |
| | | } else { |
| | | twoData.children[index] = { |
| | | ...item, |
| | | active: true |
| | | }; |
| | | twoData.child_active = true; |
| | | } |
| | | this.$set(this.selectData, this.current, twoData); |
| | | }, |
| | | selectTree(Pindex, item, index) { |
| | | console.log(this.selectData) |
| | | let twoData = this.selectData[this.current]; |
| | | let treeData = twoData.children[Pindex]; |
| | | if (treeData.children[index].active) { |
| | | treeData.children[index] = { |
| | | ...item, |
| | | active: false |
| | | }; |
| | | //夿å
å¼ä¸æ¯å¦å·²æ éä¸ |
| | | let status = false; |
| | | treeData.children.map((cell) => { |
| | | if (cell.active) { |
| | | status = true; |
| | | } |
| | | }) |
| | | if (!status) { |
| | | treeData.child_active = false; |
| | | } |
| | | //æ¥æ¾ç¶çº§ä¸é¢æ¯å¦æéä¸é¡¹ |
| | | let pstatus = false; |
| | | twoData.children.map((cell) => { |
| | | if (cell.active) { |
| | | pstatus = true; |
| | | } |
| | | cell.children.map((it) => { |
| | | if (it.active) { |
| | | pstatus = true; |
| | | } |
| | | }) |
| | | }) |
| | | if (!pstatus) { |
| | | twoData.child_active = false; |
| | | } |
| | | } else { |
| | | // åé |
| | | treeData.children.forEach((item)=>{ |
| | | item.active = false |
| | | }) |
| | | // endåé |
| | | treeData.children[index] = { |
| | | ...item, |
| | | active: true |
| | | }; |
| | | //æ è¯ç¶çº§ä¸é¢éä¸ |
| | | treeData.child_active = true; |
| | | twoData.child_active = true; |
| | | } |
| | | this.$set(this.selectData, this.current, twoData); |
| | | }, |
| | | cancelSelect() { |
| | | this.selectData = JSON.parse(JSON.stringify(this.selectDataCopy)) |
| | | this.showPop = false; |
| | | }, |
| | | // 确认 |
| | | confiremSelect() { |
| | | let data = this.selectData; |
| | | let select_ids = []; |
| | | let select_names = []; |
| | | let equipmentList = []; |
| | | data.map((item, index) => { |
| | | if (item.active) { |
| | | select_ids.push(item[this.valueName]); |
| | | select_names.push(item[this.labelName]); |
| | | } |
| | | if (item.children && item.children.length > 0) { |
| | | item.children.map((it, ix) => { |
| | | if(it.child_active){ |
| | | equipmentList.push(it.id) |
| | | } |
| | | if (it.active) { |
| | | select_ids.push(it[this.valueName]); |
| | | select_names.push(it[this.labelName]); |
| | | } |
| | | if (it.children && it.children.length > 0) { |
| | | it.children.map((itc, ixc) => { |
| | | if (itc.active) { |
| | | select_ids.push(itc[this.valueName]); |
| | | select_names.push(itc[this.labelName]); |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | let select_ids2=Array.from(new Set(select_ids));//å»é |
| | | let select_names2=Array.from(new Set(select_names));//å»é |
| | | // åé |
| | | console.log(select_ids2.length) |
| | | // if(select_ids2.length<=0){ |
| | | // uni.showToast({ |
| | | // title: 'è¯·éæ©æºåºå·', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }); |
| | | // return |
| | | // } |
| | | // if(select_ids2.length!=1){ |
| | | // uni.showToast({ |
| | | // title: 'ä¸åæºå¨ï¼åªè½éä¸ä¸ªç¸åçåºä½ç¼å·', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }); |
| | | // return |
| | | // } |
| | | this.$emit('confirem', { |
| | | // select_ids: select_ids2, |
| | | // select_names: select_names2, |
| | | process:this.selectData[this.current].id, |
| | | // equipmentList:equipmentList |
| | | equipmentList:select_ids2 |
| | | |
| | | }); |
| | | this.showPop = false; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .cascader-head { |
| | | height: 100rpx; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | padding: 0 30rpx; |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | |
| | | .cancel { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | |
| | | .title { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | } |
| | | |
| | | .confirem { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | } |
| | | |
| | | .cascader { |
| | | display: flex; |
| | | flex-direction: row; |
| | | height: 400px; |
| | | background-color: #F8F8F8; |
| | | .item { |
| | | height: 400px; |
| | | |
| | | .item-block { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | height: 50px; |
| | | padding: 10px; |
| | | font-size: 14px; |
| | | color: #333333; |
| | | } |
| | | |
| | | .item-list { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | height: 50px; |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | padding: 0 10px; |
| | | } |
| | | |
| | | .item-cont { |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding: 10px; |
| | | |
| | | .item-cate { |
| | | border-bottom: 1rpx solid #e6e6e6; |
| | | padding: 10px 0; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .title { |
| | | font-size: 15px; |
| | | color: #333333; |
| | | } |
| | | } |
| | | |
| | | .item-cellbox { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | |
| | | .item-cell { |
| | | width: 80px; |
| | | height: 30px; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-color: #F8F8F8; |
| | | margin-right: 8px; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | margin-top: 10px; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | } |
| | | |
| | | .active { |
| | | color: '#ffffff'; |
| | | background: '#fa3534'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // 鲿¢å¤ç夿¬¡ç¹å» |
| | | function noMultipleClicks(methods, info) { |
| | | // methodsæ¯éè¦ç¹å»åéè¦æ§è¡ç彿°ï¼ infoæ¯ç¹å»éè¦ä¼ çåæ° |
| | | let that = this; |
| | | if (that.noClick) { |
| | | // ç¬¬ä¸æ¬¡ç¹å» |
| | | that.noClick = false; |
| | | if (info && info !== '') { |
| | | // infoæ¯æ§è¡å½æ°éè¦ä¼ çåæ° |
| | | methods(info); |
| | | } else { |
| | | methods(); |
| | | } |
| | | setTimeout(() => { |
| | | that.noClick = true; |
| | | }, 1500) |
| | | } else { |
| | | // è¿éæ¯éå¤ç¹å»ç夿 |
| | | } |
| | | } |
| | | //å¯¼åº |
| | | export default { |
| | | noMultipleClicks, //ç¦æ¢å¤æ¬¡ç¹å» |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | class Bluetooth { |
| | | |
| | | constructor() { |
| | | this.isOpenBle = false; |
| | | this.deviceId = ""; |
| | | this.serviceId = ""; |
| | | this.writeId = ""; |
| | | this.notifyId = ""; |
| | | this.openBluetoothAdapter(); |
| | | } |
| | | |
| | | showToast(title) { |
| | | uni.showToast({ |
| | | title: title, |
| | | icon: 'none', |
| | | 'duration': 2000 |
| | | }); |
| | | } |
| | | |
| | | openBluetoothAdapter() { |
| | | return new Promise((resolve, reject) => { |
| | | uni.openBluetoothAdapter({ |
| | | success: res => { |
| | | this.isOpenBle = true; |
| | | this.showToast("åå§åèçæ¨¡åæå"); |
| | | resolve(res); |
| | | }, |
| | | fail: err => { |
| | | this.showToast(`åå§åèçæ¨¡å失败` + JSON.stringify(err)); |
| | | reject(err); |
| | | }, |
| | | }); |
| | | }); |
| | | |
| | | } |
| | | |
| | | startBluetoothDevicesDiscovery() { |
| | | if (!this.isOpenBle) { |
| | | this.showToast(`åå§åèçæ¨¡å失败`) |
| | | return; |
| | | } |
| | | |
| | | let self = this; |
| | | uni.showLoading({ |
| | | title: 'èçæç´¢ä¸' |
| | | }) |
| | | return new Promise((resolve, reject) => { |
| | | setTimeout(() => { |
| | | uni.startBluetoothDevicesDiscovery({ |
| | | success: res => { |
| | | resolve(res) |
| | | }, |
| | | fail: res => { |
| | | self.showToast(`æç´¢è®¾å¤å¤±è´¥` + JSON.stringify(err)); |
| | | reject(err); |
| | | } |
| | | }) |
| | | }, 300); |
| | | }); |
| | | } |
| | | |
| | | stopBluetoothDevicesDiscovery() { |
| | | let self = this; |
| | | return new Promise((resolve, reject) => { |
| | | uni.stopBluetoothDevicesDiscovery({ |
| | | success: e => { |
| | | uni.hideLoading(); |
| | | }, |
| | | fail: e => { |
| | | uni.hideLoading(); |
| | | self.showToast(`忢æç´¢èç设å¤å¤±è´¥` + JSON.stringify(err)); |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | createBLEConnection() { |
| | | //设å¤deviceId |
| | | let deviceId = this.deviceId; |
| | | let self = this; |
| | | |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: '设å«è¿æ¥ä¸,请ç¨å...' |
| | | }) |
| | | console.log(this.deviceId); |
| | | return new Promise((resolve, reject) => { |
| | | uni.createBLEConnection({ |
| | | deviceId, |
| | | success: (res) => { |
| | | console.log("res:createBLEConnection " + JSON.stringify(res)); |
| | | resolve(res) |
| | | }, |
| | | fail: err => { |
| | | uni.hideLoading(); |
| | | self.showToast(`忢æç´¢èç设å¤å¤±è´¥` + JSON.stringify(err)); |
| | | reject(err); |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | //è·åèçè®¾å¤æææå¡(service) |
| | | getBLEDeviceServices() { |
| | | let _serviceList = []; |
| | | let deviceId = this.deviceId; |
| | | let self = this; |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceServices({ |
| | | deviceId, |
| | | success: res => { |
| | | for (let service of res.services) { |
| | | if (service.isPrimary) { |
| | | this.getBLEDeviceCharacteristics(deviceIdï¼res.services[i].uuid) |
| | | |
| | | _serviceList.push(service); |
| | | return |
| | | } |
| | | } |
| | | uni.hideLoading(); |
| | | console.log("_serviceList: " + JSON.stringify(_serviceList)); |
| | | resolve(_serviceList) |
| | | }, |
| | | fail: err => { |
| | | uni.hideLoading(); |
| | | self.showToast(`è·å设å¤Services` + JSON.stringify(err)); |
| | | reject(err); |
| | | }, |
| | | }) |
| | | }, 500); |
| | | }); |
| | | } |
| | | |
| | | //è·åèçè®¾å¤æä¸ªæå¡ä¸ææç¹å¾å¼(characteristic) |
| | | getBLEDeviceCharacteristics(deviceIdï¼serviceId) { |
| | | let deviceId = deviceId; |
| | | let serviceId = serviceId; |
| | | |
| | | let self = this; |
| | | return new Promise((resolve, reject) => { |
| | | uni.getBLEDeviceCharacteristics({ |
| | | deviceId, |
| | | serviceId, |
| | | success: res => { |
| | | for (let _obj of res.characteristics) { |
| | | //è·ånotify |
| | | if (_obj.properties.notify) { |
| | | self.notifyId = _obj.uuid; |
| | | uni.setStorageSync('notifyId', self.notifyId); |
| | | } |
| | | //è·åwriteId |
| | | if (_obj.properties.write) { |
| | | self.writeId = _obj.uuid; |
| | | uni.setStorageSync('writeId', self.writeId); |
| | | } |
| | | } |
| | | |
| | | //console.log("res:getBLEDeviceCharacteristics " + JSON.stringify(res)); |
| | | let result = { |
| | | 'notifyId': self.notifyId, |
| | | 'writeId': self.writeId |
| | | }; |
| | | self.showToast(`è·åæå¡ä¸ææç¹å¾å¼OK,${JSON.stringify(result)}`); |
| | | resolve(result) |
| | | }, |
| | | fail: err => { |
| | | self.showToast(`getBLEDeviceCharacteristics` + JSON.stringify(err)); |
| | | reject(err); |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | //æå¼è龿¥ |
| | | closeBLEConnection() { |
| | | let deviceId = this.deviceId; |
| | | uni.closeBLEConnection({ |
| | | deviceId, |
| | | success(res) { |
| | | console.log(res) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | notifyBLECharacteristicValue() { |
| | | let deviceId = this.deviceId; |
| | | let serviceId = this.serviceId; |
| | | let characteristicId = this.notifyId; |
| | | |
| | | uni.notifyBLECharacteristicValueChange({ |
| | | state: true, // å¯ç¨ notify åè½ |
| | | deviceId, |
| | | serviceId, |
| | | characteristicId, |
| | | success(res) { |
| | | uni.onBLECharacteristicValueChange(function(res) { |
| | | |
| | | }); |
| | | }, |
| | | fail(res) { |
| | | console.log('notifyBLECharacteristicValueChange failed:' + res.errMsg); |
| | | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | writeBLECharacteristicValue(buffer) { |
| | | let deviceId = this.deviceId; |
| | | let serviceId = this.serviceId; |
| | | let characteristicId = this.writeId; |
| | | |
| | | console.log("this: " + JSON.stringify(this)); |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | uni.writeBLECharacteristicValue({ |
| | | deviceId, |
| | | serviceId, |
| | | characteristicId, |
| | | value: buffer, |
| | | success(res) { |
| | | console.log('messageåéæå', JSON.stringify(res)); |
| | | resolve(res); |
| | | }, |
| | | fail(err) { |
| | | console.log('messageåé失败', JSON.stringify(err)); |
| | | reject(err); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | closeBluetoothAdapter() { |
| | | uni.closeBluetoothAdapter({ |
| | | success: res => { |
| | | console.log(res) |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //è¥APPå¨ä¹åå·²ææç´¢è¿æä¸ªèç设å¤ï¼å¹¶æå建ç«è¿æ¥ï¼å¯ç´æ¥ä¼ å
¥ä¹åæç´¢è·åç deviceId ç´æ¥å°è¯è¿æ¥è¯¥è®¾å¤ï¼æ éè¿è¡æç´¢æä½ã |
| | | reconnect() { |
| | | (async () => { |
| | | try { |
| | | this.deviceId = this.deviceId || uni.getStorageSync("deviceId"); |
| | | this.serviceId = this.serviceId || uni.getStorageSync("serviceId"); |
| | | |
| | | let result1 = await this.createBLEConnection(); |
| | | console.log("createBLEConnection: " + JSON.stringify(result1)); |
| | | |
| | | let result2 = await this.getBLEDeviceServices(); |
| | | console.log("getBLEDeviceServices: " + JSON.stringify(result2)); |
| | | |
| | | let result3 = await this.getBLEDeviceCharacteristics(); |
| | | console.log("getBLEDeviceCharacteristics: " + JSON.stringify(result3)); |
| | | |
| | | // this.writeId = uni.getStorageSync("writeId"); |
| | | // this.notifyId = uni.getStorageSync("notifyId"); |
| | | } catch (err) { |
| | | console.log("err: " + JSON.stringify(err)); |
| | | } |
| | | |
| | | })(); |
| | | } |
| | | } |
| | | |
| | | export default Bluetooth; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * ä¿®æ¹èªhttps://github.com/song940/node-escpos/blob/master/commands.js |
| | | * ESC/POS _ (Constants) |
| | | */ |
| | | var _ = { |
| | | LF: [0x0a], |
| | | FS: [0x1c], |
| | | FF: [0x0c], |
| | | GS: [0x1d], |
| | | DLE: [0x10], |
| | | EOT: [0x04], |
| | | NUL: [0x00], |
| | | ESC: [0x1b], |
| | | EOL: '\n', |
| | | }; |
| | | |
| | | /** |
| | | * [FEED_CONTROL_SEQUENCES Feed control sequences] |
| | | * @type {Object} |
| | | */ |
| | | _.FEED_CONTROL_SEQUENCES = { |
| | | CTL_LF: [0x0a], // Print and line feed |
| | | CTL_GLF: [0x4a, 0x00], // Print and feed paper (without spaces between lines) |
| | | CTL_FF: [0x0c], // Form feed |
| | | CTL_CR: [0x0d], // Carriage return |
| | | CTL_HT: [0x09], // Horizontal tab |
| | | CTL_VT: [0x0b], // Vertical tab |
| | | }; |
| | | |
| | | _.CHARACTER_SPACING = { |
| | | CS_DEFAULT: [0x1b, 0x20, 0x00], |
| | | CS_SET: [0x1b, 0x20] |
| | | }; |
| | | |
| | | _.LINE_SPACING = { |
| | | LS_DEFAULT: [0x1b, 0x32], |
| | | LS_SET: [0x1b, 0x33] |
| | | }; |
| | | |
| | | /** |
| | | * [HARDWARE Printer hardware] |
| | | * @type {Object} |
| | | */ |
| | | _.HARDWARE = { |
| | | HW_INIT: [0x1b, 0x40], // Clear data in buffer and reset modes |
| | | HW_SELECT: [0x1b, 0x3d, 0x01], // Printer select |
| | | HW_RESET: [0x1b, 0x3f, 0x0a, 0x00], // Reset printer hardware |
| | | }; |
| | | |
| | | /** |
| | | * [CASH_DRAWER Cash Drawer] |
| | | * @type {Object} |
| | | */ |
| | | _.CASH_DRAWER = { |
| | | CD_KICK_2: [0x1b, 0x70, 0x00], // Sends a pulse to pin 2 [] |
| | | CD_KICK_5: [0x1b, 0x70, 0x01], // Sends a pulse to pin 5 [] |
| | | }; |
| | | |
| | | /** |
| | | * [MARGINS Margins sizes] |
| | | * @type {Object} |
| | | */ |
| | | _.MARGINS = { |
| | | BOTTOM: [0x1b, 0x4f], // Fix bottom size |
| | | LEFT: [0x1b, 0x6c], // Fix left size |
| | | RIGHT: [0x1b, 0x51], // Fix right size |
| | | }; |
| | | |
| | | /** |
| | | * [PAPER Paper] |
| | | * @type {Object} |
| | | */ |
| | | _.PAPER = { |
| | | PAPER_FULL_CUT: [0x1d, 0x56, 0x00], // Full cut paper |
| | | PAPER_PART_CUT: [0x1d, 0x56, 0x01], // Partial cut paper |
| | | PAPER_CUT_A: [0x1d, 0x56, 0x41], // Partial cut paper |
| | | PAPER_CUT_B: [0x1d, 0x56, 0x42], // Partial cut paper |
| | | }; |
| | | |
| | | /** |
| | | * [TEXT_FORMAT Text format] |
| | | * @type {Object} |
| | | */ |
| | | _.TEXT_FORMAT = { |
| | | TXT_NORMAL: [0x1b, 0x21, 0x00], // Normal text |
| | | TXT_2HEIGHT: [0x1b, 0x21, 0x10], // Double height text |
| | | TXT_2WIDTH: [0x1b, 0x21, 0x20], // Double width text |
| | | TXT_4SQUARE: [0x1b, 0x21, 0x30], // Double width & height text |
| | | |
| | | TXT_UNDERL_OFF: [0x1b, 0x2d, 0x00], // Underline font OFF |
| | | TXT_UNDERL_ON: [0x1b, 0x2d, 0x01], // Underline font 1-dot ON |
| | | TXT_UNDERL2_ON: [0x1b, 0x2d, 0x02], // Underline font 2-dot ON |
| | | TXT_BOLD_OFF: [0x1b, 0x45, 0x00], // Bold font OFF |
| | | TXT_BOLD_ON: [0x1b, 0x45, 0x01], // Bold font ON |
| | | TXT_ITALIC_OFF: [0x1b, 0x35], // Italic font ON |
| | | TXT_ITALIC_ON: [0x1b, 0x34], // Italic font ON |
| | | |
| | | TXT_FONT_A: [0x1b, 0x4d, 0x00], // Font type A |
| | | TXT_FONT_B: [0x1b, 0x4d, 0x01], // Font type B |
| | | TXT_FONT_C: [0x1b, 0x4d, 0x02], // Font type C |
| | | |
| | | TXT_ALIGN_LT: [0x1b, 0x61, 0x00], // Left justification |
| | | TXT_ALIGN_CT: [0x1b, 0x61, 0x01], // Centering |
| | | TXT_ALIGN_RT: [0x1b, 0x61, 0x02], // Right justification |
| | | }; |
| | | |
| | | /** |
| | | * [BARCODE_FORMAT Barcode format] |
| | | * @type {Object} |
| | | */ |
| | | _.BARCODE_FORMAT = { |
| | | BARCODE_TXT_OFF: [0x1d, 0x48, 0x00], // HRI barcode chars OFF |
| | | BARCODE_TXT_ABV: [0x1d, 0x48, 0x01], // HRI barcode chars above |
| | | BARCODE_TXT_BLW: [0x1d, 0x48, 0x02], // HRI barcode chars below |
| | | BARCODE_TXT_BTH: [0x1d, 0x48, 0x03], // HRI barcode chars both above and below |
| | | |
| | | BARCODE_FONT_A: [0x1d, 0x66, 0x00], // Font type A for HRI barcode chars |
| | | BARCODE_FONT_B: [0x1d, 0x66, 0x01], // Font type B for HRI barcode chars |
| | | |
| | | BARCODE_HEIGHT: function (height) { // Barcode Height [1-255] |
| | | return [0x1d, 0x68, height]; |
| | | }, |
| | | BARCODE_WIDTH: function (width) { // Barcode Width [2-6] |
| | | return [0x1d, 0x77, width]; |
| | | }, |
| | | BARCODE_HEIGHT_DEFAULT: [0x1d, 0x68, 0x64], // Barcode height default:100 |
| | | BARCODE_WIDTH_DEFAULT: [0x1d, 0x77, 0x01], // Barcode width default:1 |
| | | |
| | | BARCODE_UPC_A: [0x1d, 0x6b, 0x00], // Barcode type UPC-A |
| | | BARCODE_UPC_E: [0x1d, 0x6b, 0x01], // Barcode type UPC-E |
| | | BARCODE_EAN13: [0x1d, 0x6b, 0x02], // Barcode type EAN13 |
| | | BARCODE_EAN8: [0x1d, 0x6b, 0x03], // Barcode type EAN8 |
| | | BARCODE_CODE39: [0x1d, 0x6b, 0x04], // Barcode type CODE39 |
| | | BARCODE_ITF: [0x1d, 0x6b, 0x05], // Barcode type ITF |
| | | BARCODE_NW7: [0x1d, 0x6b, 0x06], // Barcode type NW7 |
| | | BARCODE_CODE93: [0x1d, 0x6b, 0x48], // Barcode type CODE93 |
| | | BARCODE_CODE128: [0x1d, 0x6b, 0x49], // Barcode type CODE128 |
| | | }; |
| | | |
| | | /** |
| | | * [IMAGE_FORMAT Image format] |
| | | * @type {Object} |
| | | */ |
| | | _.IMAGE_FORMAT = { |
| | | S_RASTER_N: [0x1d, 0x76, 0x30, 0x00], // Set raster image normal size |
| | | S_RASTER_2W: [0x1d, 0x76, 0x30, 0x01], // Set raster image double width |
| | | S_RASTER_2H: [0x1d, 0x76, 0x30, 0x02], // Set raster image double height |
| | | S_RASTER_Q: [0x1d, 0x76, 0x30, 0x03], // Set raster image quadruple |
| | | }; |
| | | |
| | | /** |
| | | * [BITMAP_FORMAT description] |
| | | * @type {Object} |
| | | */ |
| | | _.BITMAP_FORMAT = { |
| | | BITMAP_S8: [0x1b, 0x2a, 0x00], |
| | | BITMAP_D8: [0x1b, 0x2a, 0x01], |
| | | BITMAP_S24: [0x1b, 0x2a, 0x20], |
| | | BITMAP_D24: [0x1b, 0x2a, 0x21] |
| | | }; |
| | | |
| | | /** |
| | | * [GSV0_FORMAT description] |
| | | * @type {Object} |
| | | */ |
| | | _.GSV0_FORMAT = { |
| | | GSV0_NORMAL: [0x1d, 0x76, 0x30, 0x00], |
| | | GSV0_DW: [0x1d, 0x76, 0x30, 0x01], |
| | | GSV0_DH: [0x1d, 0x76, 0x30, 0x02], |
| | | GSV0_DWDH: [0x1d, 0x76, 0x30, 0x03] |
| | | }; |
| | | |
| | | /** |
| | | * [BEEP description] |
| | | * @type {string} |
| | | */ |
| | | _.BEEP = [0x1b, 0x42]; // Printer Buzzer pre hex |
| | | |
| | | /** |
| | | * [COLOR description] |
| | | * @type {Object} |
| | | */ |
| | | |
| | | _.COLOR = { |
| | | 0: [0x1b, 0x72, 0x00], // black |
| | | 1: [0x1b, 0x72, 0x01] // red |
| | | }; |
| | | |
| | | /** |
| | | * [exports description] |
| | | * @type {[type]} |
| | | */ |
| | | module.exports = _; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /*! |
| | | * gbk.js v0.3.0 |
| | | * Homepage https://github.com/cnwhy/GBK.js |
| | | * License MIT |
| | | */ |
| | | |
| | | (function (global, factory) { |
| | | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : |
| | | typeof define === 'function' && define.amd ? define(factory) : |
| | | (global.GBK = factory()); |
| | | }(this, (function () { 'use strict'; |
| | | |
| | | var GBK = function (gbk_us) { |
| | | var arr_index = 0x8140; //33088; |
| | | var gbk = { |
| | | decode: function (arr) { |
| | | var str = ""; |
| | | for (var n = 0, max = arr.length; n < max; n++) { |
| | | var code = arr[n] & 0xff; |
| | | if (code > 0x80 && n + 1 < max) { |
| | | var code1 = arr[n + 1] & 0xff; |
| | | if(code1 >= 0x40){ |
| | | code = gbk_us[(code << 8 | code1) - arr_index]; |
| | | n++; |
| | | } |
| | | } |
| | | str += String.fromCharCode(code); |
| | | } |
| | | return str; |
| | | }, |
| | | encode: function (str) { |
| | | str += ''; |
| | | var gbk = []; |
| | | var wh = '?'.charCodeAt(0); //gbk䏿²¡æçåç¬¦çæ¿æ¢ç¬¦ |
| | | for (var i = 0; i < str.length; i++) { |
| | | var charcode = str.charCodeAt(i); |
| | | if (charcode < 0x80) gbk.push(charcode); |
| | | else { |
| | | var gcode = gbk_us.indexOf(charcode); |
| | | if (~gcode) { |
| | | gcode += arr_index; |
| | | gbk.push(0xFF & (gcode >> 8), 0xFF & gcode); |
| | | } else { |
| | | gbk.push(wh); |
| | | } |
| | | } |
| | | } |
| | | return gbk; |
| | | } |
| | | }; |
| | | return gbk; |
| | | }; |
| | | var gbk = GBK; |
| | | |
| | | var URI = function(GBK){ |
| | | var passChars = '!\'()*-._~'; |
| | | var otherPassChars = '#$&+,/:;=?@'; |
| | | function getModue(passChars){ |
| | | var passBits = passChars.split('').sort(); |
| | | var isPass = function (s){ |
| | | return ~passChars.indexOf(s) || /[0-9a-zA-Z]/.test(s) |
| | | }; |
| | | return { |
| | | encode:function(str){ |
| | | return (str+'').replace(/./g,function(v){ |
| | | if(isPass(v)) return v; |
| | | var bitArr = GBK.encode(v); |
| | | for(var i=0; i<bitArr.length; i++){ |
| | | bitArr[i] = '%' + ('0'+bitArr[i].toString(16)).substr(-2).toUpperCase(); |
| | | } |
| | | return bitArr.join(''); |
| | | }) |
| | | }, |
| | | decode:function(enstr){ |
| | | enstr = String(enstr); |
| | | var outStr = ''; |
| | | for(var i=0; i<enstr.length; i++){ |
| | | var char = enstr.charAt(i); |
| | | if(char === '%' && i + 2 < enstr.length){ |
| | | var code1 = parseInt(enstr.substr(i+1,2),16); |
| | | if(!isNaN(code1)){ |
| | | var _i = i + 2; |
| | | if(code1 > 0x80){ |
| | | var code2; |
| | | if(enstr.charAt(_i+1) === '%'){ |
| | | code2 = parseInt(enstr.substr(_i+2,2),16); |
| | | _i += 3; |
| | | }else{ |
| | | code2 = enstr.charCodeAt(_i+1); |
| | | _i += 1; |
| | | } |
| | | if(code2 >= 0x40){ |
| | | i = _i; |
| | | outStr += GBK.decode([code1,code2]); |
| | | continue; |
| | | } |
| | | }else{ |
| | | i += 2; |
| | | outStr += String.fromCharCode(code1); |
| | | continue; |
| | | } |
| | | } |
| | | } |
| | | outStr += char; |
| | | } |
| | | return outStr; |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | var URIComponent = getModue(passChars); |
| | | var URI = getModue(passChars + otherPassChars); |
| | | |
| | | return { |
| | | encodeURI:URI.encode, |
| | | decodeURI:URI.decode, |
| | | encodeURIComponent:URIComponent.encode, |
| | | decodeURIComponent:URIComponent.decode |
| | | } |
| | | }; |
| | | |
| | | var src = function (gbk_us){ |
| | | var gbk$$1 = gbk(gbk_us); |
| | | gbk$$1.URI = URI(gbk$$1); |
| | | return gbk$$1; |
| | | }; |
| | | |
| | | // å¤è¿å¶è½¬æ¢åçæ°åè¿å彿° æå»ºæ¶ä¼æ¿æ¢å ä½ç¬¦ |
| | | var Fn_Hex_decode = function decode(){ |
| | | var n = 0, str = arguments[0]; |
| | | for (var i = 0,w = str.length; i < w; i++) { |
| | | var code = str.charCodeAt(i); |
| | | if(code < 38 || code > 126) return NaN; |
| | | n += (code - 38) * Math.pow(89, w - i - 1); |
| | | } |
| | | return n; |
| | | }; |
| | | |
| | | // è§£åUnicodeç¼ç åç¬¦ä¸²å½æ° æå»ºæ¶ä¼æ¿æ¢å ä½ç¬¦ |
| | | var Fn_unzip = function unZip() { |
| | | return arguments[0].replace(/\x23(\d+)\x24/g, function (a, b) { |
| | | return Array(+b + 4).join("#"); |
| | | }) |
| | | .replace(/[\x26-\x7e]\x25[\x26-\x7e]/g,function(a){ |
| | | var b = a.substr(0,1).charCodeAt(0) |
| | | ,e = a.substr(2).charCodeAt(0) |
| | | ,str = String.fromCharCode(b); |
| | | while(b++<e){ |
| | | str += String.fromCharCode(b); |
| | | } |
| | | return str; |
| | | }) |
| | | .replace(/\x23/g, "###") |
| | | .replace(/([\x26-\x7e]{2})\x21([\x26-\x7e\x23]+)(?:\x20|$)/g, function (all, hd, dt) { |
| | | return dt.replace(/./g, function (a) { |
| | | if (a != "#") { |
| | | return hd + a; |
| | | } else { |
| | | return a; |
| | | } |
| | | }); |
| | | }) |
| | | .match(/.../g); |
| | | }; |
| | | |
| | | function gbkArray(gbkArr) { |
| | | var data = []; |
| | | for (var i = 0x81, k = 0; i <= 0xfe; i++) { |
| | | if (data.length > 0) { |
| | | data.length += 0x40 + 1; |
| | | } |
| | | for (var j = 0x40; j <= 0xfe; j++) { |
| | | if ( |
| | | (j == 0x7f) || |
| | | ((0xa1 <= i && i <= 0xa7) && j <= 0xa0) || |
| | | ((0xaa <= i && i <= 0xaf) && j >= 0xa1) || |
| | | (0xf8 <= i && j >= 0xa1) |
| | | ) { |
| | | data.push(undefined); |
| | | continue; |
| | | } |
| | | var hex = gbkArr[k++]; |
| | | var key = Fn_Hex_decode(hex); |
| | | data.push(key ? key : undefined); |
| | | } |
| | | } |
| | | return data; |
| | | } |
| | | var GBK$1 = function () { |
| | | // çææGBkç¼ç é¡ºæ°æåçç¼ç æ å°æ°ç» æå»ºæ¶ä¼æ¿æ¢ zipData çå ä½ç¬¦ |
| | | var gbk_us = gbkArray(Fn_unzip("(T!HJ%LUX]e%gilotuwy{} (U!)-%/137>BDGHO%RTUW%\\_a%jl%rtw} (V!*+-0%27>C%EHJ%MP%R\\`cdfn%ptvz{} (W!()*,/3%579;=%CFGM%QWX\\^cdg%ilnprtvy%} (X!&')%.468CDHJLMOPSTWY%\\_b%dg%ilnprtuwxz%|~ (Y!'(*+-469%=?%GI%KO%RT%V[%_bdikmnptuy{}~ (Z!&')+%-/%;>@ACE%GKMNPR%TW[_%ikmo%rt%vy%{} ([!'(%+-%024%;=%BD%LO%QSTX%[]^`%ce%y{} (\\!()+%/1%7:%LN%SU%WY%cf%im%prt%xz%~ (]!&'%*-%/1%68%EG%cgloqs%uwx|%~ (^!')%-/02356;>FJKOPRSVWZ%]_`dfi%kmor%vyz (_!'+%-124%68;=@ACE%MOQRUVX%]_adegjqwx|~ (`!&)*-%/689;%=?%ADFIKLNOVX^%cehilmoq%uwyz|%~ (a!'),%/124%=?AD%HJ%PRSU%[]e%ho%qu%~ (b!()*,%.024%79;%=?A%FH%KM%WY%`c%ei%loq%tvy%| (c!'*+-.1346%8:%<>%GKLOQSUZ%\\_cghjltwy{| (d!(,/1%4679=>@D%JLMOQRTVWZ]`%ce%km%pr%tvy%} (e!+,-/0279%;>?DQW[%]_bdhqu%wy (f!&().47:;>ACEFHIKMP%SU^a%egikm%tx}~ (g!)*,.02%58<>BCGI%MPY[]`%bdeginpuv (h!(*-2%6=>A%CF%KMPRT%WZ\\%`deg%ln%qswxz{} (i!&+-%/1%469;>@AD%HJ%MP%TV%Y[\\abdh%mrsvx~ (j!&,%.0235%7:;>@%FH%PRTVXZ\\_%cf%hjkn%puw%{~ (k!').04578;=?%CFI%NQRTW%^`acdg%ilmo%ru%wz|~ (l!&(*%,.%9=%ACDHIK%OQS%U[%^`%ce%hk%ru%{~ (m!&')%79%CE%KM%PR%^`%hjkmnqxz%~ (n!&(*+./2%478<%>ACG%WYZ\\%^`%cgmnp%txy{} (o!&'%)+,.5%9;<EFHJOQS%UWX[%]`%dj%mp%tw%} (p!&'%)/2469%;=?%AC%KN%TVWZ[]`aefhk%mo%vxz%} (q!&'(,-/024%69%;=?%AC%EG%IK%NPSTV%Z\\%`b%eg%tv%| (r!&'(*+-%/1%57%<>%BE%UWZ\\^%`b%il%ps%ux%~ (s!&)%:<%?A%CE%OQ%SU%bd%ilnpqstvwy%~ (t!&')+,.%246%9=>ACDF%ILNRVXY[\\ac%fiklprsvxy (u!&(%,.013%?BDG%IK%MRVXY[%^abeg%jl%ostyz}~ (v!'(%,.013%9;%=@%CIJMOR%VXZ[]%_a%lnp%rtv~ (w!&(%+-/%24%689<=?A%CE%KNPR%VX%Z\\%`bcf%oq%tv%|~ (x!&'(*+-%5:;=%@B%SU%[^%km%svxy{%~ (y!&(),%1346%:<>@B%DF%HKMNPQSU%Y[%qs%~ (z!()%ACEFH%OQ%_bfnpqwx{}~ ({!&)+-%023569=ADEG%IKMV^%`c%fhinq%swxz (|!&'%)+%-/2%:>@ADEG%KMO%U[\\^`acefi%lnpquwy|%~ (}!&(+-%02%578:%<HIKLQRW%Y[%]_%bdgil%ruw%} (~!'(%*,/%35%7:;>?AI%MP%TVZ%\\^`be%hjlnoq%vx%} )&!&'%+-%356:<>?ABD%MO%TWX[%`b%fhj%mopr%vx{}~ )'!&)%-/%69%@BCG%QSTVX%bdghj%mo%{}~ )(!&'%9;%=?%WY%eg%mo%{} ))!'(+,2458=>@%DGHLOQ%SUVZ[_f%mp%twxz%~ )*!()-%025%:<%BE%IKLNOR%`dfhmp%rtwx{%} )+!(.137%:>%BD%HJP%SU%^a%fjkm%pr%} ),!&(%02568%:B%DFI%KMOQSVWY%[^%aehikmo%uxz%|~ )-!&'%358=%@B%DGIKLORSVX%Z\\^a%cgjq%suwxz~ ).!&(%+-%2467:%?AC%FI%MRSUVY^%`e%gijmnpqstwz{}~ )/!&()+,.9%;=>BCEIJLPQT%V^%`b%fh%loprv%|~ )0!'(*,-/%1457%:>?GJKMNPWY%[^%acdg%jlnp%ruwz{}~ )1!')*.035%79:=%DG%IL%PR%TVWY[^a%ejqruwx{%~ )2!&)%,.1%37%;=%@B%EHILO%QS%eg%nprtvwy%{}~ )3!&'%*,%/1%47%=?%BDF%XZ[]%ac%jl%txy{%~ )4!&'%+-%24%68%<>A%EHJ%Z\\%ik%su%z|~ )5!/058%:<?B%EGIK%NQRT%X^`%bfklq%suvx%~ )6!'(+4578:;=>@D%FH%KN%SW\\_%afijlmp%su%wy%{} )7!(*+-59;?GHJKNTUZ\\_b%ejm%pt%wyz|%~ )8!&(%*-78:=%?ABD%ILMO%RUXY[b%eg%nqu%wy{%} )9!'(*%-014%79;%>CEIK%MOQ%WY\\^cgijmnqsuw%{} ):!&')%+02%46%<>AC%GJKM%PRTVX%[]bce%ilmpqt%y|~ );!()%+-%/14%9;%?ABDFHIOQ%WY[%]_%ce%lnp%rt%} )<!()%.035%=@ADEG%JL%PR%UWX\\^%acfhj%lnpqs%y|~ )=!'(%*-%13%579;%SU%\\^%eg%km%xz%~ )>!'(+%.2578;%?ABEFHIKM%ORSUWZ%\\_`b%eh%jlnpqs%~ )?!&'(*%,/%146%8:<?@BDEHJLNPS%Z\\]`%bdi%lorsu%wz%~ )@!&'(*,-34;%>ABD%HJMNP%RTVY%[_%ac%egj%mor%uwy{| )A!'(%+-/024%:=>@AHIK%NPRSUWY%]a%cehik%mo%qsuvx%{}~ )B!&')%,/%35%=@%DF%JL%OQ%TV%oqu%|~ )C!&(%-/34689;?%EJLMO%QTV%XZ\\^%ceglnpqt%wyz|} )D!&)*,/0279:<%@BG%IKLPQSVY[]%`beghjkmoq%tv%y{~ )E!'+%-0258:=>@E%LNQ%Za%cgkmopr%tvwyz~ )F!()%/14%79@CEGHK%OQ%SU%[^%dg%imnrz~ )G!'),0%9DF%MOR%Z\\^a%hj%ln%pr%{}~ )H!&*%-/2357%@BD%IKMO%RTUWXZ\\%`bce%nps%uw%y|~ )I!&'(*%,.%2479;%FI%KM%TVWY%[]%`b%dfhik%{}~ )J!'(*+.01346%9;<>?A%EIJL%NPRTY%[]%befhil%uxy{}~ )K!&()+,.%02%68%?ACEG%IK%PR%TW%bd%gi%rtv%~ )L!&(%36%;=?%DFH%KMO%QS%Y\\%`bce%ln%twy%} )M!&'(*%46%<>?A%CE%GI%QSV%Z\\%ce%lnq%~ )N!&'%~ )O!&'%178:%CE%HJM%OQ%TVWZ\\]_%jl%sz{}~ )P!&'%136%9>AEG%JMNP%RU%Y[%bd%koq%wy|} )Q!&'%*,.018:<%@B%IL%NP%RTV%XZ%\\^%dh%lnrw|%~ )R!'*,2%48:=>@%CEFJ%LOR%VX%Z]_%aijl%nr%vxz|~ )S!&(%*-.2589;<?@C%FHJ%LNPVZ]^b%ehn%qt%vy{%} )T!&'-%/1249;<>ABGINTUWXZ[]%_bd%fh%kmqrt%y{}~ )U!()+,02%46;<>@EHLQ%TWY[]^`acdg%il%oqru%wy%} )V!&')*-.02359%=?EHOPSTVWYZ\\%ad%fk%mp%su%xz}~ )W!&),-/1%479:<>%@BDG%NP%SUY\\]_bcefhilp%rtvxz{} )X!&'(*,%36%=@%CFHJKM%OQ%[]^`%nq%suxy{%~ )Y!&)%/1%35689;<>@AC%FHKMPQTV%X[%^`%bd%fhjnpqs%u{ )Z!&)%24%79%@B%DFGI%MO%QU%^`%bd%gkmoqstv%|~ )[!&'%+.%024%=?%ACE%GI%KM%RU%WY[%]_ac%ik%mpqu%~ )\\!&'(*%-/%35%?ABDEG%LNP%UW%]`%jlo%z}~ )]!&'%DF%MP%VX%hj%ln%~ )^!&()+%8:%EIL%ORT%VX\\%_a%cf%hj%lnrsuvy%~ )_!&'%,246%8<@AF%IKM%Y\\^%`b%eglpr%xz|%~ )`!'(%14%8:;=@D%NP%W[%^`%mo%rtvx%~ )a!&'%+-/%359%=?%AD%GIKLN%SU%Y[%^`%ce%gj%nq%wy%{}~ )b!&'%)+-%/1%9;%DF%JM%VX%[]_%df%oq%|~ )c!&'%:<%EGIK%MP%RXZ\\^%dg%il%oq%suvxz|~ )d!()*-/%25689;%=@%BGHJ%NQSUVX%ce%psv%xz )e!&'%,1%35%8;=?%BDFG 'W!,-. &(+&.'&-~&'u'W!/1 ')>.<V')!@PBCFG 'W!@A4%;BC<= &'~&(!Kk '/!J;< '.!~| '/!>= '.u'/!K. '0`'/!94 '1t'0T'/!?Bu`\\Q1t '0!)* '/!xy2IH ';!*( &'}')!\\] '+{.;U&'q.>!&' ')Z&'t',5':!GF '9!eiha`;:ML ')e'-!XVWY 'W?'-!67%?#3$ '6!-.%@ '5!rs%~ '6!&'%, '5!^_%g## ']!67%?## '-!&'%1## .;!RST .>+.;!VW%~ .<!&'%U .>)'W!mn%~ 'X!&'%f#8$t%~ 'Y!&'%p#5$ &0!=>%MO%U#5$]%mo%u#4$ .9!89<=BC@AD%G##>?:;4#67#6$ &1!cd%hTi%~ &2!&'%)#12$*%/K0%I#10$ &.!()7 ')!=?O_ '+}',('-!\\]%_ '/!)37fz{ '0z'8!CD%ft%~ '9!&'%)-%/VW|%~ ':!&J '0P'W!>IJ#8$ &(!uU &+7&(T&).&(]&)6&(\\&)F&(a&+9&(`&)h&(g&+;&(f&*-&(n&+=&(m&+!?ACE &(!p^ &,a-Qc&)!_c -Qd&,q#1$'Z!&'%J#18$ 'W!MN%U '^`'a!@AN%PSv 'b!'*+. .93.>!(*# ',@']G#'):#0$'Yv'X!no 'Y!wx 'W2'X!pq .9!LM%UW%Z\\%ik%n -R!*+%6 'W3#10$'7!LM%~ '8!&'%>#12$ )e!HIKN%SVWabei%lnp%uw%y{%~ )f!'+%-23679%;@BCEFHIM%PS%_abdf%ik%rt%~ )g!(*%79%=?@BDFGIJL%OQ%TV%XZ[]%bdfgkn%prsv%y{}~ )h!&'(,-/3%9;%>@B%EGIK%MO%RT%cehil%or%z}~ )i!&'%)+,/13579:?%CE%HJ%\\^`eh%tvwy%} )j!'(%,.13%57%9;<>@%JLN%UY%hj%~ )k!&')%1357;=%CF%IKN%TV%Y[%bdfhj%mqstv%z|} )l!'+1369:<>%ACDFGJM%PR%UZ%ad%fh%npr%tw%{}~ )m!&()+%.0%2479<?@BFJ%NQZ[^_c%ejopr%uw{}~ )n!'(*%,047%:=>@%CEFHIMOQ%TVX%Z\\%_aeg%ilnrswyz|} )o!()+%-/346%=@%EGI%MOQ%TV%\\^%`b%iklnq%suw{|~ )p!&()+-.013%<>%FHILN%WYZ\\ (iC*r5(pM)89(gy(h[(gk)p*)o>*A;)s|*9E)ui)cO*s5*ux)R/({@(Z*)7s)B.(~d*4~)F{*42)@K)pg(_l)>Q)a|*2'*Jb(\\0(u2)4?)\\@*9t)8])5n(eJ(f+)|s(^7)mH))<)7>*Yr*ua)6M*2O(o@*t|*0J)cV)oo)E[)op);L(XR*W~)7F)z6)?3)hN);2)66*8L*xa)Dd)cf)61)76(Wo)k9(cY(a_*.d*b,))v)G`)Jk*6R*.k)HS)vH*E'*oR([d*U/*:L*4b(bm*L>(a&)p!]`bdelnrsu%wy%} )q!&'%-035%7:;=?@BCEFJLN%X[%^ac%egj%lnp%ty{}~ )r!&)+%-/%69%@C *B**t=(Yf(qR*{F({T)6!th )BK*V+++A)b})DT)um)12(c!`& *^r*4P*Wv*mT(Z=)e4(t-)1k)`B*K0(tz*:])Cj)}<)&|*/8)l*)TJ*[[*`!0t +3')Q4*cF)}()-`)v**@.*A<)Q!596 ))I)*v)nD*q<)>X),G).P*_0(s@*7;*a^*rQ*v?*_J*/W*X,)5](YH(e5(cm*_!9:< *a,)F:)-N*6j*JF+,1)3Y(`E)nu)-P)?.)\\_)Z'({u);N(^!A| )EP(T_)yA*{Q)_5)r!DE%GKNPQT%_a%ch%jm%rvwz%~ )s!&'%,/12469;%=?@BD%HJLN%Z\\%df%hk%or )mi)*e)gu*=C)<Z)7R*mh)T7(ci(b+):n*mu)~O(Wj))c*8V*5A*6\\)Wn)Sx*~=)8f(ck(hL*JC(pj(TS))K)Ow*'H*bn)/H)=:)f/*KF)D5)5i*W{)rS*Zw*eB)-M*=?*@y*z>(dx*E0)PD)1!mh )^Z*:;*8Q(Vg)SU*Bu)<z*)0)Ks)C7*;^(dK)}j(Y0(^X)UG(}G*[b):1(e&*;!AK )Eq)v7);C(|=(~@))6*TK)70)F'*V,):_)9r*G2*{`*T{*/a*nL(V;*q_*y+)@U)f))s!tvx}~ )t!&')*,.%18%=?@C%EHJNPSU%WY]_`cdf%hjkrtv%y{}~ )u!&')+-/04%8:%EK%RT%WY%_ (nv(|{)*'*p'([V*3}(d8)>Y)lB(i*(ZQ*Y,)6G*mQ)C[(ky)[T))*(f9)^m*^P)62)<Q)9[)-_)[n*bz*7\\*_A(|v)AX).|)S7*r>*Y(*JJ)<>)yh(pX)Lv)5,(fL(UE)z*)1i)[j*T>)6B*`V*~U)y\\(e`)n?)7k(c()Rg*_p),X*~:*2q+3k(Xj(}?*Xd*1T)?G)_?(]j(^~*D_)&Z({W)7'*d@)lq*ZZ)z?)2()~4(V[*/9)rl(TW*7f(`7(_m)M5(d^*[|*n^*sl)YY*rZ)J))u!`abdfgklnp%ruyz|~ )v!')+%28%;=%@BCE%GI%KO%RT%VY%[]%jl%np%tvxy{|~ )w!&'%*,%.0%6 )tu(\\&)se):o*N`(t*):B)(~){E)Ie(W[*8Y(j8(Tx)mR){])*!Qy *q>(`5(f=)^e)9.*n~(oe)@n)Ig*d[(hY)W=*.I*IY)5O*/1)mY*;=)vD*si*_/)2o)kM*T1)Ov(`T*XP)O3*3G*>{(n-(bn(Vb(Ta(_D*(G*d_*&i(YL*[t*&C){b);m)&g(\\**51)nL*(i)W6*1o)D6(zh(|V)vN)<[):r)9b)8<*ns);3*_O)}h)nt)5o(tM(fJ)P2([z)5P))n)P?(Vw*X7*Ji)-i*`f)w!78%<>%GI%MO%]_%cgil%oqt%|~ )x!&)*2457:%=?A%GJL%PSTW%Z\\%_a%c )/R*2s)7/(U&(cd*b~)9p*4J)@/)R5(X()1n)W+*TB),v*Ef)-7)82(^&*;v)G=(_s)8t*[=(ZB(~G)xH(|Z(`J)zZ)1<*a2)pp).B)-{)ov*[a)^J)om)}])s8(_f*ar(qU(X0)Z3*_{)>G)}/)e0)VG*1n(yJ)6x)++(nl*?3)}@))e),\\*`J*/U*y')9:)Y_)ut)_;(^D*uF(p5)l2(W~)l5)+-)1f(u-)Vc)Px)ue(eY*sr(_!>t )9A(eg*mF*Tg*Ys)cW)u{*G_*_~*Tq(e=)x!de%jl%wy%~ )y!&'%*,%047:<=?@BDF%HKLNOQ%VX%Z]`bdfi%oqrtvwy|} )z!&'%)+.%24578:; (TG)q/(eK*m<*xV+2S*o.({Q*S_(T!hb (^x*>m)47(ai)F>(Xy)0D(_.)Ts(^()6Y)?9*rW*UQ*`O)m|*c*)rJ)Q2)dO)eX*T_(qf)r`*XL)DA*oA*3w)+<)Wk(u_)|\\)s{*o<)Pn)?O*/O(q7(]v*qn(|W(s((f,*[g)>a*x_(my*mP)q>*`y)9?(gq(t!@` (o~*\\N)Cs*ZH*8U(`[)1p(qF*F@)&;+0<(YM*x}*Sv(w@)0O(d:)6?*a.*c/*{T)0B*2B(]d*2i(|r*{J)U-(Uy)z!<>@AC%QS%UWY]_%df%oq%uw%~ ){!&'%57%9;A%DHKMO%RT%VYZ_%adgh *X0(e.*0B)}c(WK(U<*qO)T*)h1*C6))N)lg*21)L')t3*mE*-4(_T)_h(e**_e*:q*X))dt*{B)T0(o-*9z)?[*4.)5[*r((uu(W:*S|*.T)>9*=U*uI(iZ*ye*4)(c9*Ta(e}*4>)+5)Sf*X9*9s*d.(f-)Q{(_y*.Q(oB)`C)S,*(9(tq(W8)/1)2K*(Z(Tv(|_)E7*FD)&C*ne*yU)mS)`&*`Z(^{*/^*Sz(to(_W(X=(f*(tQ)>r*4(({,)69)7,*^z)*4)R&)}:(WJ(Ya)CK){!ijmo%qt%xz%~ )|!&'%+-%79%BDEG%JNOQT%Y[]%ehikm%ortvy%{} )}!&'*%,.0135%7;=A )Uj)VM)x`*K6),T)l()6]*^o(Yx*eW)?I*5!Z| )+2*5{*Xt(a0*MY*XK(t3([\\(Vl*qk)cT*6K*Wx(|**S`*r:(uT*/[(g;(ld(kU*TI)>4)JQ*mL)po)Xz)*a)kn)D+)E])|l*3z*Xv)2F)y>)>]*Xc(^T(`4*mU*/y*3x*.L(~C)Wy)DE*&;)o}+&I*6a*0|*),):}*oQ)z^(fN(h7)O^):`)4}+04*4w)m=(a3*uT*>e)Fo*F&*qP*s1*nF(Tp(ea*.s)Fl*Z-*2K)C2)+0*1H)}!CDFH%KMOQS%XZ\\^abgikmprsuw%~ )~!&'(*+./13578:<%?A%GIJL%NQS%VY%[^%`i%kmnp%rt%{}~ *&&(pL*2u)Gq))-)>6(a`)0F+4-(X}*\\H(^8({b),P))1)Re)7[*Wz(^=*m\\(bf)SM*:M)eC(p,)Di*X-(tE*_-*=*(g@)~H(Wk)Sk(zt(vE+2X(eA*Ee*~r*UB*3~)>@*x^(n6*sd(`H)k2(`j(|?)7l*L.(UC)7:)/\\)H{(^?({O(^l*N<)~\\*{[*08)1o)^'*X/(]n)*n*`S)ix*N>(ni)tz)-6+42*qI*^R+'T*TE)oj)Fu)Eh*Z8*X5(`W*^t)Yr)HN*n_*bs(n9)E(*K~*_X(gs*&!'*%-/%246%:=>@%BD%FI%KM%OQRT%XZ%]_a%hj%lopr%wy%~ *'!&')%.124%@B%GK +&)(zy)Us)R-(V9({j*~Q*d7)3v*b5*v{(f/)VX(|0(_p(j**0=*2&)<i)8^)@:)43)0f)`3)R!^P (tU)DR*8J(sT(l|*Uu)QK*bc(uJ*2M(eT)Ue(fy(j=*<3*=2)Fk)y6(g7(X7(ee)pk*V;*qQ)Sa)V[*Xk*L<+0[*X:(l-+1o)my)-l)eL)0A(hN(V<)LG*J?)0+*^Z(go)_Z*Dm+06)U&({F),U*.<(j)(Y8)fG(f@(dP(ZI(ek(g'(U;)//)ib(su*>u*4e*G])e<*(z)XG*'!LM%UW%{~ *(!&'%*.%8:%@CDFI%KPQSV%Y[%]_`d%hjk ),d*DB(h~)6g(V&)SX)5S*9x(h)(c])fQ)Yi)l8(`,(b~*TA)KF)-n)/2)W8(o2)O4)gi)G-*_i*/T)8s)0|(hv)n5*Um)`>)VF({])*j*;g)2s+1b)v}*G@*'0)oy(_c)1v)`u)A3)*;)0&*Tr)^K)86*^s).H)0;*Eo(ms)Pz)0m)35(cX)1`)AV*X?)yu(WU)_k)RN*Sp*TV*.r*;y)@X(wu+'Z)UM)WA*UL)U7(WT)^F*<s)52)1Q*tQ*X')xI(_n(nz(q+)Cx)lu)z\\)yg)~P*(!opr%tvy{~ *)!&'%+/12458%>@%EG%NPQS%`b%vxz%} **!&'(*%,.%4 *3i*{:*`1)\\M*Sb+/q(v`*/!*J (ef)Df)HY*^{*'V*sc(e')/W)mb)Ry(d)(y2*.A)85(_S*55))9*@7)6C(^L(zs(WI)x>(`\\)18)UJ({!{y *S!^m )@+).W*r;(u`*/(*.D(kP)EC(t_(XU({m(aa*;o*xj*X>)l/*mq(Zw)z[(W2)EB*~H(y*)P5)pj(o=(|t)}N*qC)`w(^H*4-*97(uE*/E*;<)HA)Ex)v4)uS)7M)8r)~;(Yv(a+(_B*;e)KQ*g=*ZC*X1*N;*o/)~h(W1**!56%km%tv%~ *+!&'%= ([<*8P(`k*{D)WZ)Xv)VJ),7(\\s(vP(|d)UB)Rf)m**?<)GB(t|*So(c/*dE*rC*AH)I:)w+)`O*4z(V8*bP)UC*~N(v{(mQ):d*nJ)sy(Y.*5E)eM*NL*{O*/u*.x(a@)>T*dI*^!im (eH){\\):L)9])ox)yp*J5*r,)5F(al*9I)G.)DU)9/)rR)|Z)TV*.m*N](vD)5.*Bo*9l)lI(ZO(V_)mI*TO(}O))F)}_)?F*eL(V^)Tz*M2*)~*o'(VY*U3*_l*u^)A;)xR*_b)_n)Ut*+!>?%JL%RT%~ *,!&'%F (}B(as*;[(^.*:|)rB)Af++l(V@)1J*(!nc *.i(V)*R|)A_*xh*uD(r[)>g*o])-h)mm*uA)|!LK (_3)_1){^):I){<*.:)gP*w&(U2)^S(UJ*d&(d_)>L)@0*7!u~ (g9(}6)m>*v2)7B)eE)ma(}J*~C*=-(}E(g+)sw(U+)S\\*37)7<)9&))0(^C*Z!+l *o0(Yz(eB)1g)_.(a()8a+0:(w:(ZV)qw(d-*.|)<2)>&)6L)9P(ZD)cS*NC(_&*S}*.w(o**=/*mZ(^g(ex)&N*,!GH%~ *-!&'%-/%35%9;%P (YS)|P)UV*bg*~Y(iy(gA(cp(gZ),=):H)JF(_b)36(_}(q[(b@(o1)tB)qK)+M)3E*)7)5w)6Z(V6)^p*29)7a)_f*uK(oZ*:I)E{)Hv)vX*xw)yI(sr(g^(eL)W~(]p(`U({Y*Tb*43(i<(p0)0L(o4(f1){@)0)(zd)9_)6c(e@)6&({~)E;(h?){e*:T*dK)+)*Ki(t^(p8)7x*Z6*4s(o:)~2(Y2).v({t)OP(c0)}d)e.)Fy)t4)qv)@@(_((U|)pm(~k){k*?&(tt+'Y([W*-!QR%tv%~ *.!&'%46%8HNUVp~ */!-:KQ_xz|%~ *0!&'%)+.%7:; *{])2N)Xt(oG)@O)8W(n,)7V)6,)+i*qc(of)73(j'*Fc*5u*_4(i_*<m)DJ*XV*@5(x,)FB)7P*&P*q`(^<)\\)*U;):\\*NB)4G*/G)_D)Y})hf)Jc)eh)+`*bT)CU)Uf)8o(at)d'*27(XN(vY*d>)_[)V@(b:(U=*t;*on*A})vM**-(]F(ou)<o*3h*(+)T?)Hr)J-(_*(dN)H))dF+1l*&S)ed)y3)ZR)hg)D3*eG++X)wf*<E*;i(el)FJ(U*(d?(ar)ts(d<(`C([_(Xm(YY*0!>AC%FHK%OS%UWX[]%`b%eghj%qsuw%{}~ *1!&'(*+/12457%=@B%FIJMOQ%SU%XZ\\^%befh%mqr )n-)|8*(B)SS*sS(a\\)j2(h;(Yr*31*<n*_o*oq)+_)/N)VB))`)>V*5c*nX)/})_>*.]*(^(_<)G[*(a*96(Tj*^p*eJ)An(VB*Ti)<V*3'(\\X)m;)bE(|C*_N)[L(Us)</*od)+l)?;(`1*KG)_J(ad)ez)i;)D|)vz*tZ(Tz*bA+,9)Vn(_N*XA(ez)78)gl*=T*t:+3p*mv(Wq*1)(_?)^P*rk(~Y*xf(eC(Vx)Y4)hj)K*)uG*{d)lV(`2)no)U=)F&(^9+4,*3((gD)}P)|,*1!svwy%|~ *2!(*%03%58=%@DEGIPQS%UWYZa%fhjoprtvwz{}~ *3!&+%.02%468%EH%MO%Z *r|(og)7L*r=)JK(vx):a*&5)ZN*rA*9m(cq*xe)+&)^d)9k(cs*DC++5+11)uh*tv*Z=*XB+0v)[D)xU)-9*r<)5J*~>(er*n7(Y,)?g(}!jf */V*DE)R6)-o)gA)Y|*/@)&9)8,(zz)Y~(d+(U^)9X)lb)6d*^X(Wa(Ve)ST*.P*Sw*>'*HJ*0?*`s*n})~d*~k*K}*>G)Tp*~P*.v(uU+1Y)gU)t6*Dv*~!6L (kb(et(pU(U]+1D(ce*_Y*54)ry*{g*F0)Yy*@k)C:)30)Zj*3![^_begj%oqrtv{ *4!'*%,0479:<=?IK%OS%Y\\cdfgjry{} *5!&)%,.%02367@BDF%HJ%VXY[^%`bd%hj *U4*9Y*;@)q2)Qs).d*<y)f>*:s*nt)Q;)si*my(c~*:p(^^)*,*V>*X8(U5)ge)E&)G_*dJ*tM)a4)SO)qI(xT*oB)Q/*0v)@p(|.(v-(x\\*q!7F (W'*=o*?J)Mp)px*o1)f.)H'(zo)qo*dn*uL*)3*`/*U'),b*'|)yP*N?)Sz*F^({})*1)HJ)q`*/6(^a(]r(b1(wD*/F*uM*:E):.)rk*Bv)yJ)X+)+/(uf*@i)^H)Qq)7))pX)>J)1/*qL)@W*H/+/s*nG(ej(g(*U7);~*5!kl%prtx%z} *6!()*-%13%68:<%>ADEG%JSU%Y[]%`bd%iklp%tvwy{}~ *7!&'%+-%25%8=>@%BDF%L )<&*C^)L>*6n)vk);o+'l)6|)Ci*<g(s'+1v)SY)Z_(|<*rB*To)c})E\\)71)d&(V=(v:)Q-(rk)BE)*D(bG)2|)Cf)q.)rM)d,)ze)7i(h<(fT*mS*b)(w7*.M)Qv(U0(uC*2F(tn(cf)l4*s[(m_)81*5<)0U*qH)Vy(ff*{V(^Q(yR*5((u{*tW(ZZ)T:(}A)7I(XB(cN*6M*`>)YR*A*)72)*c)vA)<b)93)/'(w3*dS+/o(}D)8`*2x({4(ig*o!KN )V()1()El)eJ(_P({8*7!MN%[]%_abdg%kn%svx| *8!'(%+./135%:=@D%GINRZ\\]_%cefhjl%np%wy{%~ *9!'(%.0 )7Q)T3)cy)60*ma*.W*5>)UO(^h),A(uA(ak)/D(u@)B-*DD)mC)8;)4[*)F*T^(h8)O9+/u)Pm*B{(fY([M)SR(ic*Y[)cJ))])/G)i>)77)9J)cj)-|)X4)U:)=T)[>)pq)vS)q<)lQ(`>(e8(U@)+4)?c*2`*4Z)6^(g1(`B)_0*Jk*Yx)T6(f|*4^(q**Ky*XT*r`*cz(XK)SI(jW)p_)te)6k)_{)[t)-Q*@D)H[)uX*&Y*6z)CI+0F)8x)v3(oR)tG*t})6!<n (aI)i=)Q7*9!12%48<%?BCGHJL%NPSWZ%]abegijny|} *:!()*-.01347>DGHKPU%XZ%\\^`acdfhj%nxy{~ *;!'(+-.2%;>?CEGLPR (i]*5i)mV)pG(cH)n)(\\y(}F*S)*&)([&)ce*~a*y_)ZA)k8)x9)<4)s3)7f*xq*X+(gl*35(U?(oM*:g*=p)*b(_`)kL*T((}T(oD)TQ*xg(wa)ti+'\\*_|*(E(`p)5m*nT(VZ*<B*>k*=L*?c(p^)Cr(n?)A^)Ub*U<)Bt)]E)C])OL)FI)56(v/(TI(_7)ZE)E^)S=(^B)HL(tm)Oy)lc)&a*5;+3<)?y)w!rk *~[*Xw(~.(UK(W<(f3(tw)tA(lV)Qt*_U),@)S+)T8*Sh)9H*;!STVWYZ]_%chj%nrw *<!,-%256:%@CDF%IK%MP%SUVY[]%ch%kqwz{~ *=!&')+,.013%68:<%>AE%GI%KN%P )0I)U9)d:)6)*m!Ax (cR*_R)~9(Vs*U1(Uk+1r*m!df (`g)[B*aB)UA*U?(qB)'F)O!2[ )E6(f_*6&*0t(rq*A6),w)6e)Ld*o:)>m)0])G?)s5(UA(Y1))/*v*)<Y*1g)&@(YX){S(_z*:r(TZ)/a){I*mY(Y>(VF)y^)i<(bL*:')=&)y5(|;)S/*u=*^e)R)(Zn(d5)WO)<{)Ad)R7)1E*xW*T[)*u)iD){=)yC(T^*b7)hd)RI(mo*cx)Ss*Y2(cI*Ea)C0*\\K(}M*~;)Wj*=!QRV%Z]%_a%cehj%msu%z|%~ *>!()%-3%:<%AC%EH%OQ%Z\\%`bg%jln%rtx%z|~ *?!(*,- (e3(wQ+3w*YJ(dq(nD*y.)D(*do)Sw(^4)mn)7])dq(`R(a^*/{)^o)o*(d*+0A)K-)uJ*s]*K^*13)`_)b:(^U)E_)k:(sc)=l(mL*Sf*{K)63*.o)1y)_o(sk(V!UN ).X*vy(W6*Sa(_v(uW*.E)5p(Va)@.)5**;M*?z*;x*Gv)ad)YN({p*.l(^c):()E`*3f*;N*IL(]7({1(uO*_B(U`)Rd(^1*LQ*^Y*q}*AI)if*nj*q?)VI*:S),n)<?)Tg*>2*6@++w(r6*X[(TO(dw*?!./%24%7;>@%GIKLN%QS%_abdf%hlmoqstv%y|} *@!&'*,-/%469:<?%CE%GI%SUVX%Z (WY)>^)G+(js(Tm):s*~d)6.(y+)ig*99)VL)Ho(\\e*<J)t7)C~(`S)SG*.K(\\9(i^)a.)}o)AB)h+*:Y)D.(}v(`:)aM*JI*q9*rK)<r*Xa*7,(i})R\\)5c*/o(rj(W_(i?*XO)A<(TP(|x*Kx)G|)8_)z,)_i*9T(bb*w/(|o(h:*b;*.g(u/*XJ*Eb*8!,- *Xf);J(|b)2x)V,)wh*S{)tl)l0(g&(Ws*\\G)W;(w;*._)x/)S6({X(x8)kp*4B)2u)Wa(so)k!u{ )d7(cV*/4*@![\\%ce%hjl%npqs%vxz%~ *A!&'%),%5=%AC%FJ%TVWY%\\^%bd%fh%prt%w{|~ *B!&' )qA)pt(a**4`(n_))P(tW)eZ)?_)Xp*T;(}=*De(cP)t()7h)@?(VT*yf*Dt({U*T*(eO)sp(Xa(}S*~@(v?),L)wd(sj(T\\)F2(Ux)7W*P[*`U(b')@x(j|(lZ*`:(Vi(Xo*eE*{E)Qo))J)/u({[*N@*T9)>1)5g*{k({?(|])9@(i'(e4)nq(^I*A+)E.)H4)PC)6U*^}(e1*82)Vt)m3(US*XN({')ao*BU)B!(p *0Z*FB+1k+2e(}c)Cm*`()FD)DD)5))|C(r])+L)>k)Zp*B!(),.%46%@C%IK%MOQ%SW%\\^`%fh%np%twxz|%~ *C!&'(*%02%57%E )0.(`Q*2C);Z*JN)l&))M)FF)7^*t`(e))c[*Te)R;)rH)z-(f2)s:*xZ*8<*TX)u1)CR)_C)?Q)<B(k})/O)y9(eU(Tc)P4*3c(|X(k*(mp(W!uw *{G));)Dc*2n)/4*xb*`9({B*Sy*TY):{*8x)=2(kD*:=*d9(Y`*)w*`W*(O(\\q(r))YG({v*T-*3`*dL*?M)~R*Dq*s!(, */&+&D)uj(~-)zv*`z*sD)x0(zi)8p)|x*@))H.(hX*/j)hq*)y*n[)5\\(q}(Vj({:(uF(r,*C!FGI%KM%QS%]_%bd%suw%~ *D!&'%+-%/1%@FGI%MO%QS%UW%^ )g')8/*[@*Z]*4R*:B)6o(eM)TE*d2(tP)/3)Rw(o0);P*X*)nv)Z((o>)MD)n;)[S*U8*Tl(oI)QO*Jp)v6)9Z(eV)_/)Rk(r0);0(q3)Ha*6m(hb*)-(ZH*\\V)Vo*YF)_m)9G)V>)Yl*/'*=g)Fv*`;)V{*rl*Se(t})d>*C1*6P)m`*PR)H0(`n*Zp*nk):/*xx*[9(iu(X5)C=(l})1U)V8(`](}N(tO)WE(rC)l-)kr)0E*84*5q)7{)DF*_s)qz*ZA*X4*mt))^(d;(f0)_E*D!acdf%lw%} *E!)*%-/1%69%=@AFHIMNR%TV%Z\\%^`cghmnp%ruwx{%~ *F!'(%*,%.17%9<%?ACF%HMNP%SVX )RG),4([3(VA)+C)8K*8g*`R)G**dB)sA(ei*n6)-H)|R)GP)8V)}f*.y)n&([N)6X(tZ*`G(_k)y;){G(n:)-v*`L)U~(}e(n[(em(]y)X>(mw)9`*xs*6Q*FW*LV*`8(e{(}t*79)7@)5t*5\\+0,*r6*~!8F )IU(ur)7=(i7)8'(gr*Et)U8(vw)k<*Jz)O|(t<*UW),l)Xo)gc*x](T~)_y({C)us)8N)AJ)p/)1K({R(wd(TM*6')Rq)gE(V5)Dn*09)-d)@C)CY).c(uQ(vu*F![]_abfh%jl%oqrtuwxz%|~ *G!&)%/3468%;=%?AC%HJKO%VXZ%\\^`%ch%jmoprsuw%{}~ *H!&(%.0%4 )(n).9(d'*vx*_n)Fx(n0(i()1_(U')[3*/5*:5*=q(vH(W!Ze (}C*.F)Ch*@r(fw)lL*4G(i{+'g(X/)Ww*Tw(|g)3>(cz)nj)Ws*D~)?)*qJ*.S(f?)zR*)a*q=(k(*1P)kD)8.*FY)VD){c)5-)?C(cv):@)S1))3(f`*m[(U9)Rh*TP(}P)@)*9c)H((f!B8 )Q+)Ox(V()8S(cW*8>(WH(Y7(oA)5&*tB)AT)d.(bg(ab)0x*TS)@])ai)Du*MR)u.)t2)A`(l)(f<*n{)d?*H!5679:>@%BDF%IKLNOQ%UW%Y\\%`d%jl%oq%tv%y{%} *I!&'%/1%46%9;%@B%IKN%QS%WZ )yx)0H))T)0b*6o(t;)1\\)aT)_q)YB)RW)dE)MH*K2))u(UM(xu(j<*n=)Tl*)R*s6)5+*.`)ru*Dr(c2*tb*_')Aw)&4(Y))eY(TQ(d\\(t5(ep)98*o)(]m(Vm++P*.>(gc*W}*J2*8W*qA)V1),c(y5)A.*r_)gj)fA(du*6L*{Z*10({a*r!mF *.Y)q8(dX*ow*{n)~l*Lp)XI(UN*1c)x6*TJ)1s(gx(V?*xY))?)L~(\\M(en*Ul*>1)u9*tH(`d(h@(m8*nZ)V+({l)Vi)AC*I![\\%hj%oqrt%vx%z}~ *J!&'%),%13468%>DEHKMOQ%TV%Z^adeghjl%oq%su%y{%~ *K!&(*%/ (|m(zm)FT*3s(iq)|~)>C)I|(V/)OY*G7*uv(c^)80);@*b0)?>*4E*Tt(^e)H1(d.*I0)4=)Sr)TP*U-(}V*BP*9v*nf)O5*_,)?R)/-).N(Yj*I|)@h*67)f<)1z(^@(`+(on)-F*b(*J**df)*g)D4)/Y(vG(]i(_i*4|(bp)S'*sa)aZ(WL(Yw*1-)C{(je*nb)y8*Jt*.}(rw)5(*tD*DN(k_*x[)-t*Su*?u*d+(e6)@6)*~)lY)0=**l(xA*/!+. *^S(jG({Z)1,)?m)g>*K!13%57%;=%@B%EHILMO%RT%VX[\\_%cefkln%twz%| *L!&')+%-/%57%;=@%DH%LN%PR%UX%[]%_ac *`A)oU)qi*.t*u_*BA(zv){:*t.*Iw(b3)a_).5)@5*TF(|Y*~9))))PB)Rb*S!jl *`B*_V(dA)7&+/!v} (fD(Tq*:+)cw*E7)&i*J7)VR*sb(g|(V.*Ss)`2(gh*qX)_a)WC)pi(Tk)tI*FT(~U),3*Nz*x|*q])^i)Sm(tj)9a)q|*J+)ZS*9:(qa)bL(dB)tO*s^(hS)-J)`Y({k*T~*~V)P<(tT+0&)y_)DM)6/(XQ)mE*0r)T`*r))R.(W+)mv(^G)Fj)Z}*a_*6B(uc)i~*L!de%lnoq%~ *M!&'%03%8:%MO%QSUWXZ%t );M(},*aD){W*U.(vN(gW*7y*<+*MT*26)IX(l<*2l)cU*eI(_)(UL*xU)9N(T`(eS)C1*5v(tB)VU(TF(sx(cJ):5*nK(Y&(WE*JA*xp(t]*a6)ys(V~*4t)m5)S0({S(v\\)-A)I-*Du(ZJ)):(UF)sq(Vy*9A)6T)@\\*ap(}~(VS)-]*7?*`p*3a)mO(V:*KY)26)P~).Q(U6)pc)Y:*TG*Sk*T!n5 ),?*22*1[*.h*;J*<'(mu)Pp*w,*r*(vo(e|*nP)W5({|*{C(}>),R*s-*M!uv%~ *N!&'%:=GM%OQ%SUWY%\\^a%df%hj%ln%y{%~ *O!&')%> (d&*:_)LN(x6+0g)+**/i*<u*>!./ *;|*G0*__*Xb)pa)-U*xv)uH)@i(h1)7O(XE*7<)ml)+N*sj*ZX*F;(g:)TH)V/)R?)0X(b/)k~)*l(WS)0y).r(}))l.*b4*ms)d~)Sg)X)*cv)CG(e!(P (X3*eD*TU(d~)*k*_S)W.(U{)p[)JU*DR)2A*8&(X;(Yg*`v++0)20)W!g^ *r{(Uu(wL*t,(TT(~+)y1({>*TQ*1L)gC(pi*9R*bG(e^*a&(j[)&=).,)2/)OD)e]*46*PQ*O!?@%^`%hj%~ *P!&'%@B%H )Up(|1*KZ*xd*Uv*~7+0*)WT(^p(]h(p-*J_(dU):S*_&(n)(f\\(nB)fR)Y(*/Y*_m*:?)2f)/Z*rX)C.*.@*Y!1j *mX(~_*(T)CF)1&*qT*2N(U~*bm(bh*r^(]f*_a*As*d1)AE*w.(ze(c,)tm)D')Fp(gt)^Y({g*^g(^Y(nd(g\\)=f)Ar*X!^C *5:*>v*aL*)6(_r*CH)E/)@2)\\.*E?*[v(lX*`X)ot)^Q)b\\*W|)7S(`3)TR*X<)/@(rv)3\\)C<*X`)5j(jS)Wm)Ck*^Q*P!IJ%PS%Z\\%~ *Q!&'%R *n;*qG)qh)F8)Jw(g6(U:)_:*T,);^)?-({<){J(Zj(|F)sI)QA*PA*(H)Sl)ph)?K*_()''(}Z*D,)F;(co)54)|F)XL*/>)L<)|M)-T)Zr),])9D)VK)D;(TN))X*X&(Vk*4D)o&*s9)7E)@v)6A)Sj*Xu)a7*0Q(]k*3d(eI*aM)6[(hD*F2*_**2;*nq*@o*_j)UU)h.)?A)q_)kZ)t\\*7t*Ww*m;(Y/)Dz)m]*T.*tK)8@*oH*r+*?i)84)r()-e)e\\(Uv)/F)>o)7Y)Ou)>:*Q!ST%uw%~ *R!&'%;=%[ ))o)mk*bW*S~*9d)E))>*(f5*FZ)ss*4&*5-)RH(U8*.a*3))q4)I5)PO)6*(Zl(Xf(n|)7q)Ot*Ye(eG)@1*.R).b)8+)9o*7!lm *0V))d)&,(`P)Aj)ya)z9*X()^t)mx)Yv)Si){X(Ts)p^).k*mR*JU*.b)yE*4C*eH(W!-R *8?(fl))&)U.*T0*(U*^^*3u))b(g=)pJ({P)A,*~n)hA)F]*Ev)Co)f=*T!\\? *`H)|f)_])a>)7.)s7(kx(U(*>a)E}(aj*E[*X.*nR)}e*R!\\]%{}~ *S!&'(*%\\inx *T!+4Nm *U)(X1)T=)x.*~E)6V)cH)7g(TY)tK*^V)<]*XZ*&()GC)*s*KJ(uS)<K(sm)d{)I6*o&*`5*XX(oC*/A*Tj(_9)8Z)7C(cb)G&)i**:o*cy(i=)r')^W)UF(^E(gS*XD(vs)Yc)Vg(zl**)(Vh*(-)Yk(z`*7c)WW(zg+&t)HV*Zx({N*/=)/m*.O*b?*Xp(tu):,)yW*YZ(ca)?q)x'*T)*r1*.^*mn*-u(k{*d])C>*0R(|h*aT)@q)).(X2)Ej([1(X>(o3)+=#2$*U!CD%KM%PSUVX%_a%df%kn%tw%} *V!&'%)-%3568%:=?%EG%IK%_ (Uz(TR(]e(TV),<(cT(T[(V,(Td+'J(z|(lW(Tn)y2(U,(b}(U4(tS)cY(c})Qp(mt*4h*{l)Q3)re+2\\(T|(V3+2U(U!IV (V'*9O(zk(ie(kV(VX(d!CSY[d *uP*X](c)(eR(c!5=M *X\\(c!ur (_!u{ (`!(GMYZfx{v *?`(a!>CBQT (^N*0<(V!OW]V|u (W&(Vr(W!V.] (XF(W!0`bDf (X!@I )>3(X!<? *V!`a%~ *W!&'%f (X!A9 (W!mx (X!XVskeq`] (Y3(X^(Y5(Xv(Y!oqsNcleZh (Z!(Y| (Y|(Z!\\?^].L<UX ([U(Zs([,(Z!x~ ([!CR|~ (\\!'8T (]+(\\!kjdl (]!,0 (Vq)RD(X!:G (YW+43)RM*'}(^:))E+1g*{m(^M(t:(b!au *O((bx(_^(t?(]z(V4(]{(VG*JL*K)(VI*5?*KW)xQ(zD*I:*1G(^!w} (_!0/ *W!gh%uy *X!QRW_eh%jlnoqrx%~ *Y!&')*-%03%79:<%EG%IK%WY]^`bdg%iln%qtwy%{ (_:(^!bnq *S!]cdgqrt *T!&'/326%8:<=@CDHLMRTWZ]`cdfhkpsuvx%z} *U&*T|*U!(*%,02569:=>@A (cx(d0*q!lqp *r'*qy*r!328?JU]bhj~ *s!*4M *a!vz|x *b!2':9<@ *Y|*Z!&'*.%03%57;<>%@BDJL%RT%VY[\\^%ac%jnor%vy{~ *[!'()+%-01348:;A%EH%MO%Z\\]_`cf *b!>6UKDVJMYlhb]aqu *c!+1OKP^\\fps (`'(th(a!cmn (b&(hQ(b!8>X (e<)be)s[),1(_!ho +'G(dl),>)lW))7(o/(p!3+ (rV(s!;DP (n!ehfoujk (o?(n!w~ (o!LhNi_^KPYV (p!7. (oo(p!<Y1> (ov(p!*_bdc\\B~y (q)(p!ng *[!hjl%prsuw%y{}~ *\\!&'%*-%/1%79;%FIJLMO%UW%ik%~ *]!&' (q!<>. (pw(q!1OJuQ (r!=DYarX *{}+2^)4t*9!@DFVQoKUX^`r *:!&, *9w*:!68Q *9!_~u *:!9:/ *9!p{hqf *:!2< *9k*:!OweR}uJb@FziA *;!&/ *:t*;!)* *:!NC *;!1fpq *:v*<N*;!QIF *<W*;!sDd\\XtU,uBOH{z *]!()%~ *^!&'%. *;!}0~ *<!(&)*l4op\\fOXA8re9t7TZdvx} *=!dH; (q8*=!{n@`9 *>!&B *=!ti7Brf[\\M( *<|*>0*=!SD *>!f[dc} *?!89+:) *>!FPs *?!'=? *>!;w *?!r~ *@!(> *?n*@+*?!{pk *@8*?!RjeH *@!=;d )kc*A7*@H*A8*@w*A9*^!/0%OTjv| *_!.1%35%8;=%@C%FHIK%MPQTWZ%^`cghkqrtx} *`!')*,%.2%467?@DFKMP *A!U: *@!WT *A!XGgc]y )s0*A!Bqz *B!JN-5 *Ax*B!TB+_]Vyg *C!)LtRvc *D0),!;E (t!bg *2m(t{(u'(t~(bw(}!'*19 )5h)6!-b~ )7!4DAX )83)7`)8!J\\T )9e):U)9!)2Fl )8~)9!dB )8z)9!ft ):!QW?^ )9|):!=- );X)9!~v );!KG ):!jz );&):k);!,'d )<1);s)<C*`!QT[%]_%dh%loqruwx{}~ *a!'(%+-3%589;%@CEFH%KN%RU%[]`c%fhik%oqsuwy{}~ *b!&*+-%/138=BCEF )<!'deFgm} )=!+86]y )>)),H).])ko),N(cn(e!NZFEXosc (f!OV%XZG (e~(f![]'6 (g!-? (f!{uh (g!EF/ (f!zj (g!H{Xm_}RQ~ (h&(fv(gN(h'(g!fjw (h!+,. (g!TUO (h/(gz(h!0m9rOfEtuacy| (i`(j!/U (i!Bf:N8I5 *b!HILNOQ%SXZ%\\^%`d%fi%koprtv%y{%} *c!&'%),%.02%EG%JL%NQ%[]_%eg%oq (i!0On%p,)U (j!+r (i|(j!QY( (iz(j?(iw(j!v1 (it(k&(j!]^49 (k!1> (ji(kf(jq(k!23 (jt(k-(j!}d (k!6,9: (j!lm (k!/<+ *^~(k!eOSHkjEGnt (l!F'E (ks(l!;PGJ:BtR_Yijs (m!(Dilrv (n!1'5;@FEX ))!Wa\\Yy )*!*+ *c!rtu~ *d!'(%*,-/034:%<?AGN%PT%XZ\\^bcg%mp%ux%} *e!&'+%.1%46%ACFKM%VX%` )*!&3CJMP (~!8&9<B4DE=FHaNiXW]Omcp~ )&7(~w)&!8UVzy )'()&!wqYn )'!R8.7fUiWeEDcn| )(!:> *U~)(!Xf )-!W[fkmpy} ).!'38@G *J@)-E)d!ruy|} )e!/-:9>T[U^`cm_of *e!ab%~ *f!&'%g )eg)f!*&4 )ev)f!10(5L8?KDc`js )g!&)8 *8;(tK*yn(t!J( *{!8<%AILRUY\\_befh%j )*o)+')*z)+!,;6OKTI *XS)+!hgq~ ),'*73).!OTaZ )/5).y)/6).!lo )/!078 ).!ux )/!*KgXMA?[]<qS )0!QRTS )/t*f!hi%~ *g!&'%<>%VX%p )0!CVos )1-)0!v\\ket )1!l;1]XFZ4 )2!GM<J )1t)2!'5Rq )3!Czbu )4!,Ij ).h*sP*q!8:@BDEKMRSUWY%\\^ad%fhi (Tr)c])51)R!<[cQ )S!Q3>B: )R!op{} )S!4W~ )T))S[)T!LMF, )S`)T!5+O@C )S_)T!(DS *g!qr%vx%~ *h!&'%79%y )U5)T!|a )U!?D )T!\\Ync )U!'I*1 )To)U!KNP/ )V4)Uk)V!AC )UZ)V!67 )U!X\\x_ )Wd)V!jh )W!(X )Vb)W!*[0' )V|)W`)VN)WV)VQ)Wu)X!_?\\ )YJ)X!PwDE )W!|o )X5)Y!wI0x )Zl)Y!z=?USOoLg'Z7 )[!H,- )Z!cT8nu )[!1Z )Z!iHh )[!osr^Xb` )\\^*h!z{%~ *i!&'%TV%~ *j!&') )\\!V4FCOn{km| )]!NWOmi )^!*9 ({!7;LJ\\o )l,*~h);:(|!BL *L\\(|N*[<*Qv*_!Gdfv *`&*_!uzw *`+*_y*`!=<C^IENYmneg| *a!01/G7A: )BP*a!S\\agbj )-!4;:< (}@(gV(}!U^ ({((}!hk *1K),!gfj *9;),y+'S(}s(u!NPZvwp *j!*+%LN%~ *k!&'%.0%2 (ud(v>(u!xkq (v!F& (u|(v!K2yzQ|WLm (w'(v}(w!MO,>.[ (x)(w!epW} (x7*4p(x!l]9< (y!'T (xt(y!;= (xz(y!ILZ?OAEr (z!'&BGP (|!sz (z!ju ({*(z!acr *~!?ABDIGJKORTZ\\]`be%gijlmoq *.!9;=?BC *k!34%:<%~ *l!&'%: *.!GJXZ%\\cefjnquz{ */!),/023N7;<?B%DHILMPRSXZ]\\`b%hk%np%tv )*i)l|)(|)l;*at)g!HKh\\Y )h0)g|)h2)g!qmz )h!*)F: *x\\)h!kJH? )gt)h!Sp )i!2c.-0864 *l!;<%IK%vx%~ *m!&'%7DIKz *n!)-.4@Uvz )h!|{ )i!Id_]a )j&)iu)j!-K=/06:MWX?V )k()ji*v!|}~ )D!18C-N )E1)D!lOX} )E3)DZ)E!4*9 )D!p\\a )E|)F<)Ed)F=)E!u< )F?)E!eAf?i )F3)E!ODn )FA)EM)F!0ef )G!:;(< )Fw)G!>] )FP)G!/@ )Ft)GA)F!sq}|\\ )H6)G!iNQmE )HC)J=)H})I!GH )Hz*o!(4>DILV[aouvx%~ *p!&(%s )IL)Hq)I!3) )J&)Hd)I8)J@)Ia)J/)Ij)J!,S:OgG )I\\)KB)J!VW )KD)J!X52Hjv )K1)J!z| )K!J'7@U )Jd)KV)J\\)Ku)LL)Kc)L!45 )M))Kh)L!a[ )Md)L!mxR )M!R= )L!ZEu )M!@UTm[o )f!Je )P!:;@=KLFSTZc *^!UW[%]_`bacdfhklnqu *p!tu%~ *q!&'%6;NVbgjmor%xz%|~ *r!&-%0479@DEG%IL%PR%TVY[\\ac%gin%z} *s!&' *^!wxy *_!)+ *\\j)5!'37;>=A@H *7`)k!EJUegi )>/)@!789Sb )DW)@!L^I )^`)C5)@!f}z )A&)@~*2<)A!OD1?FQGgt| )B!>4Urs} )C'*X!236;=@EFHIGMUY *N!AD%FH%K )d!3d )c{)d!+4CDIPRTW )7r)8C)9h*s!)+.%02378:%CE%LNOQRTUWX\\_`eghmnpqs%|~ *t!&'%+/%24%689<>%ACFGIN%PT%VXY[%_acd );E)=,*2:)Q!JS]UYegfmux%z )R!(0+19 )>!0Pf )c!kptN *DV(`0*3!|yp *4@)CH*4!A5/18;k%n_FH]Q[ )CN*4!aouxq *5!89 *4v*5')CS*5=*Ue*5!aIWC]sw~ *6!F+,C2;NO?9 (q~(xw*6!ZTc )Ym*6!u| *7E)Cd*7!C4 *t!ef%moprsuw%{~ *u!&'(*%<?@BCEGHJNOQ%SU%]`b%fh%oq%uwy%{~ *v!'()+%/ *7:*6x)O!6IKUXk *y!XYZ\\`a )Pl),})P{*Nm)?2+3=)?!5^hfenptx )^![wqx )_!=B9-3jL )`!9<?XZ )a!C,8 )`n)aB)`s)a!HJh )b!*, )a!xp )b!WK^p )c!;F )^G)`A)a6)b0)5!ZY_de )w!ejps )x!,- )w})x!+3(1@8KV[kx )y+).!\\[ *v!01346%<>@BCEG%wz *w!'(%+-0%G )/n)0!63@ )/s)0!2< )1+)2!-4 )3!+wk )4!@F{ *3!]\\ )SA)TK)WF)t!+-5>LMF )?M)t!bQRn%pTqZaX^ )u!*I23 )t[)u,)t|)u!(Fwovcx} )v!&5<(W\\Lou )w/)vw)w!=NH^ +4.+2!>@A )q!1DM9GHZbYmfux )r!78.*AO *w!HI%~ *x!&'%N )r!ILftdgsx )s!-.>CK )l!7=KHEXov )m'*0!@IG *Oi*0!P\\Yaif )p!f~ *Ii*m!89:>=?@BCGJHM%OVW^]`_bcegi%moprw{%~ *n!&'(*%,/%13258%:<>?ABD *x!OP%Tknruy *y!*/%TVW[]^b%dg%mp%~ *z!&'%5 *n!CEHIM%OQSVWY]\\`acdg%il%pruw%y| *o!+,*-2357%9=?@C6E%GJMOPS%UW%Z\\_`^bce%mpr%t; )s!uz *sf)y!Me[c~ )'A)y!{z )z!=3 *z!67%:<=?%[]%~ *{!&'(+%79;HMNPSWX^ )z!XVp +1m*{z){6)oz)p!',2= )k!46 )l)+/!prx%| +0!)(-/.01589;=%@BCEHLNQ%SUZ]%chdj )m!68:DAPGWX\\hUTgfzq )n!.31/62N<GJ[KPWbUpc`d *{!aco%y{|~ *|!&'%u )nf)o.)n!mk )o2)n!x{ )o!1'50 )n~)o!?PFNH]a *1Y)|S){!>?FLN[lfrnsy *J!BGP[]` *K!'K<ANgShjv *L!F( *Km*L**Ku*L!ME?G6`Wbm *M!9N )m/*4i)p!KM )sj*2!HJLRVX[%]_^gAky| *3!*/FN *MV*x!X`c *|!vw%~ *}!&'%| *x!ilmotz{~ *y!&(),- *D!AH`bsnpo *E!C(&G8B>E.DQ_PiKULJdjO *F!+34/5 *Ek*FU*Ey*F6*E!zsl *F!EI:JLOKe}`gp\\ *G!'1 *F!vsky *G!(k *Fd*G!fgdIY5Wt<LeMBN| *H!?8b *}!}~ *~!&'%5<MSWX^_cps%y|%~ +&!&*,.%0457%;>%ACE%HJ%OQS%VX%[]_a%ikm%su%w *HV*G!qn *H!=' *Gl*H!;u<EC[cMaPZkzp~ *I!MJ5ARXps */w*0!*,- *80)|!gjupq )}))|w)}?)||)}![L>-BE498GR2lnY )~0)}!`qt )~!)6 )}v)~!-,KabsgXc@eW]fo *&3)~|*&!.?<GHLn`^qxm +&!xz%~ +'!&(%*,%68%:<%FHIK%RU%X^b%dfhjkm%~ +(!&'%: *'!(3/AJI *7!wz{}e *I{*8!ABCMOHKX[ST^dikoz *9!&/ *J!\\cf *K!]d *M1*1!,.6>?A *(,)>D*(!AMLNRblmqw|}xu *)!.? *95)B?*1!N]dtpux} *2)*)O**u*+!KS *-:*.5+1!VR *Xs*Y!+;8X *X!gm *U!RT *c!w}{| *d8+(!;<%~ +)!&'%A *d!65D=CQRFHM`Ydaevw~ *e!()*0/5 *U`+0u*Y_*Z!9S *[!N^ *Y!\\fcak}~ *Z!(, *Y!uv *Z)*Ym*Z!:EF1GI2WKbkmz|q} *[!/5.*2&>67FG?ekqdiz *\\!+0,8: *V!*4<7JF )?=*N!PXTV +)!BC%~ +*!&'%H *N!_ei *O_*R<*u>*t!-73JELSRnqt *u)+3!loq%vx +2!CPR *s!VYZko )sM*s}*g!Ww *h8*iU*j(*k/*jM*l!Jw ++!369%< )zB++!?BD%FHINOR%WY%]_abd%kn%qx%{~ +,&+*!IJ%~ ++!&'%/12478=>@CGJ%MQ^`cmr%v|} +,!,-56;<'%+.%02%478:= *u!gp|} *v!&A=5DF *~!{z +&(+0O+&!'+-2163<=B +'!][_a`ei *yo*z!;\\ *{!*) +&!PRW`\\l^jy +'!'+7; +1![\\ *-.+0!y~ +1!&)0 *k;+1!;=y%{~} +2!'.,*/4gqt~| +3!)*0 +,!>?%~ +-!&'%~ +.!&'%~ +/!&'%ntw~ +0!'+237DGI%KMPTV%Y\\efik%twxz%} +1!'(*%/2%:<>%CE%QS%UWXZ]%ac%fh%jnpqs%uwx| +2!&()+-0%35%=?BD%OQTVWY%[]_%dfh%prsu%{} +3!&(+%/1%;>%jmny%~ +4!&'%+/%14%8 .*f.+!Zv .,!oy .-!;<%>@BCGN%PRSV%X -R!XY%~ -S!&'%N")); |
| | | var gbk = src(gbk_us); |
| | | return gbk; |
| | | }(); |
| | | |
| | | var gbk_build = GBK$1; |
| | | |
| | | return gbk_build; |
| | | |
| | | }))); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const commands = require('./commands'); |
| | | const gbk = require('./gbk'); |
| | | |
| | | const printerJobs = function() { |
| | | this._queue = Array.from(commands.HARDWARE.HW_INIT); |
| | | this._enqueue = function(cmd) { |
| | | this._queue.push.apply(this._queue, cmd); |
| | | } |
| | | }; |
| | | |
| | | /** |
| | | * å¢å æå°å
容 |
| | | * @param {string} content æåå
容 |
| | | */ |
| | | printerJobs.prototype.text = function(content) { |
| | | if (content) { |
| | | let uint8Array = gbk.encode(content); |
| | | let encoded = Array.from(uint8Array); |
| | | this._enqueue(encoded); |
| | | } |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°æå |
| | | * @param {string} content æåå
容 |
| | | */ |
| | | printerJobs.prototype.print = function(content) { |
| | | this.text(content); |
| | | this._enqueue(commands.LF); |
| | | return this; |
| | | }; |
| | | |
| | | |
| | | printerJobs.prototype.printQrcode = function(content) { |
| | | |
| | | if (content) { |
| | | const cmds = [].concat([27, 97, 1], [29, 118, 48, 0, 30, 0, 240, 0], content, [27, 74, 3], [27, 64]); |
| | | this._enqueue(cmds); |
| | | this._enqueue(commands.LF); |
| | | } |
| | | |
| | | return this; |
| | | }; |
| | | |
| | | |
| | | |
| | | /** |
| | | * æå°æåå¹¶æ¢è¡ |
| | | * @param {string} content æåå
容 |
| | | */ |
| | | printerJobs.prototype.println = function(content = '') { |
| | | return this.print(content + commands.EOL); |
| | | }; |
| | | |
| | | /** |
| | | * è®¾ç½®å¯¹é½æ¹å¼ |
| | | * @param {string} align 坹齿¹å¼ LT/CT/RT |
| | | */ |
| | | printerJobs.prototype.setAlign = function(align) { |
| | | this._enqueue(commands.TEXT_FORMAT['TXT_ALIGN_' + align.toUpperCase()]); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * 设置åä½ |
| | | * @param {string} family A/B/C |
| | | */ |
| | | printerJobs.prototype.setFont = function(family) { |
| | | this._enqueue(commands.TEXT_FORMAT['TXT_FONT_' + family.toUpperCase()]); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * 设å®åä½å°ºå¯¸ |
| | | * @param {number} width åä½å®½åº¦ 1~2 |
| | | * @param {number} height åä½é«åº¦ 1~2 |
| | | */ |
| | | printerJobs.prototype.setSize = function(width, height) { |
| | | if (2 >= width && 2 >= height) { |
| | | this._enqueue(commands.TEXT_FORMAT.TXT_NORMAL); |
| | | if (2 === width && 2 === height) { |
| | | this._enqueue(commands.TEXT_FORMAT.TXT_4SQUARE); |
| | | } else if (1 === width && 2 === height) { |
| | | this._enqueue(commands.TEXT_FORMAT.TXT_2HEIGHT); |
| | | } else if (2 === width && 1 === height) { |
| | | this._enqueue(commands.TEXT_FORMAT.TXT_2WIDTH); |
| | | } |
| | | } |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * 设å®å使¯å¦å ç² |
| | | * @param {boolean} bold |
| | | */ |
| | | printerJobs.prototype.setBold = function(bold) { |
| | | if (typeof bold !== 'boolean') { |
| | | bold = true; |
| | | } |
| | | this._enqueue(bold ? commands.TEXT_FORMAT.TXT_BOLD_ON : commands.TEXT_FORMAT.TXT_BOLD_OFF); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * è®¾å®æ¯å¦å¼å¯ä¸å线 |
| | | * @param {boolean} underline |
| | | */ |
| | | printerJobs.prototype.setUnderline = function(underline) { |
| | | if (typeof underline !== 'boolean') { |
| | | underline = true; |
| | | } |
| | | this._enqueue(underline ? commands.TEXT_FORMAT.TXT_UNDERL_ON : commands.TEXT_FORMAT.TXT_UNDERL_OFF); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * 设置è¡é´è·ä¸º n ç¹è¡,é»è®¤å¼è¡é´è·æ¯ 30 ç¹ |
| | | * @param {number} n 0â¤nâ¤255 |
| | | */ |
| | | printerJobs.prototype.setLineSpacing = function(n) { |
| | | if (n === undefined || n === null) { |
| | | this._enqueue(commands.LINE_SPACING.LS_DEFAULT); |
| | | } else { |
| | | this._enqueue(commands.LINE_SPACING.LS_SET); |
| | | this._enqueue([n]); |
| | | } |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°ç©ºè¡ |
| | | * @param {number} n |
| | | */ |
| | | printerJobs.prototype.lineFeed = function(n = 1) { |
| | | return this.print(new Array(n).fill(commands.EOL).join('')); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 设置æ¾å¤§åæ° |
| | | * @param x 0-7 å符宽æ¾å¤§åæ° |
| | | * @param y 0-7 åç¬¦é«æ¾å¤§åæ° |
| | | */ |
| | | printerJobs.prototype.setCharacterMultiple = function ( x, y) { |
| | | this._enqueue([0x1d, 0x21]); |
| | | if (0 <= x && x <= 7 && 0 <= y && y <= 7) { |
| | | var cmd = x * 16 + y; |
| | | this._enqueue([cmd]); |
| | | } |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * * æå°äºç»´ç |
| | | * @param content æ¡ç æ°æ® |
| | | * @param barcodeType æ¡ç ç±»åï¼ |
| | | * 0ï¼PDF417ï¼ 1ï¼DATAMATRIX ï¼ 2ï¼QRCODEã |
| | | * @param param1ï¼param2ï¼param3 æ¡ç åæ°ï¼ |
| | | * ä¸ä¸ªåæ°è¡¨ç¤ºä¸åçææï¼ |
| | | * 1. PDF417 |
| | | * param1ï¼è¡¨ç¤ºæ¯è¡å符æ°ï¼1<=n<=30ã |
| | | * param2ï¼è¡¨ç¤ºçº éç级ï¼0<=n<=8ã |
| | | * param3ï¼è¡¨ç¤ºçºµåæ¾å¤§åæ°ã |
| | | * 2. DATAMATRIX |
| | | * param1ï¼è¡¨ç¤ºå¾å½¢é«ï¼0<=n<=144(0:èªå¨éæ©)ã |
| | | * param2ï¼è¡¨ç¤ºå¾å½¢å®½ï¼8<=n<=144(param1 为 0æ¶,æ æ)ã |
| | | * param3ï¼è¡¨ç¤ºçºµåæ¾å¤§åæ°ã |
| | | * 3. QRCODE |
| | | * param1ï¼è¡¨ç¤ºå¾å½¢çæ¬å·ï¼1<=n<=30(0:èªå¨éæ©)ã |
| | | * param2ï¼è¡¨ç¤ºçº éç级ï¼n = 76,77,81,72(L:7%,M:15%,Q:25%,H:30%)ã |
| | | * param3ï¼è¡¨ç¤ºçºµåæ¾å¤§åæ°ã |
| | | * |
| | | */ |
| | | printerJobs.prototype.printQrcode = function (content, barcodeType, param1, param2, param3) { |
| | | var str = content; |
| | | var length = str.replace(/[^\u0000-\u00ff]/g, "aa").length; |
| | | this._enqueue([0x1d,0x5a]); |
| | | this._enqueue([barcodeType]); |
| | | this._enqueue([0x1b, 0x5a]); |
| | | this._enqueue([param1]); |
| | | this._enqueue([param2]); |
| | | this._enqueue([param3]); |
| | | this._enqueue([length%256]); |
| | | this._enqueue([length/256]); |
| | | this.print(content); |
| | | return this; |
| | | }; |
| | | |
| | | printerJobs.prototype.queryStatus = function () { |
| | | this._enqueue([0x10, 0x04,0x02]); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æ¸
ç©ºä»»å¡ |
| | | */ |
| | | printerJobs.prototype.clear = function () { |
| | | this._queue = Array.from(commands.HARDWARE.HW_INIT); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * è¿åArrayBuffer |
| | | */ |
| | | printerJobs.prototype.buffer = function () { |
| | | return new Uint8Array(this._queue).buffer; |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * CPCLæå° |
| | | */ |
| | | |
| | | /** |
| | | * 设置æ ç¾å®½é« å¿
é¡»å¨å¼å¤´è®¾ç½® |
| | | * width:80mm 为576ï¼58mm为384 |
| | | */ |
| | | printerJobs.prototype.label_set_page = function (width,height) { |
| | | var content= "! 0 200 200 " + height + " 1\r\nPAGE-WIDTH " + width + "\r\n"; |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°è¡¨æ ¼ |
| | | * lineWidth:è¾¹æ¡çº¿æ¡å®½åº¦0-1 |
| | | * top_left_x:å·¦ä¸è§Xåæ |
| | | * top_left_y:å·¦ä¸è§Yåæ |
| | | * bottom_right_x:å³ä¸è§Xåæ |
| | | * bottom_right_y:å³ä¸è§Xåæ |
| | | */ |
| | | printerJobs.prototype.drawbox = function (lineWidth, top_left_x, top_left_y, bottom_right_x, bottom_right_y) { |
| | | var content = "BOX " + top_left_x + " " + top_left_y + " " + bottom_right_x + " " + bottom_right_y + " " + lineWidth + "\r\n"; |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æ ç¾æå° å¿
é¡»å¨ç»å°¾è°ç¨ |
| | | * @param horizontal 0:æ£å¸¸æå°ï¼ä¸æè½¬ï¼1ï¼æ´ä¸ªé¡µé¢é¡ºæ¶éæè½¬180°åï¼æå° |
| | | * @param skip 0ï¼æå°ç»æåä¸å®ä½ï¼ç´æ¥åæ¢ï¼1ï¼æå°ç»æåå®ä½å°æ ç¾åå²çº¿ï¼å¦ææ ç¼éï¼æå¤§è¿çº¸260mmå忢 |
| | | */ |
| | | printerJobs.prototype.label_print = function (horizontal, skip) { |
| | | var horizontal1; |
| | | var str; |
| | | switch (horizontal) { |
| | | case 0: |
| | | horizontal1 = 0; |
| | | break; |
| | | case 1: |
| | | horizontal1 = 1; |
| | | break; |
| | | case 2: |
| | | horizontal1 = 2; |
| | | break; |
| | | default: |
| | | horizontal1 = 0; |
| | | } |
| | | |
| | | if (skip == 1) { |
| | | str = "PR " + horizontal1 + "\r\nFORM\r\nPRINT\r\n"; |
| | | } else { |
| | | str = "PR " + horizontal1 + "\r\nPRINT\r\n"; |
| | | } |
| | | this.text(str); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°ä¸ç»´ç |
| | | * @param start_x æå°çèµ·å§æ¨ªåæ |
| | | * @param start_y æå°çèµ·å§çºµåæ |
| | | * @param text å符串 |
| | | * @param barcodeType æ¡ç ç±»å |
| | | * 0ï¼CODE39ï¼1ï¼CODE128ï¼2ï¼CODE93ï¼3ï¼CODEBARï¼4ï¼EAN8ï¼5ï¼EAN13ï¼6ï¼UPCA |
| | | * ;7:UPC-E;8:ITF |
| | | * @param rotate æè½¬è§åº¦ 0ï¼ä¸æè½¬ï¼1 æè½¬ |
| | | * @param linewidth æ¡ç 宽度 |
| | | * @param height æ¡ç é«åº¦ |
| | | // */ |
| | | printerJobs.prototype.drawBarCode = function (start_x, start_y, text, barcodeType, rotate, linewidth, height) { |
| | | var str1 = "BARCODE"; |
| | | if (rotate) { |
| | | str1 = "VB"; |
| | | } |
| | | |
| | | var st1 = "128"; |
| | | if (barcodeType == 0) { |
| | | st1 = "39"; |
| | | } else if (barcodeType == 1) { |
| | | st1 = "128"; |
| | | } else if (barcodeType == 2) { |
| | | st1 = "93"; |
| | | } else if (barcodeType == 3) { |
| | | st1 = "CODABAR"; |
| | | } else if (barcodeType == 4) { |
| | | st1 = "EAN8"; |
| | | } else if (barcodeType == 5) { |
| | | st1 = "EAN13"; |
| | | } else if (barcodeType == 6) { |
| | | st1 = "UPCA"; |
| | | } else if (barcodeType == 7) { |
| | | st1 = "UPCE"; |
| | | } |
| | | // var content = `BARCODE 128 1 1 50 0 20 123456789`; |
| | | var content = str1 + " " + st1 + " " + linewidth + " 1 " + height + " " + start_x + " " + start_y + " " + text + "\r\n"; |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°äºç»´ç |
| | | * @param start_x äºç»´ç èµ·å§ä½ç½® |
| | | * @param start_y äºç»´ç ç»æä½ç½® |
| | | * @param text äºç»´ç å
容 |
| | | * @param rotate æè½¬è§åº¦ |
| | | * @param ver : QrCode宽度(2-15) |
| | | * @param lel : QrCodeçº éç级(0-20) |
| | | */ |
| | | printerJobs.prototype.drawQrCode = function ( start_x, start_y, text, rotate, ver, lel) { |
| | | var str1 = "B"; |
| | | if (rotate != 0) { |
| | | str1 = "VB"; |
| | | } |
| | | var content = str1 + " QR " + start_x + " " + start_y + " " + " M " + " " + 2 + " " + "U" + " " + ver + " " + "\r\n" + "MA," + text + "\r\n" + "ENDQR" + "\r\n"; |
| | | |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°æå |
| | | * |
| | | * @param text_x èµ·å§æ¨ªåæ |
| | | * @param text_y èµ·å§çºµåæ |
| | | * @param text å符串 |
| | | * @param fontSize åä½å¤§å° 20:20ç¹éµ 1ï¼16ç¹éµï¼2ï¼24ç¹éµï¼3ï¼32ç¹éµï¼4ï¼24ç¹éµæ¾å¤§ä¸åï¼5ï¼32ç¹éµæ¾å¤§ä¸å |
| | | * 6ï¼24ç¹éµæ¾å¤§ä¸¤åï¼7ï¼32ç¹éµæ¾å¤§ä¸¤åï¼å
¶ä»ï¼24ç¹éµ |
| | | * @param rotate æè½¬è§åº¦ 0ï¼ä¸æè½¬ï¼1ï¼90度ï¼2ï¼180°ï¼3:270° |
| | | * @param bold æ¯å¦ç²ä½ 0ï¼åæ¶ï¼1ï¼è®¾ç½® |
| | | * @param underline æ¯ææä¸å线 false:没æï¼trueï¼æ |
| | | * @param reverse æ¯å¦åç½ falseï¼ä¸åç½ï¼trueï¼åç½ |
| | | */ |
| | | printerJobs.prototype.drawText = function ( text_x, text_y, text, fontSize, rotate, bold, reverse, underline) { |
| | | var st1 = ""; |
| | | if (rotate == 0) { |
| | | st1 = "T"; |
| | | } else if (rotate == 1) { |
| | | st1 = "T90"; |
| | | } else if (rotate == 2) { |
| | | st1 = "T180"; |
| | | } else if (rotate == 3) { |
| | | st1 = "T270"; |
| | | } |
| | | var rev = 0; |
| | | var und = 0; |
| | | if (reverse) { |
| | | rev = 1; |
| | | } |
| | | if (underline) { |
| | | und = 1; |
| | | } |
| | | var st2 = 24; |
| | | var st3 = 0; |
| | | if (fontSize == 20) { |
| | | st2 = 20; |
| | | st3 = 0; |
| | | } else if (fontSize == 1) { |
| | | st2 = 55; |
| | | st3 = 0; |
| | | } else if (fontSize == 2) { |
| | | st2 = 24; |
| | | st3 = 0; |
| | | } else if (fontSize == 3) { |
| | | st2 = 55; |
| | | st3 = 11; |
| | | } else if (fontSize == 4) { |
| | | st2 = 24; |
| | | st3 = 11; |
| | | } else if (fontSize == 5) { |
| | | st2 = 55; |
| | | st3 = 33; |
| | | } else if (fontSize == 6) { |
| | | st2 = 24; |
| | | st3 = 22; |
| | | } else if (fontSize == 7) { |
| | | st2 = 55; |
| | | st3 = 77; |
| | | } |
| | | var content = "SETBOLD " + bold + "\r\n" + "IT " + rev + "\r\n" + "UT " + und + "\r\n" + st1 + " " + st2 + " " + st3 + " " + text_x + " " + text_y + " " + text + "\r\n"; |
| | | |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * æå°åæ¾ |
| | | */ |
| | | printerJobs.prototype.inverse = function ( var1, var2, var3, var4, width) { |
| | | var str1 = "IL"; |
| | | var x0 = var1; |
| | | var y0 = var2; |
| | | var x1 = var3; |
| | | var y1 = var4; |
| | | var w = width; |
| | | if (var1 == var3) { |
| | | x0 = var1; y0 = var2; |
| | | x1 = var1 + width; |
| | | y1 = var2; |
| | | w = var4 - var2; |
| | | } |
| | | var content = str1 + " " + x0 + " " + y0 + " " + x1 + " " + y1 + " " + w + "\r\n"; |
| | | |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * çº¿æ¡ |
| | | * |
| | | * @param lineWidth 线æ¡å®½åº¦ |
| | | * @param start_x 线æ¡èµ·å§ç¹xåæ |
| | | * @param start_y 线æ¡èµ·å§ç¹yåæ |
| | | * @param end_x 线æ¡ç»æç¹xåæ |
| | | * @param end_y 线æ¡ç»æç¹yåæ |
| | | * @param fullline true:å®çº¿ false:?è线 |
| | | */ |
| | | printerJobs.prototype.drawLine = function ( width, x0, y0, x1, y1) { |
| | | var content = "LINE " + x0 + " " + y0 + " " + x1 + " " + y1 + " " + width + "\r\n"; |
| | | |
| | | |
| | | this.text(content); |
| | | return this; |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * æ¸
ç©ºä»»å¡ |
| | | */ |
| | | printerJobs.prototype.clear = function() { |
| | | this._queue = Array.from(commands.HARDWARE.HW_INIT); |
| | | return this; |
| | | }; |
| | | |
| | | /** |
| | | * è¿åArrayBuffer |
| | | */ |
| | | printerJobs.prototype.buffer = function() { |
| | | return new Uint8Array(this._queue).buffer; |
| | | }; |
| | | |
| | | module.exports = printerJobs; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // æå°æºçº¸å®½58mmï¼é¡µç宽度384ï¼å符宽度为1ï¼æ¯è¡æå¤çæ¾32个å符 |
| | | const PAGE_WIDTH = 384; |
| | | const MAX_CHAR_COUNT_EACH_LINE = 32; |
| | | |
| | | /** |
| | | * @param str |
| | | * @returns {boolean} stræ¯å¦å
¨æ¯ä¸æ |
| | | */ |
| | | function isChinese(str) { |
| | | return /^[\u4e00-\u9fa5]$/.test(str); |
| | | } |
| | | |
| | | /** |
| | | * è¿åå符串宽度(1ä¸ªä¸æ=2ä¸ªè±æå符) |
| | | * @param str |
| | | * @returns {number} |
| | | */ |
| | | function getStringWidth(str) { |
| | | let width = 0; |
| | | for (let i = 0, len = str.length; i < len; i++) { |
| | | width += isChinese(str.charAt(i)) ? 2 : 1; |
| | | } |
| | | return width; |
| | | } |
| | | |
| | | /** |
| | | * åä¸è¡è¾åºstr1, str2ï¼str1å±
å·¦, str2å±
å³ |
| | | * @param {string} str1 å
容1 |
| | | * @param {string} str2 å
容2 |
| | | * @param {number} fontWidth å符宽度 1/2 |
| | | * @param {string} fillWith str1 str2ä¹é´çå¡«å
å符 |
| | | * |
| | | */ |
| | | function inline(str1, str2, fillWith = ' ', fontWidth = 1) { |
| | | const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; |
| | | // éè¦å¡«å
çå符æ°é |
| | | let fillCount = lineWidth - (getStringWidth(str1) + getStringWidth(str2)) % lineWidth; |
| | | let fillStr = new Array(fillCount).fill(fillWith.charAt(0)).join(''); |
| | | return str1 + fillStr + str2; |
| | | } |
| | | |
| | | /** |
| | | * ç¨å符填å
䏿´è¡ |
| | | * @param {string} fillWith å¡«å
å符 |
| | | * @param {number} fontWidth å符宽度 1/2 |
| | | */ |
| | | function fillLine(fillWith = '-', fontWidth = 1) { |
| | | const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; |
| | | return new Array(lineWidth).fill(fillWith.charAt(0)).join(''); |
| | | } |
| | | |
| | | /** |
| | | * æåå
容å±
ä¸ï¼å·¦å³ç¨å符填å
|
| | | * @param {string} str æåå
容 |
| | | * @param {number} fontWidth å符宽度 1/2 |
| | | * @param {string} fillWith str1 str2ä¹é´çå¡«å
å符 |
| | | */ |
| | | function fillAround(str, fillWith = '-', fontWidth = 1) { |
| | | const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; |
| | | let strWidth = getStringWidth(str); |
| | | // å
容已ç»è¶
è¿ä¸è¡äºï¼æ²¡å¿
è¦å¡«å
|
| | | if (strWidth >= lineWidth) { |
| | | return str; |
| | | } |
| | | // éè¦å¡«å
çå符æ°é |
| | | let fillCount = lineWidth - strWidth; |
| | | // 左侧填å
çå符æ°é |
| | | let leftCount = Math.round(fillCount / 2); |
| | | // 两侧çå¡«å
å符ï¼éè¦èè左边éè¦å¡«å
ï¼å³è¾¹ä¸éè¦å¡«å
çæ
åµ |
| | | let fillStr = new Array(leftCount).fill(fillWith.charAt(0)).join(''); |
| | | return fillStr + str + fillStr.substr(0, fillCount - leftCount); |
| | | } |
| | | |
| | | // ArrayBuffer转16è¿åº¦åç¬¦ä¸²ç¤ºä¾ |
| | | function ab2hex(buffer) { |
| | | const hexArr = Array.prototype.map.call( |
| | | new Uint8Array(buffer), |
| | | function(bit) { |
| | | return ('00' + bit.toString(16)).slice(-2) |
| | | } |
| | | ) |
| | | return hexArr.join(',') |
| | | } |
| | | |
| | | |
| | | module.exports = { |
| | | inline: inline, |
| | | fillLine: fillLine, |
| | | fillAround: fillAround, |
| | | ab2hex:ab2hex, |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const formatTime = date => { |
| | | const year = date.getFullYear() |
| | | const month = date.getMonth() + 1 |
| | | const day = date.getDate() |
| | | const hour = date.getHours() |
| | | const minute = date.getMinutes() |
| | | const second = date.getSeconds() |
| | | |
| | | return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') |
| | | } |
| | | |
| | | const formatNumber = n => { |
| | | n = n.toString() |
| | | return n[1] ? n : '0' + n |
| | | } |
| | | |
| | | |
| | | //4å1 |
| | | function convert4to1(res) { |
| | | let arr = []; |
| | | for (let i = 0; i < res.length; i++) { |
| | | if (i % 4 == 0) { |
| | | let rule = 0.29900 * res[i] + 0.58700 * res[i + 1] + 0.11400 * res[i + 2]; |
| | | if (rule > 200) { |
| | | res[i] = 0; |
| | | } else { |
| | | res[i] = 1; |
| | | } |
| | | arr.push(res[i]); |
| | | } |
| | | } |
| | | return arr; |
| | | } |
| | | |
| | | //8å1 |
| | | function convert8to1(arr) { |
| | | let data = []; |
| | | for (let k = 0; k < arr.length; k += 8) { |
| | | let temp = arr[k] * 128 + arr[k + 1] * 64 + arr[k + 2] * 32 + arr[k + 3] * 16 + arr[k + 4] * 8 + arr[k + 5] * 4 + |
| | | arr[k + 6] * 2 + arr[k + 7] * 1 |
| | | data.push(temp); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | //æçå¾ç宽度æ¯240ï¼é£ä¹æ¼æ¥çæä»¤å°±æ¯[29, 118, 48, 0, 30, 0, 240, 0] |
| | | //æçå¾ç宽度æ¯160ï¼é£ä¹æ¼æ¥çæä»¤å°±æ¯[29, 118, 48, 0, 20, 0, 160, 0] |
| | | //è¡¥å
ä¸ç¹ï¼æå°éäºç»´ç çå¾çï¼å®½åº¦ä¸å®è¦æ¯24çåæ°ï¼ä¸ç¶æå°ä¹ä¼åºç°ä¹±ç |
| | | function toArrayBuffer(res) { |
| | | let arr = convert4to1(res.data); |
| | | let data = convert8to1(arr); |
| | | let cmds = [].concat([27, 97, 1], [29, 118, 48, 0, 30, 0, 240, 0], data, [27, 74, 3], [27, 64]); |
| | | return new Uint8Array(cmds).buffer; |
| | | } |
| | | |
| | | function zip_image(res) { |
| | | let arr = convert4to1(res.data); |
| | | let data = convert8to1(arr); |
| | | return data; |
| | | } |
| | | |
| | | module.exports = { |
| | | formatTime: formatTime, |
| | | toArrayBuffer: toArrayBuffer, |
| | | zip_image: zip_image, |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * weapp.qrcode.js v1.0.0 (https://github.com/yingye/weapp-qrcode#readme) |
| | | */ |
| | | |
| | | var hasOwn=Object.prototype.hasOwnProperty,toStr=Object.prototype.toString,defineProperty=Object.defineProperty,gOPD=Object.getOwnPropertyDescriptor,isArray=function(t){return"function"==typeof Array.isArray?Array.isArray(t):"[object Array]"===toStr.call(t)},isPlainObject=function(t){if(!t||"[object Object]"!==toStr.call(t))return!1;var e,r=hasOwn.call(t,"constructor"),o=t.constructor&&t.constructor.prototype&&hasOwn.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!r&&!o)return!1;for(e in t);return void 0===e||hasOwn.call(t,e)},setProperty=function(t,e){defineProperty&&"__proto__"===e.name?defineProperty(t,e.name,{enumerable:!0,configurable:!0,value:e.newValue,writable:!0}):t[e.name]=e.newValue},getProperty=function(t,e){if("__proto__"===e){if(!hasOwn.call(t,e))return;if(gOPD)return gOPD(t,e).value}return t[e]},extend=function t(){var e,r,o,n,i,a,s=arguments[0],u=1,l=arguments.length,h=!1;for("boolean"==typeof s&&(h=s,s=arguments[1]||{},u=2),(null==s||"object"!=typeof s&&"function"!=typeof s)&&(s={});u<l;++u)if(null!=(e=arguments[u]))for(r in e)o=getProperty(s,r),s!==(n=getProperty(e,r))&&(h&&n&&(isPlainObject(n)||(i=isArray(n)))?(i?(i=!1,a=o&&isArray(o)?o:[]):a=o&&isPlainObject(o)?o:{},setProperty(s,{name:r,newValue:t(h,a,n)})):void 0!==n&&setProperty(s,{name:r,newValue:n}));return s};function QR8bitByte(t){this.mode=QRMode.MODE_8BIT_BYTE,this.data=t}function QRCode(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=new Array}QR8bitByte.prototype={getLength:function(t){return this.data.length},write:function(t){for(var e=0;e<this.data.length;e++)t.put(this.data.charCodeAt(e),8)}},QRCode.prototype={addData:function(t){var e=new QR8bitByte(t);this.dataList.push(e),this.dataCache=null},isDark:function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){if(this.typeNumber<1){var t=1;for(t=1;t<40;t++){for(var e=QRRSBlock.getRSBlocks(t,this.errorCorrectLevel),r=new QRBitBuffer,o=0,n=0;n<e.length;n++)o+=e[n].dataCount;for(n=0;n<this.dataList.length;n++){var i=this.dataList[n];r.put(i.mode,4),r.put(i.getLength(),QRUtil.getLengthInBits(i.mode,t)),i.write(r)}if(r.getLengthInBits()<=8*o)break}this.typeNumber=t}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,e){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(var r=0;r<this.moduleCount;r++){this.modules[r]=new Array(this.moduleCount);for(var o=0;o<this.moduleCount;o++)this.modules[r][o]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,e),this.typeNumber>=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=QRCode.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,e)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(this.modules[t+r][e+o]=0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=QRUtil.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r);this.make();for(var n=0;n<this.modules.length;n++)for(var i=1*n,a=0;a<this.modules[n].length;a++){var s=1*a;this.modules[n][a]&&(o.beginFill(0,100),o.moveTo(s,i),o.lineTo(s+1,i),o.lineTo(s+1,i+1),o.lineTo(s,i+1),o.endFill())}return o},setupTimingPattern:function(){for(var t=8;t<this.moduleCount-8;t++)null==this.modules[t][6]&&(this.modules[t][6]=t%2==0);for(var e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)},setupPositionAdjustPattern:function(){for(var t=QRUtil.getPatternPosition(this.typeNumber),e=0;e<t.length;e++)for(var r=0;r<t.length;r++){var o=t[e],n=t[r];if(null==this.modules[o][n])for(var i=-2;i<=2;i++)for(var a=-2;a<=2;a++)this.modules[o+i][n+a]=-2==i||2==i||-2==a||2==a||0==i&&0==a}},setupTypeNumber:function(t){for(var e=QRUtil.getBCHTypeNumber(this.typeNumber),r=0;r<18;r++){var o=!t&&1==(e>>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(r=0;r<18;r++){o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=QRUtil.getBCHTypeInfo(r),n=0;n<15;n++){var i=!t&&1==(o>>n&1);n<6?this.modules[n][8]=i:n<8?this.modules[n+1][8]=i:this.modules[this.moduleCount-15+n][8]=i}for(n=0;n<15;n++){i=!t&&1==(o>>n&1);n<8?this.modules[8][this.moduleCount-n-1]=i:n<9?this.modules[8][15-n-1+1]=i:this.modules[8][15-n-1]=i}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,n=7,i=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var u=!1;i<t.length&&(u=1==(t[i]>>>n&1)),QRUtil.getMask(e,o,a-s)&&(u=!u),this.modules[o][a-s]=u,-1==--n&&(i++,n=7)}if((o+=r)<0||this.moduleCount<=o){o-=r,r=-r;break}}}},QRCode.PAD0=236,QRCode.PAD1=17,QRCode.createData=function(t,e,r){for(var o=QRRSBlock.getRSBlocks(t,e),n=new QRBitBuffer,i=0;i<r.length;i++){var a=r[i];n.put(a.mode,4),n.put(a.getLength(),QRUtil.getLengthInBits(a.mode,t)),a.write(n)}var s=0;for(i=0;i<o.length;i++)s+=o[i].dataCount;if(n.getLengthInBits()>8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(QRCode.PAD0,8),n.getLengthInBits()>=8*s));)n.put(QRCode.PAD1,8);return QRCode.createBytes(n,o)},QRCode.createBytes=function(t,e){for(var r=0,o=0,n=0,i=new Array(e.length),a=new Array(e.length),s=0;s<e.length;s++){var u=e[s].dataCount,l=e[s].totalCount-u;o=Math.max(o,u),n=Math.max(n,l),i[s]=new Array(u);for(var h=0;h<i[s].length;h++)i[s][h]=255&t.buffer[h+r];r+=u;var f=QRUtil.getErrorCorrectPolynomial(l),g=new QRPolynomial(i[s],f.getLength()-1).mod(f);a[s]=new Array(f.getLength()-1);for(h=0;h<a[s].length;h++){var c=h+g.getLength()-a[s].length;a[s][h]=c>=0?g.get(c):0}}var d=0;for(h=0;h<e.length;h++)d+=e[h].totalCount;var R=new Array(d),m=0;for(h=0;h<o;h++)for(s=0;s<e.length;s++)h<i[s].length&&(R[m++]=i[s][h]);for(h=0;h<n;h++)for(s=0;s<e.length;s++)h<a[s].length&&(R[m++]=a[s][h]);return R};for(var QRMode={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8},QRErrorCorrectLevel={L:1,M:0,Q:3,H:2},QRMaskPattern={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7},QRUtil={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(t){for(var e=t<<10;QRUtil.getBCHDigit(e)-QRUtil.getBCHDigit(QRUtil.G15)>=0;)e^=QRUtil.G15<<QRUtil.getBCHDigit(e)-QRUtil.getBCHDigit(QRUtil.G15);return(t<<10|e)^QRUtil.G15_MASK},getBCHTypeNumber:function(t){for(var e=t<<12;QRUtil.getBCHDigit(e)-QRUtil.getBCHDigit(QRUtil.G18)>=0;)e^=QRUtil.G18<<QRUtil.getBCHDigit(e)-QRUtil.getBCHDigit(QRUtil.G18);return t<<12|e},getBCHDigit:function(t){for(var e=0;0!=t;)e++,t>>>=1;return e},getPatternPosition:function(t){return QRUtil.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case QRMaskPattern.PATTERN000:return(e+r)%2==0;case QRMaskPattern.PATTERN001:return e%2==0;case QRMaskPattern.PATTERN010:return r%3==0;case QRMaskPattern.PATTERN011:return(e+r)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case QRMaskPattern.PATTERN101:return e*r%2+e*r%3==0;case QRMaskPattern.PATTERN110:return(e*r%2+e*r%3)%2==0;case QRMaskPattern.PATTERN111:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new QRPolynomial([1],0),r=0;r<t;r++)e=e.multiply(new QRPolynomial([1,QRMath.gexp(r)],0));return e},getLengthInBits:function(t,e){if(1<=e&&e<10)switch(t){case QRMode.MODE_NUMBER:return 10;case QRMode.MODE_ALPHA_NUM:return 9;case QRMode.MODE_8BIT_BYTE:case QRMode.MODE_KANJI:return 8;default:throw new Error("mode:"+t)}else if(e<27)switch(t){case QRMode.MODE_NUMBER:return 12;case QRMode.MODE_ALPHA_NUM:return 11;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 10;default:throw new Error("mode:"+t)}else{if(!(e<41))throw new Error("type:"+e);switch(t){case QRMode.MODE_NUMBER:return 14;case QRMode.MODE_ALPHA_NUM:return 13;case QRMode.MODE_8BIT_BYTE:return 16;case QRMode.MODE_KANJI:return 12;default:throw new Error("mode:"+t)}}},getLostPoint:function(t){for(var e=t.getModuleCount(),r=0,o=0;o<e;o++)for(var n=0;n<e;n++){for(var i=0,a=t.isDark(o,n),s=-1;s<=1;s++)if(!(o+s<0||e<=o+s))for(var u=-1;u<=1;u++)n+u<0||e<=n+u||0==s&&0==u||a==t.isDark(o+s,n+u)&&i++;i>5&&(r+=3+i-5)}for(o=0;o<e-1;o++)for(n=0;n<e-1;n++){var l=0;t.isDark(o,n)&&l++,t.isDark(o+1,n)&&l++,t.isDark(o,n+1)&&l++,t.isDark(o+1,n+1)&&l++,0!=l&&4!=l||(r+=3)}for(o=0;o<e;o++)for(n=0;n<e-6;n++)t.isDark(o,n)&&!t.isDark(o,n+1)&&t.isDark(o,n+2)&&t.isDark(o,n+3)&&t.isDark(o,n+4)&&!t.isDark(o,n+5)&&t.isDark(o,n+6)&&(r+=40);for(n=0;n<e;n++)for(o=0;o<e-6;o++)t.isDark(o,n)&&!t.isDark(o+1,n)&&t.isDark(o+2,n)&&t.isDark(o+3,n)&&t.isDark(o+4,n)&&!t.isDark(o+5,n)&&t.isDark(o+6,n)&&(r+=40);var h=0;for(n=0;n<e;n++)for(o=0;o<e;o++)t.isDark(o,n)&&h++;return r+=10*(Math.abs(100*h/e/e-50)/5)}},QRMath={glog:function(t){if(t<1)throw new Error("glog("+t+")");return QRMath.LOG_TABLE[t]},gexp:function(t){for(;t<0;)t+=255;for(;t>=256;)t-=255;return QRMath.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},i=0;i<8;i++)QRMath.EXP_TABLE[i]=1<<i;for(i=8;i<256;i++)QRMath.EXP_TABLE[i]=QRMath.EXP_TABLE[i-4]^QRMath.EXP_TABLE[i-5]^QRMath.EXP_TABLE[i-6]^QRMath.EXP_TABLE[i-8];for(i=0;i<255;i++)QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]]=i;function QRPolynomial(t,e){if(void 0==t.length)throw new Error(t.length+"/"+e);for(var r=0;r<t.length&&0==t[r];)r++;this.num=new Array(t.length-r+e);for(var o=0;o<t.length-r;o++)this.num[o]=t[o+r]}function QRRSBlock(t,e){this.totalCount=t,this.dataCount=e}function QRBitBuffer(){this.buffer=new Array,this.length=0}function utf16to8(t){var e,r,o,n;for(e="",o=t.length,r=0;r<o;r++)(n=t.charCodeAt(r))>=1&&n<=127?e+=t.charAt(r):n>2047?(e+=String.fromCharCode(224|n>>12&15),e+=String.fromCharCode(128|n>>6&63),e+=String.fromCharCode(128|n>>0&63)):(e+=String.fromCharCode(192|n>>6&31),e+=String.fromCharCode(128|n>>0&63));return e}function drawQrcode(t){t=t||{},(t=extend(!0,{width:256,height:256,x:0,y:0,typeNumber:-1,correctLevel:QRErrorCorrectLevel.H,background:"#ffffff",foreground:"#000000",image:{imageResource:"",dx:0,dy:0,dWidth:100,dHeight:100}},t)).canvasId||t.ctx?function(){var e,r=new QRCode(t.typeNumber,t.correctLevel);r.addData(utf16to8(t.text)),r.make(),e=t.ctx?t.ctx:t._this?wx.createCanvasContext&&wx.createCanvasContext(t.canvasId,t._this):wx.createCanvasContext&&wx.createCanvasContext(t.canvasId);for(var o=t.width/r.getModuleCount(),n=t.height/r.getModuleCount(),i=0;i<r.getModuleCount();i++)for(var a=0;a<r.getModuleCount();a++){var s=r.isDark(i,a)?t.foreground:t.background;e.setFillStyle(s);var u=Math.ceil((a+1)*o)-Math.floor(a*o),l=Math.ceil((i+1)*o)-Math.floor(i*o);e.fillRect(Math.round(a*o)+t.x,Math.round(i*n)+t.y,u,l)}t.image.imageResource&&e.drawImage(t.image.imageResource,t.image.dx,t.image.dy,t.image.dWidth,t.image.dHeight);e.draw(!1,function(e){t.callback&&t.callback(e)})}():console.warn("please set canvasId or ctx!")}QRPolynomial.prototype={get:function(t){return this.num[t]},getLength:function(){return this.num.length},multiply:function(t){for(var e=new Array(this.getLength()+t.getLength()-1),r=0;r<this.getLength();r++)for(var o=0;o<t.getLength();o++)e[r+o]^=QRMath.gexp(QRMath.glog(this.get(r))+QRMath.glog(t.get(o)));return new QRPolynomial(e,0)},mod:function(t){if(this.getLength()-t.getLength()<0)return this;for(var e=QRMath.glog(this.get(0))-QRMath.glog(t.get(0)),r=new Array(this.getLength()),o=0;o<this.getLength();o++)r[o]=this.get(o);for(o=0;o<t.getLength();o++)r[o]^=QRMath.gexp(QRMath.glog(t.get(o))+e);return new QRPolynomial(r,0).mod(t)}},QRRSBlock.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],QRRSBlock.getRSBlocks=function(t,e){var r=QRRSBlock.getRsBlockTable(t,e);if(void 0==r)throw new Error("bad rs block @ typeNumber:"+t+"/errorCorrectLevel:"+e);for(var o=r.length/3,n=new Array,i=0;i<o;i++)for(var a=r[3*i+0],s=r[3*i+1],u=r[3*i+2],l=0;l<a;l++)n.push(new QRRSBlock(s,u));return n},QRRSBlock.getRsBlockTable=function(t,e){switch(e){case QRErrorCorrectLevel.L:return QRRSBlock.RS_BLOCK_TABLE[4*(t-1)+0];case QRErrorCorrectLevel.M:return QRRSBlock.RS_BLOCK_TABLE[4*(t-1)+1];case QRErrorCorrectLevel.Q:return QRRSBlock.RS_BLOCK_TABLE[4*(t-1)+2];case QRErrorCorrectLevel.H:return QRRSBlock.RS_BLOCK_TABLE[4*(t-1)+3];default:return}},QRBitBuffer.prototype={get:function(t){var e=Math.floor(t/8);return 1==(this.buffer[e]>>>7-t%8&1)},put:function(t,e){for(var r=0;r<e;r++)this.putBit(1==(t>>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};export default drawQrcode; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const barcodes = require('./barcodes/index.js')['default']; |
| | | let barcode = {}; |
| | | (function () { |
| | | // åå§å |
| | | barcode = function (cont, ctxid, options, ctxsize, result) { |
| | | let ops = {}, newOptions, encodings, globaContext, ctx, globaCtxid, cbCanvasSize, cbResult; |
| | | globaCtxid = ctxid |
| | | cbCanvasSize = ctxsize |
| | | cbResult = result |
| | | newOptions = Object.assign(ops, options); |
| | | // ä¿®æmargin |
| | | fixMargin(newOptions) |
| | | // å¤çoptions æ°æ® |
| | | if (newOptions.text == '' || cont == '') { |
| | | return false |
| | | } |
| | | // è·åctx |
| | | globaContext = cont |
| | | ctx = uni.createCanvasContext(globaCtxid, globaContext) |
| | | // è·åç¼ç æ°æ® |
| | | encodings = new barcodes[newOptions.format.toUpperCase()](newOptions.text, newOptions).encode() |
| | | let fixencodings = fixEncodings(encodings, newOptions) |
| | | // è¿åcanvaså®é
å¤§å° |
| | | cbCanvasSize({ width: fixencodings.width, height: fixencodings.height }) |
| | | // ç»å¶canvas |
| | | setTimeout(() => { |
| | | drawCanvas.render(newOptions, fixencodings) |
| | | }, 50); |
| | | // ç»å¶canvas |
| | | let drawCanvas = { |
| | | render(options, encoding) { |
| | | this.prepare(options, encoding) |
| | | encoding.encodings.forEach((v, i) => { |
| | | this.barcode(options, v) |
| | | this.text(options, v) |
| | | this.move(v) |
| | | }); |
| | | this.draw(options, encoding) |
| | | }, |
| | | barcode(options, encoding) { |
| | | let binary = encoding.data; |
| | | let yFrom; |
| | | if (options.textPosition == "top") { |
| | | yFrom = options.marginTop + options.fontSize + options.textMargin; |
| | | } else { |
| | | yFrom = options.marginTop; |
| | | } |
| | | // ç»å¶æ¡ç |
| | | ctx.fillStyle = options.lineColor; |
| | | for (let b = 0; b < binary.length; b++) { |
| | | let x = b * options.width + encoding.barcodePadding; |
| | | let height = options.height |
| | | if (encoding.options) { |
| | | if (encoding.options.height != undefined) { |
| | | height = encoding.options.height |
| | | } |
| | | } |
| | | if (binary[b] === "1") { |
| | | ctx.fillRect(x, yFrom, options.width, height); |
| | | } else if (binary[b]) { |
| | | ctx.fillRect(x, yFrom, options.width, height * binary[b]); |
| | | } |
| | | } |
| | | }, |
| | | text(options, encoding) { |
| | | if (options.displayValue) { |
| | | let x, y, align, size; |
| | | if (options.textPosition == "top") { |
| | | y = options.marginTop + options.fontSize; |
| | | } else { |
| | | y = options.height + options.textMargin + options.marginTop + options.fontSize; |
| | | } |
| | | if (encoding.options) { |
| | | if (encoding.options.textAlign != undefined) { |
| | | align = encoding.options.textAlign |
| | | } |
| | | if (encoding.options.fontSize != undefined) { |
| | | size = encoding.options.fontSize |
| | | } |
| | | } else { |
| | | align = options.textAlign |
| | | size = options.fontSize |
| | | } |
| | | ctx.setFontSize(size) |
| | | if (align == "left" || encoding.barcodePadding > 0) { |
| | | x = 0; |
| | | ctx.setTextAlign('left') |
| | | } else if (align == "right") { |
| | | x = encoding.width - 1; |
| | | ctx.setTextAlign('right') |
| | | } |
| | | else { |
| | | x = encoding.width / 2; |
| | | ctx.setTextAlign('center'); |
| | | } |
| | | ctx.fillStyle = options.fontColor; |
| | | if (encoding.text != undefined) { |
| | | ctx.fillText(encoding.text, x, y); |
| | | } |
| | | } |
| | | }, |
| | | move(encoding) { |
| | | ctx.translate(encoding.width, 0); |
| | | }, |
| | | prepare(options, encoding) { |
| | | // ç»å¶èæ¯ |
| | | if (options.background) { |
| | | ctx.fillStyle = options.background; |
| | | ctx.fillRect(0, 0, encoding.width, encoding.height); |
| | | } |
| | | ctx.translate(options.marginLeft, 0); |
| | | }, |
| | | draw(options, encoding) { |
| | | ctx.draw(false, () => { |
| | | this.toImgs(options, encoding) |
| | | }) |
| | | }, |
| | | toImgs(options, encoding) { |
| | | setTimeout(() => { |
| | | uni.canvasToTempFilePath({ |
| | | width: encoding.width, |
| | | height: encoding.height, |
| | | destWidth: encoding.width, |
| | | destHeight: encoding.height, |
| | | canvasId: globaCtxid, |
| | | fileType: 'png', |
| | | success: function (res) { |
| | | cbResult(res.tempFilePath) |
| | | }, |
| | | fail: function (res) { |
| | | cbResult(res) |
| | | }, |
| | | complete: function () { |
| | | // uni.hideLoading(); |
| | | }, |
| | | }, globaContext); |
| | | }, options.text.length + 100); |
| | | } |
| | | } |
| | | // æ··å
¥canvasæ°æ® |
| | | function fixEncodings(encoding, options) { |
| | | let encodingArr = [], width = options.marginLeft + options.marginRight, height; |
| | | if (!Array.isArray(encoding)) { |
| | | encodingArr[0] = JSON.parse(JSON.stringify(encoding)) |
| | | } else { |
| | | encodingArr = [...encoding] |
| | | } |
| | | encodingArr.forEach((v, i) => { |
| | | // è·åææ¬å®½åº¦ |
| | | let textWidth = ctx.measureText(encodingArr[i].text ? encodingArr[i].text : '').width; |
| | | // è·åæ¡å½¢ç 宽度 |
| | | let barcodeWidth = encodingArr[i].data.length * options.width; |
| | | // è·åå
è¾¹è· |
| | | let barcodePadding = 0; |
| | | if (options.displayValue && barcodeWidth < textWidth) { |
| | | if (options.textAlign == "center") { |
| | | barcodePadding = Math.floor((textWidth - barcodeWidth) / 2); |
| | | } else if (options.textAlign == "left") { |
| | | barcodePadding = 0; |
| | | } else if (options.textAlign == "right") { |
| | | barcodePadding = Math.floor(textWidth - barcodeWidth); |
| | | } |
| | | } |
| | | // æ··å
¥encodingArr[i] |
| | | encodingArr[i].barcodePadding = barcodePadding |
| | | encodingArr[i].width = Math.ceil(Math.max(textWidth, barcodeWidth)) |
| | | width += encodingArr[i].width |
| | | if (encodingArr[i].options) { |
| | | if (encodingArr[i].options.height != undefined) { |
| | | encodingArr[i].height = encodingArr[i].options.height + (options.displayValue && (encodingArr[i].text ? encodingArr[i].text : '').length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom; |
| | | } else { |
| | | encodingArr[i].height = height = options.height + (options.displayValue && (encodingArr[i].text ? encodingArr[i].text : '').length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom; |
| | | } |
| | | } else { |
| | | encodingArr[i].height = height = options.height + (options.displayValue && (encodingArr[i].text ? encodingArr[i].text : '').length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom; |
| | | } |
| | | }); |
| | | return { encodings: encodingArr, width, height }; |
| | | } |
| | | // ä¿®æ£Margin |
| | | function fixMargin(options) { |
| | | options.marginTop = options.marginTop == undefined ? options.margin : options.marginTop; |
| | | options.marginBottom = options.marginBottom == undefined ? options.margin : options.marginBottom; |
| | | options.marginRight = options.marginRight == undefined ? options.margin : options.marginRight; |
| | | options.marginLeft = options.marginLeft == undefined ? options.margin : options.marginLeft; |
| | | } |
| | | }; |
| | | })() |
| | | |
| | | export default barcode |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | var Barcode = function Barcode(data, options) { |
| | | _classCallCheck(this, Barcode); |
| | | |
| | | this.data = data; |
| | | this.text = options.text || data; |
| | | this.options = options; |
| | | }; |
| | | |
| | | exports.default = Barcode; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require('../Barcode.js'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | // This is the master class, |
| | | // it does require the start code to be included in the string |
| | | var CODE128 = function (_Barcode) { |
| | | _inherits(CODE128, _Barcode); |
| | | |
| | | function CODE128(data, options) { |
| | | _classCallCheck(this, CODE128); |
| | | |
| | | // Get array of ascii codes from data |
| | | var _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options)); |
| | | |
| | | _this.bytes = data.split('').map(function (char) { |
| | | return char.charCodeAt(0); |
| | | }); |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(CODE128, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | // ASCII value ranges 0-127, 200-211 |
| | | return (/^[\x00-\x7F\xC8-\xD3]+$/.test(this.data) |
| | | ); |
| | | } |
| | | |
| | | // The public encoding function |
| | | |
| | | }, { |
| | | key: 'encode', |
| | | value: function encode() { |
| | | var bytes = this.bytes; |
| | | // Remove the start code from the bytes and set its index |
| | | var startIndex = bytes.shift() - 105; |
| | | // Get start set by index |
| | | var startSet = _constants.SET_BY_CODE[startIndex]; |
| | | |
| | | if (startSet === undefined) { |
| | | throw new RangeError('The encoding does not start with a start character.'); |
| | | } |
| | | |
| | | if (this.shouldEncodeAsEan128() === true) { |
| | | bytes.unshift(_constants.FNC1); |
| | | } |
| | | |
| | | // Start encode with the right type |
| | | var encodingResult = CODE128.next(bytes, 1, startSet); |
| | | |
| | | return { |
| | | text: this.text === this.data ? this.text.replace(/[^\x20-\x7E]/g, '') : this.text, |
| | | data: |
| | | // Add the start bits |
| | | CODE128.getBar(startIndex) + |
| | | // Add the encoded bits |
| | | encodingResult.result + |
| | | // Add the checksum |
| | | CODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) + |
| | | // Add the end bits |
| | | CODE128.getBar(_constants.STOP) |
| | | }; |
| | | } |
| | | |
| | | // GS1-128/EAN-128 |
| | | |
| | | }, { |
| | | key: 'shouldEncodeAsEan128', |
| | | value: function shouldEncodeAsEan128() { |
| | | var isEAN128 = this.options.ean128 || false; |
| | | if (typeof isEAN128 === 'string') { |
| | | isEAN128 = isEAN128.toLowerCase() === 'true'; |
| | | } |
| | | return isEAN128; |
| | | } |
| | | |
| | | // Get a bar symbol by index |
| | | |
| | | }], [{ |
| | | key: 'getBar', |
| | | value: function getBar(index) { |
| | | return _constants.BARS[index] ? _constants.BARS[index].toString() : ''; |
| | | } |
| | | |
| | | // Correct an index by a set and shift it from the bytes array |
| | | |
| | | }, { |
| | | key: 'correctIndex', |
| | | value: function correctIndex(bytes, set) { |
| | | if (set === _constants.SET_A) { |
| | | var charCode = bytes.shift(); |
| | | return charCode < 32 ? charCode + 64 : charCode - 32; |
| | | } else if (set === _constants.SET_B) { |
| | | return bytes.shift() - 32; |
| | | } else { |
| | | return (bytes.shift() - 48) * 10 + bytes.shift() - 48; |
| | | } |
| | | } |
| | | }, { |
| | | key: 'next', |
| | | value: function next(bytes, pos, set) { |
| | | if (!bytes.length) { |
| | | return { result: '', checksum: 0 }; |
| | | } |
| | | |
| | | var nextCode = void 0, |
| | | index = void 0; |
| | | |
| | | // Special characters |
| | | if (bytes[0] >= 200) { |
| | | index = bytes.shift() - 105; |
| | | var nextSet = _constants.SWAP[index]; |
| | | |
| | | // Swap to other set |
| | | if (nextSet !== undefined) { |
| | | nextCode = CODE128.next(bytes, pos + 1, nextSet); |
| | | } |
| | | // Continue on current set but encode a special character |
| | | else { |
| | | // Shift |
| | | if ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) { |
| | | // Convert the next character so that is encoded correctly |
| | | bytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0]; |
| | | } |
| | | nextCode = CODE128.next(bytes, pos + 1, set); |
| | | } |
| | | } |
| | | // Continue encoding |
| | | else { |
| | | index = CODE128.correctIndex(bytes, set); |
| | | nextCode = CODE128.next(bytes, pos + 1, set); |
| | | } |
| | | |
| | | // Get the correct binary encoding and calculate the weight |
| | | var enc = CODE128.getBar(index); |
| | | var weight = index * pos; |
| | | |
| | | return { |
| | | result: enc + nextCode.result, |
| | | checksum: weight + nextCode.checksum |
| | | }; |
| | | } |
| | | }]); |
| | | |
| | | return CODE128; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.default = CODE128; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _CODE2 = require('./CODE128.js'); |
| | | |
| | | var _CODE3 = _interopRequireDefault(_CODE2); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var CODE128A = function (_CODE) { |
| | | _inherits(CODE128A, _CODE); |
| | | |
| | | function CODE128A(string, options) { |
| | | _classCallCheck(this, CODE128A); |
| | | |
| | | return _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options)); |
| | | } |
| | | |
| | | _createClass(CODE128A, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return new RegExp('^' + _constants.A_CHARS + '+$').test(this.data); |
| | | } |
| | | }]); |
| | | |
| | | return CODE128A; |
| | | }(_CODE3.default); |
| | | |
| | | exports.default = CODE128A; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _CODE2 = require('./CODE128.js'); |
| | | |
| | | var _CODE3 = _interopRequireDefault(_CODE2); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var CODE128B = function (_CODE) { |
| | | _inherits(CODE128B, _CODE); |
| | | |
| | | function CODE128B(string, options) { |
| | | _classCallCheck(this, CODE128B); |
| | | |
| | | return _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options)); |
| | | } |
| | | |
| | | _createClass(CODE128B, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return new RegExp('^' + _constants.B_CHARS + '+$').test(this.data); |
| | | } |
| | | }]); |
| | | |
| | | return CODE128B; |
| | | }(_CODE3.default); |
| | | |
| | | exports.default = CODE128B; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _CODE2 = require('./CODE128.js'); |
| | | |
| | | var _CODE3 = _interopRequireDefault(_CODE2); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var CODE128C = function (_CODE) { |
| | | _inherits(CODE128C, _CODE); |
| | | |
| | | function CODE128C(string, options) { |
| | | _classCallCheck(this, CODE128C); |
| | | |
| | | return _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options)); |
| | | } |
| | | |
| | | _createClass(CODE128C, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return new RegExp('^' + _constants.C_CHARS + '+$').test(this.data); |
| | | } |
| | | }]); |
| | | |
| | | return CODE128C; |
| | | }(_CODE3.default); |
| | | |
| | | exports.default = CODE128C; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _CODE2 = require('./CODE128'); |
| | | |
| | | var _CODE3 = _interopRequireDefault(_CODE2); |
| | | |
| | | var _auto = require('./auto'); |
| | | |
| | | var _auto2 = _interopRequireDefault(_auto); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var CODE128AUTO = function (_CODE) { |
| | | _inherits(CODE128AUTO, _CODE); |
| | | |
| | | function CODE128AUTO(data, options) { |
| | | _classCallCheck(this, CODE128AUTO); |
| | | |
| | | // ASCII value ranges 0-127, 200-211 |
| | | if (/^[\x00-\x7F\xC8-\xD3]+$/.test(data)) { |
| | | var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options)); |
| | | } else { |
| | | var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options)); |
| | | } |
| | | return _possibleConstructorReturn(_this); |
| | | } |
| | | |
| | | return CODE128AUTO; |
| | | }(_CODE3.default); |
| | | |
| | | exports.default = CODE128AUTO; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | // Match Set functions |
| | | var matchSetALength = function matchSetALength(string) { |
| | | return string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length; |
| | | }; |
| | | var matchSetBLength = function matchSetBLength(string) { |
| | | return string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length; |
| | | }; |
| | | var matchSetC = function matchSetC(string) { |
| | | return string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0]; |
| | | }; |
| | | |
| | | // CODE128A or CODE128B |
| | | function autoSelectFromAB(string, isA) { |
| | | var ranges = isA ? _constants.A_CHARS : _constants.B_CHARS; |
| | | var untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)')); |
| | | |
| | | if (untilC) { |
| | | return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length)); |
| | | } |
| | | |
| | | var chars = string.match(new RegExp('^' + ranges + '+'))[0]; |
| | | |
| | | if (chars.length === string.length) { |
| | | return string; |
| | | } |
| | | |
| | | return chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA); |
| | | } |
| | | |
| | | // CODE128C |
| | | function autoSelectFromC(string) { |
| | | var cMatch = matchSetC(string); |
| | | var length = cMatch.length; |
| | | |
| | | if (length === string.length) { |
| | | return string; |
| | | } |
| | | |
| | | string = string.substring(length); |
| | | |
| | | // Select A/B depending on the longest match |
| | | var isA = matchSetALength(string) >= matchSetBLength(string); |
| | | return cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA); |
| | | } |
| | | |
| | | // Detect Code Set (A, B or C) and format the string |
| | | |
| | | exports.default = function (string) { |
| | | var newString = void 0; |
| | | var cLength = matchSetC(string).length; |
| | | |
| | | // Select 128C if the string start with enough digits |
| | | if (cLength >= 2) { |
| | | newString = _constants.C_START_CHAR + autoSelectFromC(string); |
| | | } else { |
| | | // Select A/B depending on the longest match |
| | | var isA = matchSetALength(string) > matchSetBLength(string); |
| | | newString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA); |
| | | } |
| | | |
| | | return newString.replace(/[\xCD\xCE]([^])[\xCD\xCE]/, // Any sequence between 205 and 206 characters |
| | | function (match, char) { |
| | | return String.fromCharCode(203) + char; |
| | | }); |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _SET_BY_CODE; |
| | | |
| | | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } |
| | | |
| | | // constants for internal usage |
| | | var SET_A = exports.SET_A = 0; |
| | | var SET_B = exports.SET_B = 1; |
| | | var SET_C = exports.SET_C = 2; |
| | | |
| | | // Special characters |
| | | var SHIFT = exports.SHIFT = 98; |
| | | var START_A = exports.START_A = 103; |
| | | var START_B = exports.START_B = 104; |
| | | var START_C = exports.START_C = 105; |
| | | var MODULO = exports.MODULO = 103; |
| | | var STOP = exports.STOP = 106; |
| | | var FNC1 = exports.FNC1 = 207; |
| | | |
| | | // Get set by start code |
| | | var SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE); |
| | | |
| | | // Get next set by code |
| | | var SWAP = exports.SWAP = { |
| | | 101: SET_A, |
| | | 100: SET_B, |
| | | 99: SET_C |
| | | }; |
| | | |
| | | var A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105 |
| | | var B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105 |
| | | var C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105 |
| | | |
| | | // 128A (Code Set A) |
| | | // ASCII characters 00 to 95 (0â9, AâZ and control codes), special characters, and FNC 1â4 |
| | | var A_CHARS = exports.A_CHARS = "[\x00-\x5F\xC8-\xCF]"; |
| | | |
| | | // 128B (Code Set B) |
| | | // ASCII characters 32 to 127 (0â9, AâZ, aâz), special characters, and FNC 1â4 |
| | | var B_CHARS = exports.B_CHARS = "[\x20-\x7F\xC8-\xCF]"; |
| | | |
| | | // 128C (Code Set C) |
| | | // 00â99 (encodes two digits with a single code point) and FNC1 |
| | | var C_CHARS = exports.C_CHARS = "(\xCF*[0-9]{2}\xCF*)"; |
| | | |
| | | // CODE128 includes 107 symbols: |
| | | // 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one) |
| | | // Each symbol consist of three black bars (1) and three white spaces (0). |
| | | var BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011]; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined; |
| | | |
| | | var _CODE128_AUTO = require('./CODE128_AUTO.js'); |
| | | |
| | | var _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO); |
| | | |
| | | var _CODE128A = require('./CODE128A.js'); |
| | | |
| | | var _CODE128A2 = _interopRequireDefault(_CODE128A); |
| | | |
| | | var _CODE128B = require('./CODE128B.js'); |
| | | |
| | | var _CODE128B2 = _interopRequireDefault(_CODE128B); |
| | | |
| | | var _CODE128C = require('./CODE128C.js'); |
| | | |
| | | var _CODE128C2 = _interopRequireDefault(_CODE128C); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | exports.CODE128 = _CODE128_AUTO2.default; |
| | | exports.CODE128A = _CODE128A2.default; |
| | | exports.CODE128B = _CODE128B2.default; |
| | | exports.CODE128C = _CODE128C2.default; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.CODE39 = undefined; |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/Code_39#Encoding |
| | | |
| | | var CODE39 = function (_Barcode) { |
| | | _inherits(CODE39, _Barcode); |
| | | |
| | | function CODE39(data, options) { |
| | | _classCallCheck(this, CODE39); |
| | | |
| | | data = data.toUpperCase(); |
| | | |
| | | // Calculate mod43 checksum if enabled |
| | | if (options.mod43) { |
| | | data += getCharacter(mod43checksum(data)); |
| | | } |
| | | |
| | | return _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(CODE39, [{ |
| | | key: "encode", |
| | | value: function encode() { |
| | | // First character is always a * |
| | | var result = getEncoding("*"); |
| | | |
| | | // Take every character and add the binary representation to the result |
| | | for (var i = 0; i < this.data.length; i++) { |
| | | result += getEncoding(this.data[i]) + "0"; |
| | | } |
| | | |
| | | // Last character is always a * |
| | | result += getEncoding("*"); |
| | | return { |
| | | data: result, |
| | | text: this.text |
| | | }; |
| | | } |
| | | }, { |
| | | key: "valid", |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9A-Z\-\.\ \$\/\+\%]+$/) !== -1; |
| | | } |
| | | }]); |
| | | |
| | | return CODE39; |
| | | }(_Barcode3.default); |
| | | |
| | | // All characters. The position in the array is the (checksum) value |
| | | |
| | | |
| | | var characters = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "-", ".", " ", "$", "/", "+", "%", "*"]; |
| | | |
| | | // The decimal representation of the characters, is converted to the |
| | | // corresponding binary with the getEncoding function |
| | | var encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770]; |
| | | |
| | | // Get the binary representation of a character by converting the encodings |
| | | // from decimal to binary |
| | | function getEncoding(character) { |
| | | return getBinary(characterValue(character)); |
| | | } |
| | | |
| | | function getBinary(characterValue) { |
| | | return encodings[characterValue].toString(2); |
| | | } |
| | | |
| | | function getCharacter(characterValue) { |
| | | return characters[characterValue]; |
| | | } |
| | | |
| | | function characterValue(character) { |
| | | return characters.indexOf(character); |
| | | } |
| | | |
| | | function mod43checksum(data) { |
| | | var checksum = 0; |
| | | for (var i = 0; i < data.length; i++) { |
| | | checksum += characterValue(data[i]); |
| | | } |
| | | |
| | | checksum = checksum % 43; |
| | | return checksum; |
| | | } |
| | | |
| | | exports.CODE39 = CODE39; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | var _encoder = require('./encoder'); |
| | | |
| | | var _encoder2 = _interopRequireDefault(_encoder); |
| | | |
| | | var _Barcode2 = require('../Barcode'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | // Base class for EAN8 & EAN13 |
| | | var EAN = function (_Barcode) { |
| | | _inherits(EAN, _Barcode); |
| | | |
| | | function EAN(data, options) { |
| | | _classCallCheck(this, EAN); |
| | | |
| | | // Make sure the font is not bigger than the space between the guard bars |
| | | var _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options)); |
| | | |
| | | _this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize; |
| | | |
| | | // Make the guard bars go down half the way of the text |
| | | _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(EAN, [{ |
| | | key: 'encode', |
| | | value: function encode() { |
| | | return this.options.flat ? this.encodeFlat() : this.encodeGuarded(); |
| | | } |
| | | }, { |
| | | key: 'leftText', |
| | | value: function leftText(from, to) { |
| | | return this.text.substr(from, to); |
| | | } |
| | | }, { |
| | | key: 'leftEncode', |
| | | value: function leftEncode(data, structure) { |
| | | return (0, _encoder2.default)(data, structure); |
| | | } |
| | | }, { |
| | | key: 'rightText', |
| | | value: function rightText(from, to) { |
| | | return this.text.substr(from, to); |
| | | } |
| | | }, { |
| | | key: 'rightEncode', |
| | | value: function rightEncode(data, structure) { |
| | | return (0, _encoder2.default)(data, structure); |
| | | } |
| | | }, { |
| | | key: 'encodeGuarded', |
| | | value: function encodeGuarded() { |
| | | var textOptions = { fontSize: this.fontSize }; |
| | | var guardOptions = { height: this.guardHeight }; |
| | | |
| | | return [{ data: _constants.SIDE_BIN, options: guardOptions }, { data: this.leftEncode(), text: this.leftText(), options: textOptions }, { data: _constants.MIDDLE_BIN, options: guardOptions }, { data: this.rightEncode(), text: this.rightText(), options: textOptions }, { data: _constants.SIDE_BIN, options: guardOptions }]; |
| | | } |
| | | }, { |
| | | key: 'encodeFlat', |
| | | value: function encodeFlat() { |
| | | var data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN]; |
| | | |
| | | return { |
| | | data: data.join(''), |
| | | text: this.text |
| | | }; |
| | | } |
| | | }]); |
| | | |
| | | return EAN; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.default = EAN; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | var _EAN2 = require('./EAN'); |
| | | |
| | | var _EAN3 = _interopRequireDefault(_EAN2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode |
| | | |
| | | // Calculate the checksum digit |
| | | // https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit |
| | | var checksum = function checksum(number) { |
| | | var res = number.substr(0, 12).split('').map(function (n) { |
| | | return +n; |
| | | }).reduce(function (sum, a, idx) { |
| | | return idx % 2 ? sum + a * 3 : sum + a; |
| | | }, 0); |
| | | |
| | | return (10 - res % 10) % 10; |
| | | }; |
| | | |
| | | var EAN13 = function (_EAN) { |
| | | _inherits(EAN13, _EAN); |
| | | |
| | | function EAN13(data, options) { |
| | | _classCallCheck(this, EAN13); |
| | | |
| | | // Add checksum if it does not exist |
| | | if (data.search(/^[0-9]{12}$/) !== -1) { |
| | | data += checksum(data); |
| | | } |
| | | |
| | | // Adds a last character to the end of the barcode |
| | | var _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options)); |
| | | |
| | | _this.lastChar = options.lastChar; |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(EAN13, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data); |
| | | } |
| | | }, { |
| | | key: 'leftText', |
| | | value: function leftText() { |
| | | return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6); |
| | | } |
| | | }, { |
| | | key: 'leftEncode', |
| | | value: function leftEncode() { |
| | | var data = this.data.substr(1, 6); |
| | | var structure = _constants.EAN13_STRUCTURE[this.data[0]]; |
| | | return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure); |
| | | } |
| | | }, { |
| | | key: 'rightText', |
| | | value: function rightText() { |
| | | return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6); |
| | | } |
| | | }, { |
| | | key: 'rightEncode', |
| | | value: function rightEncode() { |
| | | var data = this.data.substr(7, 6); |
| | | return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR'); |
| | | } |
| | | |
| | | // The "standard" way of printing EAN13 barcodes with guard bars |
| | | |
| | | }, { |
| | | key: 'encodeGuarded', |
| | | value: function encodeGuarded() { |
| | | var data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this); |
| | | |
| | | // Extend data with left digit & last character |
| | | if (this.options.displayValue) { |
| | | data.unshift({ |
| | | data: '000000000000', |
| | | text: this.text.substr(0, 1), |
| | | options: { textAlign: 'left', fontSize: this.fontSize } |
| | | }); |
| | | |
| | | if (this.options.lastChar) { |
| | | data.push({ |
| | | data: '00' |
| | | }); |
| | | data.push({ |
| | | data: '00000', |
| | | text: this.options.lastChar, |
| | | options: { fontSize: this.fontSize } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | return data; |
| | | } |
| | | }]); |
| | | |
| | | return EAN13; |
| | | }(_EAN3.default); |
| | | |
| | | exports.default = EAN13; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | var _encoder = require('./encoder'); |
| | | |
| | | var _encoder2 = _interopRequireDefault(_encoder); |
| | | |
| | | var _Barcode2 = require('../Barcode'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/EAN_2#Encoding |
| | | |
| | | var EAN2 = function (_Barcode) { |
| | | _inherits(EAN2, _Barcode); |
| | | |
| | | function EAN2(data, options) { |
| | | _classCallCheck(this, EAN2); |
| | | |
| | | return _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(EAN2, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{2}$/) !== -1; |
| | | } |
| | | }, { |
| | | key: 'encode', |
| | | value: function encode() { |
| | | // Choose the structure based on the number mod 4 |
| | | var structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4]; |
| | | return { |
| | | // Start bits + Encode the two digits with 01 in between |
| | | data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), |
| | | text: this.text |
| | | }; |
| | | } |
| | | }]); |
| | | |
| | | return EAN2; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.default = EAN2; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | var _encoder = require('./encoder'); |
| | | |
| | | var _encoder2 = _interopRequireDefault(_encoder); |
| | | |
| | | var _Barcode2 = require('../Barcode'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/EAN_5#Encoding |
| | | |
| | | var checksum = function checksum(data) { |
| | | var result = data.split('').map(function (n) { |
| | | return +n; |
| | | }).reduce(function (sum, a, idx) { |
| | | return idx % 2 ? sum + a * 9 : sum + a * 3; |
| | | }, 0); |
| | | return result % 10; |
| | | }; |
| | | |
| | | var EAN5 = function (_Barcode) { |
| | | _inherits(EAN5, _Barcode); |
| | | |
| | | function EAN5(data, options) { |
| | | _classCallCheck(this, EAN5); |
| | | |
| | | return _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(EAN5, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{5}$/) !== -1; |
| | | } |
| | | }, { |
| | | key: 'encode', |
| | | value: function encode() { |
| | | var structure = _constants.EAN5_STRUCTURE[checksum(this.data)]; |
| | | return { |
| | | data: '1011' + (0, _encoder2.default)(this.data, structure, '01'), |
| | | text: this.text |
| | | }; |
| | | } |
| | | }]); |
| | | |
| | | return EAN5; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.default = EAN5; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; |
| | | |
| | | var _EAN2 = require('./EAN'); |
| | | |
| | | var _EAN3 = _interopRequireDefault(_EAN2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // http://www.barcodeisland.com/ean8.phtml |
| | | |
| | | // Calculate the checksum digit |
| | | var checksum = function checksum(number) { |
| | | var res = number.substr(0, 7).split('').map(function (n) { |
| | | return +n; |
| | | }).reduce(function (sum, a, idx) { |
| | | return idx % 2 ? sum + a : sum + a * 3; |
| | | }, 0); |
| | | |
| | | return (10 - res % 10) % 10; |
| | | }; |
| | | |
| | | var EAN8 = function (_EAN) { |
| | | _inherits(EAN8, _EAN); |
| | | |
| | | function EAN8(data, options) { |
| | | _classCallCheck(this, EAN8); |
| | | |
| | | // Add checksum if it does not exist |
| | | if (data.search(/^[0-9]{7}$/) !== -1) { |
| | | data += checksum(data); |
| | | } |
| | | |
| | | return _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(EAN8, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data); |
| | | } |
| | | }, { |
| | | key: 'leftText', |
| | | value: function leftText() { |
| | | return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4); |
| | | } |
| | | }, { |
| | | key: 'leftEncode', |
| | | value: function leftEncode() { |
| | | var data = this.data.substr(0, 4); |
| | | return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL'); |
| | | } |
| | | }, { |
| | | key: 'rightText', |
| | | value: function rightText() { |
| | | return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4); |
| | | } |
| | | }, { |
| | | key: 'rightEncode', |
| | | value: function rightEncode() { |
| | | var data = this.data.substr(4, 4); |
| | | return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR'); |
| | | } |
| | | }]); |
| | | |
| | | return EAN8; |
| | | }(_EAN3.default); |
| | | |
| | | exports.default = EAN8; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | exports.checksum = checksum; |
| | | |
| | | var _encoder = require("./encoder"); |
| | | |
| | | var _encoder2 = _interopRequireDefault(_encoder); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding |
| | | |
| | | var UPC = function (_Barcode) { |
| | | _inherits(UPC, _Barcode); |
| | | |
| | | function UPC(data, options) { |
| | | _classCallCheck(this, UPC); |
| | | |
| | | // Add checksum if it does not exist |
| | | if (data.search(/^[0-9]{11}$/) !== -1) { |
| | | data += checksum(data); |
| | | } |
| | | |
| | | var _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options)); |
| | | |
| | | _this.displayValue = options.displayValue; |
| | | |
| | | // Make sure the font is not bigger than the space between the guard bars |
| | | if (options.fontSize > options.width * 10) { |
| | | _this.fontSize = options.width * 10; |
| | | } else { |
| | | _this.fontSize = options.fontSize; |
| | | } |
| | | |
| | | // Make the guard bars go down half the way of the text |
| | | _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(UPC, [{ |
| | | key: "valid", |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data); |
| | | } |
| | | }, { |
| | | key: "encode", |
| | | value: function encode() { |
| | | if (this.options.flat) { |
| | | return this.flatEncoding(); |
| | | } else { |
| | | return this.guardedEncoding(); |
| | | } |
| | | } |
| | | }, { |
| | | key: "flatEncoding", |
| | | value: function flatEncoding() { |
| | | var result = ""; |
| | | |
| | | result += "101"; |
| | | result += (0, _encoder2.default)(this.data.substr(0, 6), "LLLLLL"); |
| | | result += "01010"; |
| | | result += (0, _encoder2.default)(this.data.substr(6, 6), "RRRRRR"); |
| | | result += "101"; |
| | | |
| | | return { |
| | | data: result, |
| | | text: this.text |
| | | }; |
| | | } |
| | | }, { |
| | | key: "guardedEncoding", |
| | | value: function guardedEncoding() { |
| | | var result = []; |
| | | |
| | | // Add the first digit |
| | | if (this.displayValue) { |
| | | result.push({ |
| | | data: "00000000", |
| | | text: this.text.substr(0, 1), |
| | | options: { textAlign: "left", fontSize: this.fontSize } |
| | | }); |
| | | } |
| | | |
| | | // Add the guard bars |
| | | result.push({ |
| | | data: "101" + (0, _encoder2.default)(this.data[0], "L"), |
| | | options: { height: this.guardHeight } |
| | | }); |
| | | |
| | | // Add the left side |
| | | result.push({ |
| | | data: (0, _encoder2.default)(this.data.substr(1, 5), "LLLLL"), |
| | | text: this.text.substr(1, 5), |
| | | options: { fontSize: this.fontSize } |
| | | }); |
| | | |
| | | // Add the middle bits |
| | | result.push({ |
| | | data: "01010", |
| | | options: { height: this.guardHeight } |
| | | }); |
| | | |
| | | // Add the right side |
| | | result.push({ |
| | | data: (0, _encoder2.default)(this.data.substr(6, 5), "RRRRR"), |
| | | text: this.text.substr(6, 5), |
| | | options: { fontSize: this.fontSize } |
| | | }); |
| | | |
| | | // Add the end bits |
| | | result.push({ |
| | | data: (0, _encoder2.default)(this.data[11], "R") + "101", |
| | | options: { height: this.guardHeight } |
| | | }); |
| | | |
| | | // Add the last digit |
| | | if (this.displayValue) { |
| | | result.push({ |
| | | data: "00000000", |
| | | text: this.text.substr(11, 1), |
| | | options: { textAlign: "right", fontSize: this.fontSize } |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | }]); |
| | | |
| | | return UPC; |
| | | }(_Barcode3.default); |
| | | |
| | | // Calulate the checksum digit |
| | | // https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit |
| | | |
| | | |
| | | function checksum(number) { |
| | | var result = 0; |
| | | |
| | | var i; |
| | | for (i = 1; i < 11; i += 2) { |
| | | result += parseInt(number[i]); |
| | | } |
| | | for (i = 0; i < 11; i += 2) { |
| | | result += parseInt(number[i]) * 3; |
| | | } |
| | | |
| | | return (10 - result % 10) % 10; |
| | | } |
| | | |
| | | exports.default = UPC; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _encoder = require('./encoder'); |
| | | |
| | | var _encoder2 = _interopRequireDefault(_encoder); |
| | | |
| | | var _Barcode2 = require('../Barcode.js'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | var _UPC = require('./UPC.js'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation: |
| | | // https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding |
| | | // |
| | | // UPC-E documentation: |
| | | // https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E |
| | | |
| | | var EXPANSIONS = ["XX00000XXX", "XX10000XXX", "XX20000XXX", "XXX00000XX", "XXXX00000X", "XXXXX00005", "XXXXX00006", "XXXXX00007", "XXXXX00008", "XXXXX00009"]; |
| | | |
| | | var PARITIES = [["EEEOOO", "OOOEEE"], ["EEOEOO", "OOEOEE"], ["EEOOEO", "OOEEOE"], ["EEOOOE", "OOEEEO"], ["EOEEOO", "OEOOEE"], ["EOOEEO", "OEEOOE"], ["EOOOEE", "OEEEOO"], ["EOEOEO", "OEOEOE"], ["EOEOOE", "OEOEEO"], ["EOOEOE", "OEEOEO"]]; |
| | | |
| | | var UPCE = function (_Barcode) { |
| | | _inherits(UPCE, _Barcode); |
| | | |
| | | function UPCE(data, options) { |
| | | _classCallCheck(this, UPCE); |
| | | |
| | | var _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options)); |
| | | // Code may be 6 or 8 digits; |
| | | // A 7 digit code is ambiguous as to whether the extra digit |
| | | // is a UPC-A check or number system digit. |
| | | |
| | | |
| | | _this.isValid = false; |
| | | if (data.search(/^[0-9]{6}$/) !== -1) { |
| | | _this.middleDigits = data; |
| | | _this.upcA = expandToUPCA(data, "0"); |
| | | _this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1]; |
| | | _this.isValid = true; |
| | | } else if (data.search(/^[01][0-9]{7}$/) !== -1) { |
| | | _this.middleDigits = data.substring(1, data.length - 1); |
| | | _this.upcA = expandToUPCA(_this.middleDigits, data[0]); |
| | | |
| | | if (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) { |
| | | _this.isValid = true; |
| | | } else { |
| | | // checksum mismatch |
| | | return _possibleConstructorReturn(_this); |
| | | } |
| | | } else { |
| | | return _possibleConstructorReturn(_this); |
| | | } |
| | | |
| | | _this.displayValue = options.displayValue; |
| | | |
| | | // Make sure the font is not bigger than the space between the guard bars |
| | | if (options.fontSize > options.width * 10) { |
| | | _this.fontSize = options.width * 10; |
| | | } else { |
| | | _this.fontSize = options.fontSize; |
| | | } |
| | | |
| | | // Make the guard bars go down half the way of the text |
| | | _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin; |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(UPCE, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.isValid; |
| | | } |
| | | }, { |
| | | key: 'encode', |
| | | value: function encode() { |
| | | if (this.options.flat) { |
| | | return this.flatEncoding(); |
| | | } else { |
| | | return this.guardedEncoding(); |
| | | } |
| | | } |
| | | }, { |
| | | key: 'flatEncoding', |
| | | value: function flatEncoding() { |
| | | var result = ""; |
| | | |
| | | result += "101"; |
| | | result += this.encodeMiddleDigits(); |
| | | result += "010101"; |
| | | |
| | | return { |
| | | data: result, |
| | | text: this.text |
| | | }; |
| | | } |
| | | }, { |
| | | key: 'guardedEncoding', |
| | | value: function guardedEncoding() { |
| | | var result = []; |
| | | |
| | | // Add the UPC-A number system digit beneath the quiet zone |
| | | if (this.displayValue) { |
| | | result.push({ |
| | | data: "00000000", |
| | | text: this.text[0], |
| | | options: { textAlign: "left", fontSize: this.fontSize } |
| | | }); |
| | | } |
| | | |
| | | // Add the guard bars |
| | | result.push({ |
| | | data: "101", |
| | | options: { height: this.guardHeight } |
| | | }); |
| | | |
| | | // Add the 6 UPC-E digits |
| | | result.push({ |
| | | data: this.encodeMiddleDigits(), |
| | | text: this.text.substring(1, 7), |
| | | options: { fontSize: this.fontSize } |
| | | }); |
| | | |
| | | // Add the end bits |
| | | result.push({ |
| | | data: "010101", |
| | | options: { height: this.guardHeight } |
| | | }); |
| | | |
| | | // Add the UPC-A check digit beneath the quiet zone |
| | | if (this.displayValue) { |
| | | result.push({ |
| | | data: "00000000", |
| | | text: this.text[7], |
| | | options: { textAlign: "right", fontSize: this.fontSize } |
| | | }); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | }, { |
| | | key: 'encodeMiddleDigits', |
| | | value: function encodeMiddleDigits() { |
| | | var numberSystem = this.upcA[0]; |
| | | var checkDigit = this.upcA[this.upcA.length - 1]; |
| | | var parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)]; |
| | | return (0, _encoder2.default)(this.middleDigits, parity); |
| | | } |
| | | }]); |
| | | |
| | | return UPCE; |
| | | }(_Barcode3.default); |
| | | |
| | | function expandToUPCA(middleDigits, numberSystem) { |
| | | var lastUpcE = parseInt(middleDigits[middleDigits.length - 1]); |
| | | var expansion = EXPANSIONS[lastUpcE]; |
| | | |
| | | var result = ""; |
| | | var digitIndex = 0; |
| | | for (var i = 0; i < expansion.length; i++) { |
| | | var c = expansion[i]; |
| | | if (c === 'X') { |
| | | result += middleDigits[digitIndex++]; |
| | | } else { |
| | | result += c; |
| | | } |
| | | } |
| | | |
| | | result = '' + numberSystem + result; |
| | | return '' + result + (0, _UPC.checksum)(result); |
| | | } |
| | | |
| | | exports.default = UPCE; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | // Standard start end and middle bits |
| | | var SIDE_BIN = exports.SIDE_BIN = '101'; |
| | | var MIDDLE_BIN = exports.MIDDLE_BIN = '01010'; |
| | | |
| | | var BINARIES = exports.BINARIES = { |
| | | 'L': [// The L (left) type of encoding |
| | | '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], |
| | | 'G': [// The G type of encoding |
| | | '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'], |
| | | 'R': [// The R (right) type of encoding |
| | | '1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'], |
| | | 'O': [// The O (odd) encoding for UPC-E |
| | | '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'], |
| | | 'E': [// The E (even) encoding for UPC-E |
| | | '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'] |
| | | }; |
| | | |
| | | // Define the EAN-2 structure |
| | | var EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG']; |
| | | |
| | | // Define the EAN-5 structure |
| | | var EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG']; |
| | | |
| | | // Define the EAN-13 structure |
| | | var EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL']; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | // Encode data string |
| | | var encode = function encode(data, structure, separator) { |
| | | var encoded = data.split('').map(function (val, idx) { |
| | | return _constants.BINARIES[structure[idx]]; |
| | | }).map(function (val, idx) { |
| | | return val ? val[data[idx]] : ''; |
| | | }); |
| | | |
| | | if (separator) { |
| | | var last = data.length - 1; |
| | | encoded = encoded.map(function (val, idx) { |
| | | return idx < last ? val + separator : val; |
| | | }); |
| | | } |
| | | |
| | | return encoded.join(''); |
| | | }; |
| | | |
| | | exports.default = encode; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined; |
| | | |
| | | var _EAN = require('./EAN13.js'); |
| | | |
| | | var _EAN2 = _interopRequireDefault(_EAN); |
| | | |
| | | var _EAN3 = require('./EAN8.js'); |
| | | |
| | | var _EAN4 = _interopRequireDefault(_EAN3); |
| | | |
| | | var _EAN5 = require('./EAN5.js'); |
| | | |
| | | var _EAN6 = _interopRequireDefault(_EAN5); |
| | | |
| | | var _EAN7 = require('./EAN2.js'); |
| | | |
| | | var _EAN8 = _interopRequireDefault(_EAN7); |
| | | |
| | | var _UPC = require('./UPC.js'); |
| | | |
| | | var _UPC2 = _interopRequireDefault(_UPC); |
| | | |
| | | var _UPCE = require('./UPCE.js'); |
| | | |
| | | var _UPCE2 = _interopRequireDefault(_UPCE); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | exports.EAN13 = _EAN2.default; |
| | | exports.EAN8 = _EAN4.default; |
| | | exports.EAN5 = _EAN6.default; |
| | | exports.EAN2 = _EAN8.default; |
| | | exports.UPC = _UPC2.default; |
| | | exports.UPCE = _UPCE2.default; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.GenericBarcode = undefined; |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var GenericBarcode = function (_Barcode) { |
| | | _inherits(GenericBarcode, _Barcode); |
| | | |
| | | function GenericBarcode(data, options) { |
| | | _classCallCheck(this, GenericBarcode); |
| | | |
| | | return _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text |
| | | } |
| | | |
| | | // Return the corresponding binary numbers for the data provided |
| | | |
| | | |
| | | _createClass(GenericBarcode, [{ |
| | | key: "encode", |
| | | value: function encode() { |
| | | return { |
| | | data: "10101010101010101010101010101010101010101", |
| | | text: this.text |
| | | }; |
| | | } |
| | | |
| | | // Resturn true/false if the string provided is valid for this encoder |
| | | |
| | | }, { |
| | | key: "valid", |
| | | value: function valid() { |
| | | return true; |
| | | } |
| | | }]); |
| | | |
| | | return GenericBarcode; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.GenericBarcode = GenericBarcode; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _constants = require('./constants'); |
| | | |
| | | var _Barcode2 = require('../Barcode'); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var ITF = function (_Barcode) { |
| | | _inherits(ITF, _Barcode); |
| | | |
| | | function ITF() { |
| | | _classCallCheck(this, ITF); |
| | | |
| | | return _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments)); |
| | | } |
| | | |
| | | _createClass(ITF, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^([0-9]{2})+$/) !== -1; |
| | | } |
| | | }, { |
| | | key: 'encode', |
| | | value: function encode() { |
| | | var _this2 = this; |
| | | |
| | | // Calculate all the digit pairs |
| | | var encoded = this.data.match(/.{2}/g).map(function (pair) { |
| | | return _this2.encodePair(pair); |
| | | }).join(''); |
| | | |
| | | return { |
| | | data: _constants.START_BIN + encoded + _constants.END_BIN, |
| | | text: this.text |
| | | }; |
| | | } |
| | | |
| | | // Calculate the data of a number pair |
| | | |
| | | }, { |
| | | key: 'encodePair', |
| | | value: function encodePair(pair) { |
| | | var second = _constants.BINARIES[pair[1]]; |
| | | |
| | | return _constants.BINARIES[pair[0]].split('').map(function (first, idx) { |
| | | return (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0'); |
| | | }).join(''); |
| | | } |
| | | }]); |
| | | |
| | | return ITF; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.default = ITF; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _ITF2 = require('./ITF'); |
| | | |
| | | var _ITF3 = _interopRequireDefault(_ITF2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | // Calculate the checksum digit |
| | | var checksum = function checksum(data) { |
| | | var res = data.substr(0, 13).split('').map(function (num) { |
| | | return parseInt(num, 10); |
| | | }).reduce(function (sum, n, idx) { |
| | | return sum + n * (3 - idx % 2 * 2); |
| | | }, 0); |
| | | |
| | | return Math.ceil(res / 10) * 10 - res; |
| | | }; |
| | | |
| | | var ITF14 = function (_ITF) { |
| | | _inherits(ITF14, _ITF); |
| | | |
| | | function ITF14(data, options) { |
| | | _classCallCheck(this, ITF14); |
| | | |
| | | // Add checksum if it does not exist |
| | | if (data.search(/^[0-9]{13}$/) !== -1) { |
| | | data += checksum(data); |
| | | } |
| | | return _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(ITF14, [{ |
| | | key: 'valid', |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data); |
| | | } |
| | | }]); |
| | | |
| | | return ITF14; |
| | | }(_ITF3.default); |
| | | |
| | | exports.default = ITF14; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | var START_BIN = exports.START_BIN = '1010'; |
| | | var END_BIN = exports.END_BIN = '11101'; |
| | | |
| | | var BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010']; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.ITF14 = exports.ITF = undefined; |
| | | |
| | | var _ITF = require('./ITF'); |
| | | |
| | | var _ITF2 = _interopRequireDefault(_ITF); |
| | | |
| | | var _ITF3 = require('./ITF14'); |
| | | |
| | | var _ITF4 = _interopRequireDefault(_ITF3); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | exports.ITF = _ITF2.default; |
| | | exports.ITF14 = _ITF4.default; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation |
| | | // https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup |
| | | |
| | | var MSI = function (_Barcode) { |
| | | _inherits(MSI, _Barcode); |
| | | |
| | | function MSI(data, options) { |
| | | _classCallCheck(this, MSI); |
| | | |
| | | return _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options)); |
| | | } |
| | | |
| | | _createClass(MSI, [{ |
| | | key: "encode", |
| | | value: function encode() { |
| | | // Start bits |
| | | var ret = "110"; |
| | | |
| | | for (var i = 0; i < this.data.length; i++) { |
| | | // Convert the character to binary (always 4 binary digits) |
| | | var digit = parseInt(this.data[i]); |
| | | var bin = digit.toString(2); |
| | | bin = addZeroes(bin, 4 - bin.length); |
| | | |
| | | // Add 100 for every zero and 110 for every 1 |
| | | for (var b = 0; b < bin.length; b++) { |
| | | ret += bin[b] == "0" ? "100" : "110"; |
| | | } |
| | | } |
| | | |
| | | // End bits |
| | | ret += "1001"; |
| | | |
| | | return { |
| | | data: ret, |
| | | text: this.text |
| | | }; |
| | | } |
| | | }, { |
| | | key: "valid", |
| | | value: function valid() { |
| | | return this.data.search(/^[0-9]+$/) !== -1; |
| | | } |
| | | }]); |
| | | |
| | | return MSI; |
| | | }(_Barcode3.default); |
| | | |
| | | function addZeroes(number, n) { |
| | | for (var i = 0; i < n; i++) { |
| | | number = "0" + number; |
| | | } |
| | | return number; |
| | | } |
| | | |
| | | exports.default = MSI; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _MSI2 = require('./MSI.js'); |
| | | |
| | | var _MSI3 = _interopRequireDefault(_MSI2); |
| | | |
| | | var _checksums = require('./checksums.js'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var MSI10 = function (_MSI) { |
| | | _inherits(MSI10, _MSI); |
| | | |
| | | function MSI10(data, options) { |
| | | _classCallCheck(this, MSI10); |
| | | |
| | | return _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options)); |
| | | } |
| | | |
| | | return MSI10; |
| | | }(_MSI3.default); |
| | | |
| | | exports.default = MSI10; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _MSI2 = require('./MSI.js'); |
| | | |
| | | var _MSI3 = _interopRequireDefault(_MSI2); |
| | | |
| | | var _checksums = require('./checksums.js'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var MSI1010 = function (_MSI) { |
| | | _inherits(MSI1010, _MSI); |
| | | |
| | | function MSI1010(data, options) { |
| | | _classCallCheck(this, MSI1010); |
| | | |
| | | data += (0, _checksums.mod10)(data); |
| | | data += (0, _checksums.mod10)(data); |
| | | return _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options)); |
| | | } |
| | | |
| | | return MSI1010; |
| | | }(_MSI3.default); |
| | | |
| | | exports.default = MSI1010; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _MSI2 = require('./MSI.js'); |
| | | |
| | | var _MSI3 = _interopRequireDefault(_MSI2); |
| | | |
| | | var _checksums = require('./checksums.js'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var MSI11 = function (_MSI) { |
| | | _inherits(MSI11, _MSI); |
| | | |
| | | function MSI11(data, options) { |
| | | _classCallCheck(this, MSI11); |
| | | |
| | | return _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options)); |
| | | } |
| | | |
| | | return MSI11; |
| | | }(_MSI3.default); |
| | | |
| | | exports.default = MSI11; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _MSI2 = require('./MSI.js'); |
| | | |
| | | var _MSI3 = _interopRequireDefault(_MSI2); |
| | | |
| | | var _checksums = require('./checksums.js'); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } |
| | | |
| | | var MSI1110 = function (_MSI) { |
| | | _inherits(MSI1110, _MSI); |
| | | |
| | | function MSI1110(data, options) { |
| | | _classCallCheck(this, MSI1110); |
| | | |
| | | data += (0, _checksums.mod11)(data); |
| | | data += (0, _checksums.mod10)(data); |
| | | return _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options)); |
| | | } |
| | | |
| | | return MSI1110; |
| | | }(_MSI3.default); |
| | | |
| | | exports.default = MSI1110; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.mod10 = mod10; |
| | | exports.mod11 = mod11; |
| | | function mod10(number) { |
| | | var sum = 0; |
| | | for (var i = 0; i < number.length; i++) { |
| | | var n = parseInt(number[i]); |
| | | if ((i + number.length) % 2 === 0) { |
| | | sum += n; |
| | | } else { |
| | | sum += n * 2 % 10 + Math.floor(n * 2 / 10); |
| | | } |
| | | } |
| | | return (10 - sum % 10) % 10; |
| | | } |
| | | |
| | | function mod11(number) { |
| | | var sum = 0; |
| | | var weights = [2, 3, 4, 5, 6, 7]; |
| | | for (var i = 0; i < number.length; i++) { |
| | | var n = parseInt(number[number.length - 1 - i]); |
| | | sum += weights[i % weights.length] * n; |
| | | } |
| | | return (11 - sum % 11) % 11; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined; |
| | | |
| | | var _MSI = require('./MSI.js'); |
| | | |
| | | var _MSI2 = _interopRequireDefault(_MSI); |
| | | |
| | | var _MSI3 = require('./MSI10.js'); |
| | | |
| | | var _MSI4 = _interopRequireDefault(_MSI3); |
| | | |
| | | var _MSI5 = require('./MSI11.js'); |
| | | |
| | | var _MSI6 = _interopRequireDefault(_MSI5); |
| | | |
| | | var _MSI7 = require('./MSI1010.js'); |
| | | |
| | | var _MSI8 = _interopRequireDefault(_MSI7); |
| | | |
| | | var _MSI9 = require('./MSI1110.js'); |
| | | |
| | | var _MSI10 = _interopRequireDefault(_MSI9); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | exports.MSI = _MSI2.default; |
| | | exports.MSI10 = _MSI4.default; |
| | | exports.MSI11 = _MSI6.default; |
| | | exports.MSI1010 = _MSI8.default; |
| | | exports.MSI1110 = _MSI10.default; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.codabar = undefined; |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding specification: |
| | | // http://www.barcodeisland.com/codabar.phtml |
| | | |
| | | var codabar = function (_Barcode) { |
| | | _inherits(codabar, _Barcode); |
| | | |
| | | function codabar(data, options) { |
| | | _classCallCheck(this, codabar); |
| | | |
| | | if (data.search(/^[0-9\-\$\:\.\+\/]+$/) === 0) { |
| | | data = "A" + data + "A"; |
| | | } |
| | | |
| | | var _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options)); |
| | | |
| | | _this.text = _this.options.text || _this.text.replace(/[A-D]/g, ''); |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(codabar, [{ |
| | | key: "valid", |
| | | value: function valid() { |
| | | return this.data.search(/^[A-D][0-9\-\$\:\.\+\/]+[A-D]$/) !== -1; |
| | | } |
| | | }, { |
| | | key: "encode", |
| | | value: function encode() { |
| | | var result = []; |
| | | var encodings = this.getEncodings(); |
| | | for (var i = 0; i < this.data.length; i++) { |
| | | result.push(encodings[this.data.charAt(i)]); |
| | | // for all characters except the last, append a narrow-space ("0") |
| | | if (i !== this.data.length - 1) { |
| | | result.push("0"); |
| | | } |
| | | } |
| | | return { |
| | | text: this.text, |
| | | data: result.join('') |
| | | }; |
| | | } |
| | | }, { |
| | | key: "getEncodings", |
| | | value: function getEncodings() { |
| | | return { |
| | | "0": "101010011", |
| | | "1": "101011001", |
| | | "2": "101001011", |
| | | "3": "110010101", |
| | | "4": "101101001", |
| | | "5": "110101001", |
| | | "6": "100101011", |
| | | "7": "100101101", |
| | | "8": "100110101", |
| | | "9": "110100101", |
| | | "-": "101001101", |
| | | "$": "101100101", |
| | | ":": "1101011011", |
| | | "/": "1101101011", |
| | | ".": "1101101101", |
| | | "+": "101100110011", |
| | | "A": "1011001001", |
| | | "B": "1001001011", |
| | | "C": "1010010011", |
| | | "D": "1010011001" |
| | | }; |
| | | } |
| | | }]); |
| | | |
| | | return codabar; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.codabar = codabar; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 'use strict'; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | |
| | | var _CODE = require('./CODE39/'); |
| | | |
| | | var _CODE2 = require('./CODE128/'); |
| | | |
| | | var _EAN_UPC = require('./EAN_UPC/'); |
| | | |
| | | var _ITF = require('./ITF/'); |
| | | |
| | | var _MSI = require('./MSI/'); |
| | | |
| | | var _pharmacode = require('./pharmacode/'); |
| | | |
| | | var _codabar = require('./codabar'); |
| | | |
| | | var _GenericBarcode = require('./GenericBarcode/'); |
| | | |
| | | exports.default = { |
| | | CODE39: _CODE.CODE39, |
| | | CODE128: _CODE2.CODE128, CODE128A: _CODE2.CODE128A, CODE128B: _CODE2.CODE128B, CODE128C: _CODE2.CODE128C, |
| | | EAN13: _EAN_UPC.EAN13, EAN8: _EAN_UPC.EAN8, EAN5: _EAN_UPC.EAN5, EAN2: _EAN_UPC.EAN2, |
| | | UPC: _EAN_UPC.UPC, UPCE: _EAN_UPC.UPCE, |
| | | ITF14: _ITF.ITF14, |
| | | ITF: _ITF.ITF, |
| | | MSI: _MSI.MSI, MSI10: _MSI.MSI10, MSI11: _MSI.MSI11, MSI1010: _MSI.MSI1010, MSI1110: _MSI.MSI1110, |
| | | PHARMACODE: _pharmacode.pharmacode, |
| | | CODABAR: _codabar.codabar, |
| | | GENERICBARCODE: _GenericBarcode.GenericBarcode |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | "use strict"; |
| | | |
| | | Object.defineProperty(exports, "__esModule", { |
| | | value: true |
| | | }); |
| | | exports.pharmacode = undefined; |
| | | |
| | | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); |
| | | |
| | | var _Barcode2 = require("../Barcode.js"); |
| | | |
| | | var _Barcode3 = _interopRequireDefault(_Barcode2); |
| | | |
| | | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
| | | |
| | | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } |
| | | |
| | | function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } |
| | | |
| | | function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // Encoding documentation |
| | | // http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf |
| | | |
| | | var pharmacode = function (_Barcode) { |
| | | _inherits(pharmacode, _Barcode); |
| | | |
| | | function pharmacode(data, options) { |
| | | _classCallCheck(this, pharmacode); |
| | | |
| | | var _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options)); |
| | | |
| | | _this.number = parseInt(data, 10); |
| | | return _this; |
| | | } |
| | | |
| | | _createClass(pharmacode, [{ |
| | | key: "encode", |
| | | value: function encode() { |
| | | var z = this.number; |
| | | var result = ""; |
| | | |
| | | // http://i.imgur.com/RMm4UDJ.png |
| | | // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34) |
| | | while (!isNaN(z) && z != 0) { |
| | | if (z % 2 === 0) { |
| | | // Even |
| | | result = "11100" + result; |
| | | z = (z - 2) / 2; |
| | | } else { |
| | | // Odd |
| | | result = "100" + result; |
| | | z = (z - 1) / 2; |
| | | } |
| | | } |
| | | |
| | | // Remove the two last zeroes |
| | | result = result.slice(0, -2); |
| | | |
| | | return { |
| | | data: result, |
| | | text: this.text |
| | | }; |
| | | } |
| | | }, { |
| | | key: "valid", |
| | | value: function valid() { |
| | | return this.number >= 3 && this.number <= 131070; |
| | | } |
| | | }]); |
| | | |
| | | return pharmacode; |
| | | }(_Barcode3.default); |
| | | |
| | | exports.pharmacode = pharmacode; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template xlang="wxml" minapp="mpvue"> |
| | | <view class="tki-barcode"> |
| | | <!-- #ifndef MP-ALIPAY --> |
| | | <canvas class="tki-barcode-canvas" :canvas-id="cid" :style="{width:canvasWidth+'px',height:canvasHeight+'px'}" /> |
| | | <!-- #endif --> |
| | | <!-- #ifdef MP-ALIPAY --> |
| | | <canvas v-if="val === '' || defaultOpations.text === val" :id="cid" :width="canvasWidth" :height="canvasHeight" class="tki-barcode-canvas" /> |
| | | <!-- #endif --> |
| | | <image v-show="show" :src="result" :style="{width:canvasWidth+'px',height:canvasHeight+'px'}" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | // const barcode = require('./barcode.js'); |
| | | import barCode from "./barcode.js" |
| | | const opations = { |
| | | // format: "CODE128",//éæ©è¦ä½¿ç¨çæ¡å½¢ç ç±»å å¾®ä¿¡æ¯æçæ¡ç ç±»åæ code128\code39\ena13\ean8\upc\itf14\ |
| | | width: 4,//设置æ¡ä¹é´ç宽度 |
| | | height: 120,//é«åº¦ |
| | | displayValue: true,//æ¯å¦å¨æ¡å½¢ç 䏿¹æ¾ç¤ºæå |
| | | // text: "1234567890",//è¦çæ¾ç¤ºçææ¬ |
| | | textAlign: "center",//è®¾ç½®ææ¬çæ°´å¹³å¯¹é½æ¹å¼ |
| | | textPosition: "bottom",//è®¾ç½®ææ¬çåç´ä½ç½® |
| | | textMargin: 0,//设置æ¡å½¢ç åææ¬ä¹é´çé´è· |
| | | fontSize: 24,//è®¾ç½®ææ¬çå¤§å° |
| | | fontColor: "#000000",//è®¾ç½®ææ¬çé¢è² |
| | | lineColor: "#000000",//设置æ¡å½¢ç çé¢è² |
| | | background: "#FFFFFF",//设置æ¡å½¢ç çèæ¯è² |
| | | margin: 0,//设置æ¡å½¢ç å¨å´ç空ç½è¾¹è· |
| | | marginTop: undefined,//设置æ¡å½¢ç å¨å´çä¸è¾¹è· |
| | | marginBottom: undefined,//设置æ¡å½¢ç å¨å´çä¸è¾¹è· |
| | | marginLeft: undefined,//设置æ¡å½¢ç å¨å´çå·¦è¾¹è· |
| | | marginRight: undefined,//设置æ¡å½¢ç å¨å´çå³è¾¹è· |
| | | } |
| | | export default { |
| | | name: "tkiBarcode", |
| | | props: { |
| | | show: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | cid: { |
| | | type: String, |
| | | default: 'tki-barcode-canvas' |
| | | }, |
| | | unit: { |
| | | type: String, |
| | | default: 'upx' |
| | | }, |
| | | val: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | format: { |
| | | type: String, |
| | | default: 'CODE128' |
| | | }, |
| | | opations: { |
| | | type: Object, |
| | | default: function () { |
| | | return {} |
| | | } |
| | | }, |
| | | onval: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | loadMake: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | result: '', |
| | | canvasWidth: 0, |
| | | canvasHeight: 0, |
| | | defaultOpations: Object.assign({}, opations) |
| | | } |
| | | }, |
| | | onUnload: function () { |
| | | }, |
| | | methods: { |
| | | _makeCode() { |
| | | let that = this |
| | | // åå¹¶åæ° |
| | | Object.assign(this.defaultOpations, this.opations) |
| | | if (that.unit == "upx") { |
| | | /* if (that.defaultOpations.width) { |
| | | that.defaultOpations.width = uni.upx2px(that.defaultOpations.width) |
| | | } */ |
| | | if (that.defaultOpations.height) { |
| | | that.defaultOpations.height = uni.upx2px(that.defaultOpations.height) |
| | | } |
| | | if (that.defaultOpations.fontSize) { |
| | | that.defaultOpations.fontSize = uni.upx2px(that.defaultOpations.fontSize) |
| | | } |
| | | } |
| | | if (that._empty(that.defaultOpations.text)) { |
| | | that.defaultOpations.text = that.val |
| | | } |
| | | if (that._empty(that.defaultOpations.format)) { |
| | | that.defaultOpations.format = that.format |
| | | } |
| | | // console.log(JSON.stringify(that.defaultOpations)) |
| | | this.$nextTick(() => { |
| | | setTimeout(() => { |
| | | new barCode(that, that.cid, that.defaultOpations, |
| | | function (res) { // çææ¡å½¢ç 款é«åè° |
| | | that.canvasWidth = res.width |
| | | that.canvasHeight = res.height |
| | | }, |
| | | function (res) { // çææ¡å½¢ç çåè° |
| | | // è¿åå¼ |
| | | that._result(res) |
| | | // éç½®é»è®¤åæ° |
| | | that.defaultOpations = opations |
| | | }, |
| | | ); |
| | | }, 100) |
| | | }) |
| | | }, |
| | | _clearCode() { |
| | | this._result('') |
| | | }, |
| | | _saveCode() { |
| | | let that = this; |
| | | if (this.result != "") { |
| | | uni.saveImageToPhotosAlbum({ |
| | | filePath: that.result, |
| | | success: function () { |
| | | uni.showToast({ |
| | | title: 'æ¡å½¢ç ä¿åæå', |
| | | icon: 'success', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | _result(res) { |
| | | this.result = res; |
| | | this.$emit('result', res) |
| | | }, |
| | | _empty(v) { |
| | | let tp = typeof v, |
| | | rt = false; |
| | | if (tp == "number" && String(v) == "") { |
| | | rt = true |
| | | } else if (tp == "undefined") { |
| | | rt = true |
| | | } else if (tp == "object") { |
| | | if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true |
| | | } else if (tp == "string") { |
| | | if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true |
| | | } else if (tp == "function") { |
| | | rt = false |
| | | } |
| | | return rt |
| | | } |
| | | }, |
| | | watch: { |
| | | val(n, o) { |
| | | this.defaultOpations.text = n |
| | | if (this.onval) { |
| | | if (n != o && !this._empty(n)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | }, |
| | | opations: { |
| | | handler(n,o){ |
| | | if (this.onval) { |
| | | if (!this._empty(n)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | mounted () { |
| | | if (this.loadMake) { |
| | | if (!this._empty(this.val)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | <style> |
| | | .tki-barcode { |
| | | position: relative; |
| | | } |
| | | .tki-barcode-canvas { |
| | | position: fixed!important; |
| | | top: -99999upx; |
| | | left: -99999upx; |
| | | z-index: -99999; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | let QRCode = {}; |
| | | (function () { |
| | | /** |
| | | * è·åå个å符çutf8ç¼ç |
| | | * unicode BMPå¹³é¢çº¦65535个å符 |
| | | * @param {num} code |
| | | * return {array} |
| | | */ |
| | | function unicodeFormat8(code) { |
| | | // 1 byte |
| | | var c0, c1, c2; |
| | | if (code < 128) { |
| | | return [code]; |
| | | // 2 bytes |
| | | } else if (code < 2048) { |
| | | c0 = 192 + (code >> 6); |
| | | c1 = 128 + (code & 63); |
| | | return [c0, c1]; |
| | | // 3 bytes |
| | | } else { |
| | | c0 = 224 + (code >> 12); |
| | | c1 = 128 + (code >> 6 & 63); |
| | | c2 = 128 + (code & 63); |
| | | return [c0, c1, c2]; |
| | | } |
| | | } |
| | | /** |
| | | * è·åå符串çutf8ç¼ç åè串 |
| | | * @param {string} string |
| | | * @return {array} |
| | | */ |
| | | function getUTF8Bytes(string) { |
| | | var utf8codes = []; |
| | | for (var i = 0; i < string.length; i++) { |
| | | var code = string.charCodeAt(i); |
| | | var utf8 = unicodeFormat8(code); |
| | | for (var j = 0; j < utf8.length; j++) { |
| | | utf8codes.push(utf8[j]); |
| | | } |
| | | } |
| | | return utf8codes; |
| | | } |
| | | /** |
| | | * äºç»´ç ç®æ³å®ç° |
| | | * @param {string} data è¦ç¼ç çä¿¡æ¯å符串 |
| | | * @param {num} errorCorrectLevel çº éç级 |
| | | */ |
| | | function QRCodeAlg(data, errorCorrectLevel) { |
| | | this.typeNumber = -1; //çæ¬ |
| | | this.errorCorrectLevel = errorCorrectLevel; |
| | | this.modules = null; //äºç»´ç©éµï¼åæ¾æç»ç»æ |
| | | this.moduleCount = 0; //ç©éµå¤§å° |
| | | this.dataCache = null; //æ°æ®ç¼å |
| | | this.rsBlocks = null; //çæ¬æ°æ®ä¿¡æ¯ |
| | | this.totalDataCount = -1; //å¯ä½¿ç¨çæ°æ®é |
| | | this.data = data; |
| | | this.utf8bytes = getUTF8Bytes(data); |
| | | this.make(); |
| | | } |
| | | QRCodeAlg.prototype = { |
| | | constructor: QRCodeAlg, |
| | | /** |
| | | * è·åäºç»´ç ç©éµå¤§å° |
| | | * @return {num} ç©éµå¤§å° |
| | | */ |
| | | getModuleCount: function () { |
| | | return this.moduleCount; |
| | | }, |
| | | /** |
| | | * ç¼ç |
| | | */ |
| | | make: function () { |
| | | this.getRightType(); |
| | | this.dataCache = this.createData(); |
| | | this.createQrcode(); |
| | | }, |
| | | /** |
| | | * 设置äºä½ç©éµåè½å¾å½¢ |
| | | * @param {bool} test 表示æ¯å¦å¨å¯»æ¾æå¥½æ©èé¶æ®µ |
| | | * @param {num} maskPattern æ©èççæ¬ |
| | | */ |
| | | makeImpl: function (maskPattern) { |
| | | this.moduleCount = this.typeNumber * 4 + 17; |
| | | this.modules = new Array(this.moduleCount); |
| | | for (var row = 0; row < this.moduleCount; row++) { |
| | | this.modules[row] = new Array(this.moduleCount); |
| | | } |
| | | this.setupPositionProbePattern(0, 0); |
| | | this.setupPositionProbePattern(this.moduleCount - 7, 0); |
| | | this.setupPositionProbePattern(0, this.moduleCount - 7); |
| | | this.setupPositionAdjustPattern(); |
| | | this.setupTimingPattern(); |
| | | this.setupTypeInfo(true, maskPattern); |
| | | if (this.typeNumber >= 7) { |
| | | this.setupTypeNumber(true); |
| | | } |
| | | this.mapData(this.dataCache, maskPattern); |
| | | }, |
| | | /** |
| | | * 设置äºç»´ç çä½ç½®æ¢æµå¾å½¢ |
| | | * @param {num} row æ¢æµå¾å½¢çä¸å¿æ¨ªåæ |
| | | * @param {num} col æ¢æµå¾å½¢çä¸å¿çºµåæ |
| | | */ |
| | | setupPositionProbePattern: function (row, col) { |
| | | for (var r = -1; r <= 7; r++) { |
| | | if (row + r <= -1 || this.moduleCount <= row + r) continue; |
| | | for (var c = -1; c <= 7; c++) { |
| | | if (col + c <= -1 || this.moduleCount <= col + c) continue; |
| | | if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) { |
| | | this.modules[row + r][col + c] = true; |
| | | } else { |
| | | this.modules[row + r][col + c] = false; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | /** |
| | | * å建äºç»´ç |
| | | * @return {[type]} [description] |
| | | */ |
| | | createQrcode: function () { |
| | | var minLostPoint = 0; |
| | | var pattern = 0; |
| | | var bestModules = null; |
| | | for (var i = 0; i < 8; i++) { |
| | | this.makeImpl(i); |
| | | var lostPoint = QRUtil.getLostPoint(this); |
| | | if (i == 0 || minLostPoint > lostPoint) { |
| | | minLostPoint = lostPoint; |
| | | pattern = i; |
| | | bestModules = this.modules; |
| | | } |
| | | } |
| | | this.modules = bestModules; |
| | | this.setupTypeInfo(false, pattern); |
| | | if (this.typeNumber >= 7) { |
| | | this.setupTypeNumber(false); |
| | | } |
| | | }, |
| | | /** |
| | | * 设置å®ä½å¾å½¢ |
| | | * @return {[type]} [description] |
| | | */ |
| | | setupTimingPattern: function () { |
| | | for (var r = 8; r < this.moduleCount - 8; r++) { |
| | | if (this.modules[r][6] != null) { |
| | | continue; |
| | | } |
| | | this.modules[r][6] = (r % 2 == 0); |
| | | if (this.modules[6][r] != null) { |
| | | continue; |
| | | } |
| | | this.modules[6][r] = (r % 2 == 0); |
| | | } |
| | | }, |
| | | /** |
| | | * è®¾ç½®ç«æ£å¾å½¢ |
| | | * @return {[type]} [description] |
| | | */ |
| | | setupPositionAdjustPattern: function () { |
| | | var pos = QRUtil.getPatternPosition(this.typeNumber); |
| | | for (var i = 0; i < pos.length; i++) { |
| | | for (var j = 0; j < pos.length; j++) { |
| | | var row = pos[i]; |
| | | var col = pos[j]; |
| | | if (this.modules[row][col] != null) { |
| | | continue; |
| | | } |
| | | for (var r = -2; r <= 2; r++) { |
| | | for (var c = -2; c <= 2; c++) { |
| | | if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) { |
| | | this.modules[row + r][col + c] = true; |
| | | } else { |
| | | this.modules[row + r][col + c] = false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | /** |
| | | * è®¾ç½®çæ¬ä¿¡æ¯ï¼7以ä¸çæ¬ææï¼ |
| | | * @param {bool} test æ¯å¦å¤äºå¤ææä½³æ©èé¶æ®µ |
| | | * @return {[type]} [description] |
| | | */ |
| | | setupTypeNumber: function (test) { |
| | | var bits = QRUtil.getBCHTypeNumber(this.typeNumber); |
| | | for (var i = 0; i < 18; i++) { |
| | | var mod = (!test && ((bits >> i) & 1) == 1); |
| | | this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod; |
| | | this.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod; |
| | | } |
| | | }, |
| | | /** |
| | | * è®¾ç½®æ ¼å¼ä¿¡æ¯ï¼çº éççº§åæ©èçæ¬ï¼ |
| | | * @param {bool} test |
| | | * @param {num} maskPattern æ©èçæ¬ |
| | | * @return {} |
| | | */ |
| | | setupTypeInfo: function (test, maskPattern) { |
| | | var data = (QRErrorCorrectLevel[this.errorCorrectLevel] << 3) | maskPattern; |
| | | var bits = QRUtil.getBCHTypeInfo(data); |
| | | // vertical |
| | | for (var i = 0; i < 15; i++) { |
| | | var mod = (!test && ((bits >> i) & 1) == 1); |
| | | if (i < 6) { |
| | | this.modules[i][8] = mod; |
| | | } else if (i < 8) { |
| | | this.modules[i + 1][8] = mod; |
| | | } else { |
| | | this.modules[this.moduleCount - 15 + i][8] = mod; |
| | | } |
| | | // horizontal |
| | | var mod = (!test && ((bits >> i) & 1) == 1); |
| | | if (i < 8) { |
| | | this.modules[8][this.moduleCount - i - 1] = mod; |
| | | } else if (i < 9) { |
| | | this.modules[8][15 - i - 1 + 1] = mod; |
| | | } else { |
| | | this.modules[8][15 - i - 1] = mod; |
| | | } |
| | | } |
| | | // fixed module |
| | | this.modules[this.moduleCount - 8][8] = (!test); |
| | | }, |
| | | /** |
| | | * æ°æ®ç¼ç |
| | | * @return {[type]} [description] |
| | | */ |
| | | createData: function () { |
| | | var buffer = new QRBitBuffer(); |
| | | var lengthBits = this.typeNumber > 9 ? 16 : 8; |
| | | buffer.put(4, 4); //æ·»å æ¨¡å¼ |
| | | buffer.put(this.utf8bytes.length, lengthBits); |
| | | for (var i = 0, l = this.utf8bytes.length; i < l; i++) { |
| | | buffer.put(this.utf8bytes[i], 8); |
| | | } |
| | | if (buffer.length + 4 <= this.totalDataCount * 8) { |
| | | buffer.put(0, 4); |
| | | } |
| | | // padding |
| | | while (buffer.length % 8 != 0) { |
| | | buffer.putBit(false); |
| | | } |
| | | // padding |
| | | while (true) { |
| | | if (buffer.length >= this.totalDataCount * 8) { |
| | | break; |
| | | } |
| | | buffer.put(QRCodeAlg.PAD0, 8); |
| | | if (buffer.length >= this.totalDataCount * 8) { |
| | | break; |
| | | } |
| | | buffer.put(QRCodeAlg.PAD1, 8); |
| | | } |
| | | return this.createBytes(buffer); |
| | | }, |
| | | /** |
| | | * çº éç ç¼ç |
| | | * @param {buffer} buffer æ°æ®ç¼ç |
| | | * @return {[type]} |
| | | */ |
| | | createBytes: function (buffer) { |
| | | var offset = 0; |
| | | var maxDcCount = 0; |
| | | var maxEcCount = 0; |
| | | var length = this.rsBlock.length / 3; |
| | | var rsBlocks = new Array(); |
| | | for (var i = 0; i < length; i++) { |
| | | var count = this.rsBlock[i * 3 + 0]; |
| | | var totalCount = this.rsBlock[i * 3 + 1]; |
| | | var dataCount = this.rsBlock[i * 3 + 2]; |
| | | for (var j = 0; j < count; j++) { |
| | | rsBlocks.push([dataCount, totalCount]); |
| | | } |
| | | } |
| | | var dcdata = new Array(rsBlocks.length); |
| | | var ecdata = new Array(rsBlocks.length); |
| | | for (var r = 0; r < rsBlocks.length; r++) { |
| | | var dcCount = rsBlocks[r][0]; |
| | | var ecCount = rsBlocks[r][1] - dcCount; |
| | | maxDcCount = Math.max(maxDcCount, dcCount); |
| | | maxEcCount = Math.max(maxEcCount, ecCount); |
| | | dcdata[r] = new Array(dcCount); |
| | | for (var i = 0; i < dcdata[r].length; i++) { |
| | | dcdata[r][i] = 0xff & buffer.buffer[i + offset]; |
| | | } |
| | | offset += dcCount; |
| | | var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount); |
| | | var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1); |
| | | var modPoly = rawPoly.mod(rsPoly); |
| | | ecdata[r] = new Array(rsPoly.getLength() - 1); |
| | | for (var i = 0; i < ecdata[r].length; i++) { |
| | | var modIndex = i + modPoly.getLength() - ecdata[r].length; |
| | | ecdata[r][i] = (modIndex >= 0) ? modPoly.get(modIndex) : 0; |
| | | } |
| | | } |
| | | var data = new Array(this.totalDataCount); |
| | | var index = 0; |
| | | for (var i = 0; i < maxDcCount; i++) { |
| | | for (var r = 0; r < rsBlocks.length; r++) { |
| | | if (i < dcdata[r].length) { |
| | | data[index++] = dcdata[r][i]; |
| | | } |
| | | } |
| | | } |
| | | for (var i = 0; i < maxEcCount; i++) { |
| | | for (var r = 0; r < rsBlocks.length; r++) { |
| | | if (i < ecdata[r].length) { |
| | | data[index++] = ecdata[r][i]; |
| | | } |
| | | } |
| | | } |
| | | return data; |
| | | |
| | | }, |
| | | /** |
| | | * å¸ç½®æ¨¡åï¼æå»ºæç»ä¿¡æ¯ |
| | | * @param {} data |
| | | * @param {} maskPattern |
| | | * @return {} |
| | | */ |
| | | mapData: function (data, maskPattern) { |
| | | var inc = -1; |
| | | var row = this.moduleCount - 1; |
| | | var bitIndex = 7; |
| | | var byteIndex = 0; |
| | | for (var col = this.moduleCount - 1; col > 0; col -= 2) { |
| | | if (col == 6) col--; |
| | | while (true) { |
| | | for (var c = 0; c < 2; c++) { |
| | | if (this.modules[row][col - c] == null) { |
| | | var dark = false; |
| | | if (byteIndex < data.length) { |
| | | dark = (((data[byteIndex] >>> bitIndex) & 1) == 1); |
| | | } |
| | | var mask = QRUtil.getMask(maskPattern, row, col - c); |
| | | if (mask) { |
| | | dark = !dark; |
| | | } |
| | | this.modules[row][col - c] = dark; |
| | | bitIndex--; |
| | | if (bitIndex == -1) { |
| | | byteIndex++; |
| | | bitIndex = 7; |
| | | } |
| | | } |
| | | } |
| | | row += inc; |
| | | if (row < 0 || this.moduleCount <= row) { |
| | | row -= inc; |
| | | inc = -inc; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | /** |
| | | * å¡«å
åæ®µ |
| | | */ |
| | | QRCodeAlg.PAD0 = 0xEC; |
| | | QRCodeAlg.PAD1 = 0x11; |
| | | //--------------------------------------------------------------------- |
| | | // çº éç级对åºçç¼ç |
| | | //--------------------------------------------------------------------- |
| | | var QRErrorCorrectLevel = [1, 0, 3, 2]; |
| | | //--------------------------------------------------------------------- |
| | | // æ©èçæ¬ |
| | | //--------------------------------------------------------------------- |
| | | var QRMaskPattern = { |
| | | PATTERN000: 0, |
| | | PATTERN001: 1, |
| | | PATTERN010: 2, |
| | | PATTERN011: 3, |
| | | PATTERN100: 4, |
| | | PATTERN101: 5, |
| | | PATTERN110: 6, |
| | | PATTERN111: 7 |
| | | }; |
| | | //--------------------------------------------------------------------- |
| | | // å·¥å
·ç±» |
| | | //--------------------------------------------------------------------- |
| | | var QRUtil = { |
| | | /* |
| | | æ¯ä¸ªçæ¬ç«æ£å¾å½¢çä½ç½® |
| | | */ |
| | | PATTERN_POSITION_TABLE: [ |
| | | [], |
| | | [6, 18], |
| | | [6, 22], |
| | | [6, 26], |
| | | [6, 30], |
| | | [6, 34], |
| | | [6, 22, 38], |
| | | [6, 24, 42], |
| | | [6, 26, 46], |
| | | [6, 28, 50], |
| | | [6, 30, 54], |
| | | [6, 32, 58], |
| | | [6, 34, 62], |
| | | [6, 26, 46, 66], |
| | | [6, 26, 48, 70], |
| | | [6, 26, 50, 74], |
| | | [6, 30, 54, 78], |
| | | [6, 30, 56, 82], |
| | | [6, 30, 58, 86], |
| | | [6, 34, 62, 90], |
| | | [6, 28, 50, 72, 94], |
| | | [6, 26, 50, 74, 98], |
| | | [6, 30, 54, 78, 102], |
| | | [6, 28, 54, 80, 106], |
| | | [6, 32, 58, 84, 110], |
| | | [6, 30, 58, 86, 114], |
| | | [6, 34, 62, 90, 118], |
| | | [6, 26, 50, 74, 98, 122], |
| | | [6, 30, 54, 78, 102, 126], |
| | | [6, 26, 52, 78, 104, 130], |
| | | [6, 30, 56, 82, 108, 134], |
| | | [6, 34, 60, 86, 112, 138], |
| | | [6, 30, 58, 86, 114, 142], |
| | | [6, 34, 62, 90, 118, 146], |
| | | [6, 30, 54, 78, 102, 126, 150], |
| | | [6, 24, 50, 76, 102, 128, 154], |
| | | [6, 28, 54, 80, 106, 132, 158], |
| | | [6, 32, 58, 84, 110, 136, 162], |
| | | [6, 26, 54, 82, 110, 138, 166], |
| | | [6, 30, 58, 86, 114, 142, 170] |
| | | ], |
| | | G15: (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0), |
| | | G18: (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0), |
| | | G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1), |
| | | /* |
| | | BCHç¼ç æ ¼å¼ä¿¡æ¯ |
| | | */ |
| | | getBCHTypeInfo: function (data) { |
| | | var d = data << 10; |
| | | while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) { |
| | | d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15))); |
| | | } |
| | | return ((data << 10) | d) ^ QRUtil.G15_MASK; |
| | | }, |
| | | /* |
| | | BCHç¼ç çæ¬ä¿¡æ¯ |
| | | */ |
| | | getBCHTypeNumber: function (data) { |
| | | var d = data << 12; |
| | | while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) { |
| | | d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18))); |
| | | } |
| | | return (data << 12) | d; |
| | | }, |
| | | /* |
| | | è·åBCHä½ä¿¡æ¯ |
| | | */ |
| | | getBCHDigit: function (data) { |
| | | var digit = 0; |
| | | while (data != 0) { |
| | | digit++; |
| | | data >>>= 1; |
| | | } |
| | | return digit; |
| | | }, |
| | | /* |
| | | è·åçæ¬å¯¹åºçç«æ£å¾å½¢ä½ç½® |
| | | */ |
| | | getPatternPosition: function (typeNumber) { |
| | | return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1]; |
| | | }, |
| | | /* |
| | | æ©èç®æ³ |
| | | */ |
| | | getMask: function (maskPattern, i, j) { |
| | | switch (maskPattern) { |
| | | case QRMaskPattern.PATTERN000: |
| | | return (i + j) % 2 == 0; |
| | | case QRMaskPattern.PATTERN001: |
| | | return i % 2 == 0; |
| | | case QRMaskPattern.PATTERN010: |
| | | return j % 3 == 0; |
| | | case QRMaskPattern.PATTERN011: |
| | | return (i + j) % 3 == 0; |
| | | case QRMaskPattern.PATTERN100: |
| | | return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0; |
| | | case QRMaskPattern.PATTERN101: |
| | | return (i * j) % 2 + (i * j) % 3 == 0; |
| | | case QRMaskPattern.PATTERN110: |
| | | return ((i * j) % 2 + (i * j) % 3) % 2 == 0; |
| | | case QRMaskPattern.PATTERN111: |
| | | return ((i * j) % 3 + (i + j) % 2) % 2 == 0; |
| | | default: |
| | | throw new Error("bad maskPattern:" + maskPattern); |
| | | } |
| | | }, |
| | | /* |
| | | è·åRSççº éå¤é¡¹å¼ |
| | | */ |
| | | getErrorCorrectPolynomial: function (errorCorrectLength) { |
| | | var a = new QRPolynomial([1], 0); |
| | | for (var i = 0; i < errorCorrectLength; i++) { |
| | | a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0)); |
| | | } |
| | | return a; |
| | | }, |
| | | /* |
| | | è·åè¯ä»· |
| | | */ |
| | | getLostPoint: function (qrCode) { |
| | | var moduleCount = qrCode.getModuleCount(), |
| | | lostPoint = 0, |
| | | darkCount = 0; |
| | | for (var row = 0; row < moduleCount; row++) { |
| | | var sameCount = 0; |
| | | var head = qrCode.modules[row][0]; |
| | | for (var col = 0; col < moduleCount; col++) { |
| | | var current = qrCode.modules[row][col]; |
| | | //level 3 è¯ä»· |
| | | if (col < moduleCount - 6) { |
| | | if (current && !qrCode.modules[row][col + 1] && qrCode.modules[row][col + 2] && qrCode.modules[row][col + 3] && qrCode.modules[row][col + 4] && !qrCode.modules[row][col + 5] && qrCode.modules[row][col + 6]) { |
| | | if (col < moduleCount - 10) { |
| | | if (qrCode.modules[row][col + 7] && qrCode.modules[row][col + 8] && qrCode.modules[row][col + 9] && qrCode.modules[row][col + 10]) { |
| | | lostPoint += 40; |
| | | } |
| | | } else if (col > 3) { |
| | | if (qrCode.modules[row][col - 1] && qrCode.modules[row][col - 2] && qrCode.modules[row][col - 3] && qrCode.modules[row][col - 4]) { |
| | | lostPoint += 40; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //level 2 è¯ä»· |
| | | if ((row < moduleCount - 1) && (col < moduleCount - 1)) { |
| | | var count = 0; |
| | | if (current) count++; |
| | | if (qrCode.modules[row + 1][col]) count++; |
| | | if (qrCode.modules[row][col + 1]) count++; |
| | | if (qrCode.modules[row + 1][col + 1]) count++; |
| | | if (count == 0 || count == 4) { |
| | | lostPoint += 3; |
| | | } |
| | | } |
| | | //level 1 è¯ä»· |
| | | if (head ^ current) { |
| | | sameCount++; |
| | | } else { |
| | | head = current; |
| | | if (sameCount >= 5) { |
| | | lostPoint += (3 + sameCount - 5); |
| | | } |
| | | sameCount = 1; |
| | | } |
| | | //level 4 è¯ä»· |
| | | if (current) { |
| | | darkCount++; |
| | | } |
| | | } |
| | | } |
| | | for (var col = 0; col < moduleCount; col++) { |
| | | var sameCount = 0; |
| | | var head = qrCode.modules[0][col]; |
| | | for (var row = 0; row < moduleCount; row++) { |
| | | var current = qrCode.modules[row][col]; |
| | | //level 3 è¯ä»· |
| | | if (row < moduleCount - 6) { |
| | | if (current && !qrCode.modules[row + 1][col] && qrCode.modules[row + 2][col] && qrCode.modules[row + 3][col] && qrCode.modules[row + 4][col] && !qrCode.modules[row + 5][col] && qrCode.modules[row + 6][col]) { |
| | | if (row < moduleCount - 10) { |
| | | if (qrCode.modules[row + 7][col] && qrCode.modules[row + 8][col] && qrCode.modules[row + 9][col] && qrCode.modules[row + 10][col]) { |
| | | lostPoint += 40; |
| | | } |
| | | } else if (row > 3) { |
| | | if (qrCode.modules[row - 1][col] && qrCode.modules[row - 2][col] && qrCode.modules[row - 3][col] && qrCode.modules[row - 4][col]) { |
| | | lostPoint += 40; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //level 1 è¯ä»· |
| | | if (head ^ current) { |
| | | sameCount++; |
| | | } else { |
| | | head = current; |
| | | if (sameCount >= 5) { |
| | | lostPoint += (3 + sameCount - 5); |
| | | } |
| | | sameCount = 1; |
| | | } |
| | | } |
| | | } |
| | | // LEVEL4 |
| | | var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5; |
| | | lostPoint += ratio * 10; |
| | | return lostPoint; |
| | | } |
| | | |
| | | }; |
| | | //--------------------------------------------------------------------- |
| | | // QRMath使ç¨çæ°å¦å·¥å
· |
| | | //--------------------------------------------------------------------- |
| | | var QRMath = { |
| | | /* |
| | | å°n转å为a^m |
| | | */ |
| | | glog: function (n) { |
| | | if (n < 1) { |
| | | throw new Error("glog(" + n + ")"); |
| | | } |
| | | return QRMath.LOG_TABLE[n]; |
| | | }, |
| | | /* |
| | | å°a^m转å为n |
| | | */ |
| | | gexp: function (n) { |
| | | while (n < 0) { |
| | | n += 255; |
| | | } |
| | | while (n >= 256) { |
| | | n -= 255; |
| | | } |
| | | return QRMath.EXP_TABLE[n]; |
| | | }, |
| | | EXP_TABLE: new Array(256), |
| | | LOG_TABLE: new Array(256) |
| | | |
| | | }; |
| | | for (var i = 0; i < 8; i++) { |
| | | QRMath.EXP_TABLE[i] = 1 << i; |
| | | } |
| | | for (var i = 8; i < 256; i++) { |
| | | QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8]; |
| | | } |
| | | for (var i = 0; i < 255; i++) { |
| | | QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i; |
| | | } |
| | | //--------------------------------------------------------------------- |
| | | // QRPolynomial å¤é¡¹å¼ |
| | | //--------------------------------------------------------------------- |
| | | /** |
| | | * å¤é¡¹å¼ç±» |
| | | * @param {Array} num ç³»æ° |
| | | * @param {num} shift a^shift |
| | | */ |
| | | function QRPolynomial(num, shift) { |
| | | if (num.length == undefined) { |
| | | throw new Error(num.length + "/" + shift); |
| | | } |
| | | var offset = 0; |
| | | while (offset < num.length && num[offset] == 0) { |
| | | offset++; |
| | | } |
| | | this.num = new Array(num.length - offset + shift); |
| | | for (var i = 0; i < num.length - offset; i++) { |
| | | this.num[i] = num[i + offset]; |
| | | } |
| | | } |
| | | QRPolynomial.prototype = { |
| | | get: function (index) { |
| | | return this.num[index]; |
| | | }, |
| | | getLength: function () { |
| | | return this.num.length; |
| | | }, |
| | | /** |
| | | * å¤é¡¹å¼ä¹æ³ |
| | | * @param {QRPolynomial} e 被ä¹å¤é¡¹å¼ |
| | | * @return {[type]} [description] |
| | | */ |
| | | multiply: function (e) { |
| | | var num = new Array(this.getLength() + e.getLength() - 1); |
| | | for (var i = 0; i < this.getLength(); i++) { |
| | | for (var j = 0; j < e.getLength(); j++) { |
| | | num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))); |
| | | } |
| | | } |
| | | return new QRPolynomial(num, 0); |
| | | }, |
| | | /** |
| | | * å¤é¡¹å¼æ¨¡è¿ç® |
| | | * @param {QRPolynomial} e 模å¤é¡¹å¼ |
| | | * @return {} |
| | | */ |
| | | mod: function (e) { |
| | | var tl = this.getLength(), |
| | | el = e.getLength(); |
| | | if (tl - el < 0) { |
| | | return this; |
| | | } |
| | | var num = new Array(tl); |
| | | for (var i = 0; i < tl; i++) { |
| | | num[i] = this.get(i); |
| | | } |
| | | while (num.length >= el) { |
| | | var ratio = QRMath.glog(num[0]) - QRMath.glog(e.get(0)); |
| | | |
| | | for (var i = 0; i < e.getLength(); i++) { |
| | | num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio); |
| | | } |
| | | while (num[0] == 0) { |
| | | num.shift(); |
| | | } |
| | | } |
| | | return new QRPolynomial(num, 0); |
| | | } |
| | | }; |
| | | |
| | | //--------------------------------------------------------------------- |
| | | // RS_BLOCK_TABLE |
| | | //--------------------------------------------------------------------- |
| | | /* |
| | | äºç»´ç åä¸ªçæ¬ä¿¡æ¯[åæ°, æ¯åä¸çæ°æ®åæ°, æ¯åä¸çä¿¡æ¯åæ°] |
| | | */ |
| | | var RS_BLOCK_TABLE = [ |
| | | // L |
| | | // M |
| | | // Q |
| | | // H |
| | | // 1 |
| | | [1, 26, 19], |
| | | [1, 26, 16], |
| | | [1, 26, 13], |
| | | [1, 26, 9], |
| | | |
| | | // 2 |
| | | [1, 44, 34], |
| | | [1, 44, 28], |
| | | [1, 44, 22], |
| | | [1, 44, 16], |
| | | |
| | | // 3 |
| | | [1, 70, 55], |
| | | [1, 70, 44], |
| | | [2, 35, 17], |
| | | [2, 35, 13], |
| | | |
| | | // 4 |
| | | [1, 100, 80], |
| | | [2, 50, 32], |
| | | [2, 50, 24], |
| | | [4, 25, 9], |
| | | |
| | | // 5 |
| | | [1, 134, 108], |
| | | [2, 67, 43], |
| | | [2, 33, 15, 2, 34, 16], |
| | | [2, 33, 11, 2, 34, 12], |
| | | |
| | | // 6 |
| | | [2, 86, 68], |
| | | [4, 43, 27], |
| | | [4, 43, 19], |
| | | [4, 43, 15], |
| | | |
| | | // 7 |
| | | [2, 98, 78], |
| | | [4, 49, 31], |
| | | [2, 32, 14, 4, 33, 15], |
| | | [4, 39, 13, 1, 40, 14], |
| | | |
| | | // 8 |
| | | [2, 121, 97], |
| | | [2, 60, 38, 2, 61, 39], |
| | | [4, 40, 18, 2, 41, 19], |
| | | [4, 40, 14, 2, 41, 15], |
| | | |
| | | // 9 |
| | | [2, 146, 116], |
| | | [3, 58, 36, 2, 59, 37], |
| | | [4, 36, 16, 4, 37, 17], |
| | | [4, 36, 12, 4, 37, 13], |
| | | |
| | | // 10 |
| | | [2, 86, 68, 2, 87, 69], |
| | | [4, 69, 43, 1, 70, 44], |
| | | [6, 43, 19, 2, 44, 20], |
| | | [6, 43, 15, 2, 44, 16], |
| | | |
| | | // 11 |
| | | [4, 101, 81], |
| | | [1, 80, 50, 4, 81, 51], |
| | | [4, 50, 22, 4, 51, 23], |
| | | [3, 36, 12, 8, 37, 13], |
| | | |
| | | // 12 |
| | | [2, 116, 92, 2, 117, 93], |
| | | [6, 58, 36, 2, 59, 37], |
| | | [4, 46, 20, 6, 47, 21], |
| | | [7, 42, 14, 4, 43, 15], |
| | | |
| | | // 13 |
| | | [4, 133, 107], |
| | | [8, 59, 37, 1, 60, 38], |
| | | [8, 44, 20, 4, 45, 21], |
| | | [12, 33, 11, 4, 34, 12], |
| | | |
| | | // 14 |
| | | [3, 145, 115, 1, 146, 116], |
| | | [4, 64, 40, 5, 65, 41], |
| | | [11, 36, 16, 5, 37, 17], |
| | | [11, 36, 12, 5, 37, 13], |
| | | |
| | | // 15 |
| | | [5, 109, 87, 1, 110, 88], |
| | | [5, 65, 41, 5, 66, 42], |
| | | [5, 54, 24, 7, 55, 25], |
| | | [11, 36, 12], |
| | | |
| | | // 16 |
| | | [5, 122, 98, 1, 123, 99], |
| | | [7, 73, 45, 3, 74, 46], |
| | | [15, 43, 19, 2, 44, 20], |
| | | [3, 45, 15, 13, 46, 16], |
| | | |
| | | // 17 |
| | | [1, 135, 107, 5, 136, 108], |
| | | [10, 74, 46, 1, 75, 47], |
| | | [1, 50, 22, 15, 51, 23], |
| | | [2, 42, 14, 17, 43, 15], |
| | | |
| | | // 18 |
| | | [5, 150, 120, 1, 151, 121], |
| | | [9, 69, 43, 4, 70, 44], |
| | | [17, 50, 22, 1, 51, 23], |
| | | [2, 42, 14, 19, 43, 15], |
| | | |
| | | // 19 |
| | | [3, 141, 113, 4, 142, 114], |
| | | [3, 70, 44, 11, 71, 45], |
| | | [17, 47, 21, 4, 48, 22], |
| | | [9, 39, 13, 16, 40, 14], |
| | | |
| | | // 20 |
| | | [3, 135, 107, 5, 136, 108], |
| | | [3, 67, 41, 13, 68, 42], |
| | | [15, 54, 24, 5, 55, 25], |
| | | [15, 43, 15, 10, 44, 16], |
| | | |
| | | // 21 |
| | | [4, 144, 116, 4, 145, 117], |
| | | [17, 68, 42], |
| | | [17, 50, 22, 6, 51, 23], |
| | | [19, 46, 16, 6, 47, 17], |
| | | |
| | | // 22 |
| | | [2, 139, 111, 7, 140, 112], |
| | | [17, 74, 46], |
| | | [7, 54, 24, 16, 55, 25], |
| | | [34, 37, 13], |
| | | |
| | | // 23 |
| | | [4, 151, 121, 5, 152, 122], |
| | | [4, 75, 47, 14, 76, 48], |
| | | [11, 54, 24, 14, 55, 25], |
| | | [16, 45, 15, 14, 46, 16], |
| | | |
| | | // 24 |
| | | [6, 147, 117, 4, 148, 118], |
| | | [6, 73, 45, 14, 74, 46], |
| | | [11, 54, 24, 16, 55, 25], |
| | | [30, 46, 16, 2, 47, 17], |
| | | |
| | | // 25 |
| | | [8, 132, 106, 4, 133, 107], |
| | | [8, 75, 47, 13, 76, 48], |
| | | [7, 54, 24, 22, 55, 25], |
| | | [22, 45, 15, 13, 46, 16], |
| | | |
| | | // 26 |
| | | [10, 142, 114, 2, 143, 115], |
| | | [19, 74, 46, 4, 75, 47], |
| | | [28, 50, 22, 6, 51, 23], |
| | | [33, 46, 16, 4, 47, 17], |
| | | |
| | | // 27 |
| | | [8, 152, 122, 4, 153, 123], |
| | | [22, 73, 45, 3, 74, 46], |
| | | [8, 53, 23, 26, 54, 24], |
| | | [12, 45, 15, 28, 46, 16], |
| | | |
| | | // 28 |
| | | [3, 147, 117, 10, 148, 118], |
| | | [3, 73, 45, 23, 74, 46], |
| | | [4, 54, 24, 31, 55, 25], |
| | | [11, 45, 15, 31, 46, 16], |
| | | |
| | | // 29 |
| | | [7, 146, 116, 7, 147, 117], |
| | | [21, 73, 45, 7, 74, 46], |
| | | [1, 53, 23, 37, 54, 24], |
| | | [19, 45, 15, 26, 46, 16], |
| | | |
| | | // 30 |
| | | [5, 145, 115, 10, 146, 116], |
| | | [19, 75, 47, 10, 76, 48], |
| | | [15, 54, 24, 25, 55, 25], |
| | | [23, 45, 15, 25, 46, 16], |
| | | |
| | | // 31 |
| | | [13, 145, 115, 3, 146, 116], |
| | | [2, 74, 46, 29, 75, 47], |
| | | [42, 54, 24, 1, 55, 25], |
| | | [23, 45, 15, 28, 46, 16], |
| | | |
| | | // 32 |
| | | [17, 145, 115], |
| | | [10, 74, 46, 23, 75, 47], |
| | | [10, 54, 24, 35, 55, 25], |
| | | [19, 45, 15, 35, 46, 16], |
| | | |
| | | // 33 |
| | | [17, 145, 115, 1, 146, 116], |
| | | [14, 74, 46, 21, 75, 47], |
| | | [29, 54, 24, 19, 55, 25], |
| | | [11, 45, 15, 46, 46, 16], |
| | | |
| | | // 34 |
| | | [13, 145, 115, 6, 146, 116], |
| | | [14, 74, 46, 23, 75, 47], |
| | | [44, 54, 24, 7, 55, 25], |
| | | [59, 46, 16, 1, 47, 17], |
| | | |
| | | // 35 |
| | | [12, 151, 121, 7, 152, 122], |
| | | [12, 75, 47, 26, 76, 48], |
| | | [39, 54, 24, 14, 55, 25], |
| | | [22, 45, 15, 41, 46, 16], |
| | | |
| | | // 36 |
| | | [6, 151, 121, 14, 152, 122], |
| | | [6, 75, 47, 34, 76, 48], |
| | | [46, 54, 24, 10, 55, 25], |
| | | [2, 45, 15, 64, 46, 16], |
| | | |
| | | // 37 |
| | | [17, 152, 122, 4, 153, 123], |
| | | [29, 74, 46, 14, 75, 47], |
| | | [49, 54, 24, 10, 55, 25], |
| | | [24, 45, 15, 46, 46, 16], |
| | | |
| | | // 38 |
| | | [4, 152, 122, 18, 153, 123], |
| | | [13, 74, 46, 32, 75, 47], |
| | | [48, 54, 24, 14, 55, 25], |
| | | [42, 45, 15, 32, 46, 16], |
| | | |
| | | // 39 |
| | | [20, 147, 117, 4, 148, 118], |
| | | [40, 75, 47, 7, 76, 48], |
| | | [43, 54, 24, 22, 55, 25], |
| | | [10, 45, 15, 67, 46, 16], |
| | | |
| | | // 40 |
| | | [19, 148, 118, 6, 149, 119], |
| | | [18, 75, 47, 31, 76, 48], |
| | | [34, 54, 24, 34, 55, 25], |
| | | [20, 45, 15, 61, 46, 16] |
| | | ]; |
| | | |
| | | /** |
| | | * æ ¹æ®æ°æ®è·å对åºçæ¬ |
| | | * @return {[type]} [description] |
| | | */ |
| | | QRCodeAlg.prototype.getRightType = function () { |
| | | for (var typeNumber = 1; typeNumber < 41; typeNumber++) { |
| | | var rsBlock = RS_BLOCK_TABLE[(typeNumber - 1) * 4 + this.errorCorrectLevel]; |
| | | if (rsBlock == undefined) { |
| | | throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + this.errorCorrectLevel); |
| | | } |
| | | var length = rsBlock.length / 3; |
| | | var totalDataCount = 0; |
| | | for (var i = 0; i < length; i++) { |
| | | var count = rsBlock[i * 3 + 0]; |
| | | var dataCount = rsBlock[i * 3 + 2]; |
| | | totalDataCount += dataCount * count; |
| | | } |
| | | var lengthBytes = typeNumber > 9 ? 2 : 1; |
| | | if (this.utf8bytes.length + lengthBytes < totalDataCount || typeNumber == 40) { |
| | | this.typeNumber = typeNumber; |
| | | this.rsBlock = rsBlock; |
| | | this.totalDataCount = totalDataCount; |
| | | break; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | //--------------------------------------------------------------------- |
| | | // QRBitBuffer |
| | | //--------------------------------------------------------------------- |
| | | function QRBitBuffer() { |
| | | this.buffer = new Array(); |
| | | this.length = 0; |
| | | } |
| | | QRBitBuffer.prototype = { |
| | | get: function (index) { |
| | | var bufIndex = Math.floor(index / 8); |
| | | return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1); |
| | | }, |
| | | put: function (num, length) { |
| | | for (var i = 0; i < length; i++) { |
| | | this.putBit(((num >>> (length - i - 1)) & 1)); |
| | | } |
| | | }, |
| | | putBit: function (bit) { |
| | | var bufIndex = Math.floor(this.length / 8); |
| | | if (this.buffer.length <= bufIndex) { |
| | | this.buffer.push(0); |
| | | } |
| | | if (bit) { |
| | | this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); |
| | | } |
| | | this.length++; |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | // xzedit |
| | | let qrcodeAlgObjCache = []; |
| | | /** |
| | | * äºç»´ç æé 彿°ï¼ä¸»è¦ç¨äºç»å¶ |
| | | * @param {åæ°å表} opt ä¼ éåæ° |
| | | * @return {} |
| | | */ |
| | | QRCode = function (opt) { |
| | | //设置é»è®¤åæ° |
| | | this.options = { |
| | | text: '', |
| | | size: 256, |
| | | correctLevel: 3, |
| | | background: '#ffffff', |
| | | foreground: '#000000', |
| | | pdground: '#000000', |
| | | image: '', |
| | | imageSize: 30, |
| | | canvasId: opt.canvasId, |
| | | context: opt.context, |
| | | usingComponents: opt.usingComponents, |
| | | showLoading: opt.showLoading, |
| | | loadingText: opt.loadingText, |
| | | }; |
| | | if (typeof opt === 'string') { // åªç¼ç ASCIIå符串 |
| | | opt = { |
| | | text: opt |
| | | }; |
| | | } |
| | | if (opt) { |
| | | for (var i in opt) { |
| | | this.options[i] = opt[i]; |
| | | } |
| | | } |
| | | //使ç¨QRCodeAlgå建äºç»´ç ç»æ |
| | | var qrCodeAlg = null; |
| | | for (var i = 0, l = qrcodeAlgObjCache.length; i < l; i++) { |
| | | if (qrcodeAlgObjCache[i].text == this.options.text && qrcodeAlgObjCache[i].text.correctLevel == this.options.correctLevel) { |
| | | qrCodeAlg = qrcodeAlgObjCache[i].obj; |
| | | break; |
| | | } |
| | | } |
| | | if (i == l) { |
| | | qrCodeAlg = new QRCodeAlg(this.options.text, this.options.correctLevel); |
| | | qrcodeAlgObjCache.push({ |
| | | text: this.options.text, |
| | | correctLevel: this.options.correctLevel, |
| | | obj: qrCodeAlg |
| | | }); |
| | | } |
| | | /** |
| | | * 计ç®ç©éµç¹çåæ¯è² |
| | | * @param {Obj} config |
| | | * @param {Number} config.row ç¹xåæ |
| | | * @param {Number} config.col ç¹yåæ |
| | | * @param {Number} config.count ç©éµå¤§å° |
| | | * @param {Number} config.options ç»ä»¶çoptions |
| | | * @return {String} |
| | | */ |
| | | let getForeGround = function (config) { |
| | | var options = config.options; |
| | | if (options.pdground && ( |
| | | (config.row > 1 && config.row < 5 && config.col > 1 && config.col < 5) || |
| | | (config.row > (config.count - 6) && config.row < (config.count - 2) && config.col > 1 && config.col < 5) || |
| | | (config.row > 1 && config.row < 5 && config.col > (config.count - 6) && config.col < (config.count - 2)) |
| | | )) { |
| | | return options.pdground; |
| | | } |
| | | return options.foreground; |
| | | } |
| | | // å建canvas |
| | | let createCanvas = function (options) { |
| | | if (options.showLoading) { |
| | | uni.showLoading({ |
| | | title: options.loadingText, |
| | | mask: true |
| | | }); |
| | | } |
| | | var ctx = uni.createCanvasContext(options.canvasId, options.context); |
| | | var count = qrCodeAlg.getModuleCount(); |
| | | var ratioSize = options.size; |
| | | var ratioImgSize = options.imageSize; |
| | | //è®¡ç®æ¯ä¸ªç¹çé¿å®½ |
| | | var tileW = (ratioSize / count).toPrecision(4); |
| | | var tileH = (ratioSize / count).toPrecision(4); |
| | | //ç»å¶ |
| | | for (var row = 0; row < count; row++) { |
| | | for (var col = 0; col < count; col++) { |
| | | var w = (Math.ceil((col + 1) * tileW) - Math.floor(col * tileW)); |
| | | var h = (Math.ceil((row + 1) * tileW) - Math.floor(row * tileW)); |
| | | var foreground = getForeGround({ |
| | | row: row, |
| | | col: col, |
| | | count: count, |
| | | options: options |
| | | }); |
| | | ctx.setFillStyle(qrCodeAlg.modules[row][col] ? foreground : options.background); |
| | | ctx.fillRect(Math.round(col * tileW), Math.round(row * tileH), w, h); |
| | | } |
| | | } |
| | | if (options.image) { |
| | | var x = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); |
| | | var y = Number(((ratioSize - ratioImgSize) / 2).toFixed(2)); |
| | | drawRoundedRect(ctx, x, y, ratioImgSize, ratioImgSize, 2, 6, true, true) |
| | | ctx.drawImage(options.image, x, y, ratioImgSize, ratioImgSize); |
| | | // ç»åè§ç©å½¢ |
| | | function drawRoundedRect(ctxi, x, y, width, height, r, lineWidth, fill, stroke) { |
| | | ctxi.setLineWidth(lineWidth); |
| | | ctxi.setFillStyle(options.background); |
| | | ctxi.setStrokeStyle(options.background); |
| | | ctxi.beginPath(); // draw top and top right corner |
| | | ctxi.moveTo(x + r, y); |
| | | ctxi.arcTo(x + width, y, x + width, y + r, r); // draw right side and bottom right corner |
| | | ctxi.arcTo(x + width, y + height, x + width - r, y + height, r); // draw bottom and bottom left corner |
| | | ctxi.arcTo(x, y + height, x, y + height - r, r); // draw left and top left corner |
| | | ctxi.arcTo(x, y, x + r, y, r); |
| | | ctxi.closePath(); |
| | | if (fill) { |
| | | ctxi.fill(); |
| | | } |
| | | if (stroke) { |
| | | ctxi.stroke(); |
| | | } |
| | | } |
| | | } |
| | | setTimeout(() => { |
| | | ctx.draw(true, () => { |
| | | // ä¿åå°ä¸´æ¶åºå |
| | | setTimeout(() => { |
| | | uni.canvasToTempFilePath({ |
| | | width: options.width, |
| | | height: options.height, |
| | | destWidth: options.width, |
| | | destHeight: options.height, |
| | | canvasId: options.canvasId, |
| | | quality: Number(1), |
| | | success: function (res) { |
| | | if (options.cbResult) { |
| | | options.cbResult(res.tempFilePath) |
| | | } |
| | | }, |
| | | fail: function (res) { |
| | | if (options.cbResult) { |
| | | options.cbResult(res) |
| | | } |
| | | }, |
| | | complete: function () { |
| | | if (options.showLoading){ |
| | | uni.hideLoading(); |
| | | } |
| | | }, |
| | | }, options.context); |
| | | }, options.text.length + 100); |
| | | }); |
| | | }, options.usingComponents ? 0 : 150); |
| | | } |
| | | createCanvas(this.options); |
| | | // 空å¤å® |
| | | let empty = function (v) { |
| | | let tp = typeof v, |
| | | rt = false; |
| | | if (tp == "number" && String(v) == "") { |
| | | rt = true |
| | | } else if (tp == "undefined") { |
| | | rt = true |
| | | } else if (tp == "object") { |
| | | if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true |
| | | } else if (tp == "string") { |
| | | if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true |
| | | } else if (tp == "function") { |
| | | rt = false |
| | | } |
| | | return rt |
| | | } |
| | | }; |
| | | QRCode.prototype.clear = function (fn) { |
| | | var ctx = uni.createCanvasContext(this.options.canvasId, this.options.context) |
| | | ctx.clearRect(0, 0, this.options.size, this.options.size) |
| | | ctx.draw(false, () => { |
| | | if (fn) { |
| | | fn() |
| | | } |
| | | }) |
| | | }; |
| | | })() |
| | | |
| | | export default QRCode |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template xlang="wxml" minapp="mpvue"> |
| | | <view class="tki-qrcode"> |
| | | <!-- #ifndef MP-ALIPAY --> |
| | | <canvas class="tki-qrcode-canvas" :canvas-id="cid" :style="{width:cpSize+'px',height:cpSize+'px'}" /> |
| | | <!-- #endif --> |
| | | <!-- #ifdef MP-ALIPAY --> |
| | | <canvas :id="cid" :width="cpSize" :height="cpSize" class="tki-qrcode-canvas" /> |
| | | <!-- #endif --> |
| | | <image v-show="show" :src="result" :style="{width:cpSize+'px',height:cpSize+'px'}" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import QRCode from "./qrcode.js" |
| | | let qrcode |
| | | export default { |
| | | name: "tki-qrcode", |
| | | props: { |
| | | cid: { |
| | | type: String, |
| | | default: 'tki-qrcode-canvas' |
| | | }, |
| | | size: { |
| | | type: Number, |
| | | default: 200 |
| | | }, |
| | | unit: { |
| | | type: String, |
| | | default: 'upx' |
| | | }, |
| | | show: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | val: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | background: { |
| | | type: String, |
| | | default: '#ffffff' |
| | | }, |
| | | foreground: { |
| | | type: String, |
| | | default: '#000000' |
| | | }, |
| | | pdground: { |
| | | type: String, |
| | | default: '#000000' |
| | | }, |
| | | icon: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | iconSize: { |
| | | type: Number, |
| | | default: 40 |
| | | }, |
| | | lv: { |
| | | type: Number, |
| | | default: 3 |
| | | }, |
| | | onval: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | loadMake: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | usingComponents: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | showLoading: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | loadingText: { |
| | | type: String, |
| | | default: 'äºç»´ç çæä¸' |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | result: '', |
| | | } |
| | | }, |
| | | methods: { |
| | | _makeCode() { |
| | | let that = this |
| | | if (!this._empty(this.val)) { |
| | | setTimeout(() => { |
| | | qrcode = new QRCode({ |
| | | context: that, // ä¸ä¸æç¯å¢ |
| | | canvasId:that.cid, // canvas-id |
| | | usingComponents: that.usingComponents, // æ¯å¦æ¯èªå®ä¹ç»ä»¶ |
| | | showLoading: that.showLoading, // æ¯å¦æ¾ç¤ºloading |
| | | loadingText: that.loadingText, // loadingæå |
| | | text: that.val, // çæå
容 |
| | | size: that.cpSize, // äºç»´ç å¤§å° |
| | | background: that.background, // èæ¯è² |
| | | foreground: that.foreground, // åæ¯è² |
| | | pdground: that.pdground, // å®ä½è§ç¹é¢è² |
| | | correctLevel: that.lv, // 容éçº§å« |
| | | image: that.icon, // äºç»´ç 徿 |
| | | imageSize: that.iconSize,// äºç»´ç 徿 å¤§å° |
| | | cbResult: function (res) { // çæäºç»´ç çåè° |
| | | that._result(res) |
| | | }, |
| | | }); |
| | | }, 1) |
| | | } else { |
| | | uni.showToast({ |
| | | title: 'äºç»´ç å
容ä¸è½ä¸ºç©º', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | }, |
| | | _clearCode() { |
| | | this._result('') |
| | | qrcode.clear() |
| | | }, |
| | | _saveCode() { |
| | | let that = this; |
| | | if (this.result != "") { |
| | | uni.saveImageToPhotosAlbum({ |
| | | filePath: that.result, |
| | | success: function () { |
| | | uni.showToast({ |
| | | title: 'äºç»´ç ä¿åæå', |
| | | icon: 'success', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | _result(res) { |
| | | this.result = res; |
| | | this.$emit('result', res) |
| | | }, |
| | | _empty(v) { |
| | | let tp = typeof v, |
| | | rt = false; |
| | | if (tp == "number" && String(v) == "") { |
| | | rt = true |
| | | } else if (tp == "undefined") { |
| | | rt = true |
| | | } else if (tp == "object") { |
| | | if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true |
| | | } else if (tp == "string") { |
| | | if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true |
| | | } else if (tp == "function") { |
| | | rt = false |
| | | } |
| | | return rt |
| | | } |
| | | }, |
| | | watch: { |
| | | size: function (n, o) { |
| | | if (n != o && !this._empty(n)) { |
| | | this.cSize = n |
| | | if (!this._empty(this.val)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | }, |
| | | val: function (n, o) { |
| | | if (this.onval) { |
| | | if (n != o && !this._empty(n)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | cpSize() { |
| | | if(this.unit == "upx"){ |
| | | return uni.upx2px(this.size) |
| | | }else{ |
| | | return this.size |
| | | } |
| | | } |
| | | }, |
| | | mounted () { |
| | | if (this.loadMake) { |
| | | if (!this._empty(this.val)) { |
| | | this._makeCode() |
| | | } |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | <style> |
| | | .tki-qrcode { |
| | | position: relative; |
| | | } |
| | | .tki-qrcode-canvas { |
| | | position: fixed!important; |
| | | top: -99999upx; |
| | | left: -99999upx; |
| | | z-index: -99999; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | import App from './App' |
| | | //å¼å
¥uview |
| | | import uView from "uview-ui"; |
| | | import {baseUrl} from 'utils/request.js' |
| | | import createStore from './store' |
| | | // import svg from '@/styles/iconfont/svg.js'; |
| | | // Vue.use(svg) |
| | | Vue.use(uView); |
| | | const store = createStore(Vue); |
| | | Vue.config.productionTip = false |
| | | |
| | | Vue.prototype.$myHOST = baseUrl |
| | | App.mpType = 'app' |
| | | import cuCustom from './colorui/components/cu-custom.vue' |
| | | Vue.component('cu-custom',cuCustom) |
| | | import LodingModal from './components/Loding.vue' |
| | | Vue.component('loding-modal',LodingModal) |
| | | import CuModal from './components/CuModal.vue' |
| | | Vue.component('cu-modal',CuModal) |
| | | import BottomModal from './components/BottomModal.vue' |
| | | Vue.component('bottom-modal',BottomModal) |
| | | import noclick from './components/noclick.js' |
| | | Vue.prototype.$noMultipleClicks = noclick.noMultipleClicks; |
| | | const app = new Vue({ |
| | | ...App, |
| | | store |
| | | }) |
| | | app.$mount() |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name" : "LuLiMuYe_Package_Pda", |
| | | "appid" : "__UNI__28D87EB", |
| | | "description" : "2024.07.29", |
| | | "versionName" : "1.0.0", |
| | | "versionCode" : "100", |
| | | "transformPx" : false, |
| | | "app-plus" : { |
| | | "usingComponents" : true, |
| | | "nvueStyleCompiler" : "uni-app", |
| | | "compilerVersion" : 3, |
| | | "splashscreen" : { |
| | | "alwaysShowBeforeRender" : true, |
| | | "waiting" : true, |
| | | "autoclose" : true, |
| | | "delay" : 0 |
| | | }, |
| | | "compatible" : { |
| | | "ignoreVersion" : true //true表示忽ç¥çæ¬æ£æ¥æç¤ºæ¡ |
| | | }, |
| | | "modules" : { |
| | | "Bluetooth" : {}, |
| | | "Camera" : {}, |
| | | "Push" : {} |
| | | }, |
| | | "distribute" : { |
| | | "android" : { |
| | | "permissions" : [ |
| | | "<uses-feature android:name=\"android.hardware.camera\"/>", |
| | | "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
| | | "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.CAMERA\"/>", |
| | | "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
| | | "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
| | | "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
| | | "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
| | | "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
| | | "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
| | | "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
| | | ], |
| | | "autoSdkPermissions" : true, |
| | | "targetSdkVersion" : "apkçç®æ çæ¬,é»è®¤å¼ä¸º28", |
| | | "abiFilters" : [ "armeabi-v7a", "x86" ] |
| | | }, |
| | | "ios" : { |
| | | "dSYMs" : false |
| | | }, |
| | | "sdkConfigs" : { |
| | | "ad" : {}, |
| | | "push" : {} |
| | | }, |
| | | "icons" : { |
| | | "android" : { |
| | | "hdpi" : "unpackage/res/icons/72x72.png", |
| | | "xhdpi" : "unpackage/res/icons/96x96.png", |
| | | "xxhdpi" : "unpackage/res/icons/144x144.png", |
| | | "xxxhdpi" : "unpackage/res/icons/192x192.png" |
| | | }, |
| | | "ios" : { |
| | | "appstore" : "unpackage/res/icons/1024x1024.png", |
| | | "ipad" : { |
| | | "app" : "unpackage/res/icons/76x76.png", |
| | | "app@2x" : "unpackage/res/icons/152x152.png", |
| | | "notification" : "unpackage/res/icons/20x20.png", |
| | | "notification@2x" : "unpackage/res/icons/40x40.png", |
| | | "proapp@2x" : "unpackage/res/icons/167x167.png", |
| | | "settings" : "unpackage/res/icons/29x29.png", |
| | | "settings@2x" : "unpackage/res/icons/58x58.png", |
| | | "spotlight" : "unpackage/res/icons/40x40.png", |
| | | "spotlight@2x" : "unpackage/res/icons/80x80.png" |
| | | }, |
| | | "iphone" : { |
| | | "app@2x" : "unpackage/res/icons/120x120.png", |
| | | "app@3x" : "unpackage/res/icons/180x180.png", |
| | | "notification@2x" : "unpackage/res/icons/40x40.png", |
| | | "notification@3x" : "unpackage/res/icons/60x60.png", |
| | | "settings@2x" : "unpackage/res/icons/58x58.png", |
| | | "settings@3x" : "unpackage/res/icons/87x87.png", |
| | | "spotlight@2x" : "unpackage/res/icons/80x80.png", |
| | | "spotlight@3x" : "unpackage/res/icons/120x120.png" |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "nativePlugins" : { |
| | | "PrintSDK" : { |
| | | "__plugin_info__" : { |
| | | "name" : "SPD_PrintSDK_Uniapp", |
| | | "description" : "æå¿
ææå°æºæä»¶2.1", |
| | | "platforms" : "Android", |
| | | "url" : "", |
| | | "android_package_name" : "", |
| | | "ios_bundle_id" : "", |
| | | "isCloud" : false, |
| | | "bought" : -1, |
| | | "pid" : "", |
| | | "parameters" : {} |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | "quickapp" : {}, |
| | | "mp-weixin" : { |
| | | "appid" : "", |
| | | "setting" : { |
| | | "urlCheck" : false |
| | | }, |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-alipay" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-baidu" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "mp-toutiao" : { |
| | | "usingComponents" : true |
| | | }, |
| | | "uniStatistics" : { |
| | | "enable" : false |
| | | }, |
| | | "h5" : { |
| | | "router" : { |
| | | "mode" : "hash" |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import printerUtil from '@/components/print/printerutil.js' |
| | | const PrinterJobs = require('@/components/print/printerjobs.js') |
| | | import { |
| | | getDate |
| | | } from '@/utils/dateTime.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | list: [], |
| | | deviceId: '', |
| | | serviceId: '', |
| | | characteristics: [], |
| | | characteristicId: '', |
| | | deviceslist: [] |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.list = [] |
| | | this.deviceslist = [] |
| | | |
| | | }, |
| | | methods: { |
| | | //åå§åèçè®¾å¤ |
| | | openBluetoothAdapter() { |
| | | let _this = this |
| | | uni.openBluetoothAdapter({ |
| | | success: (res) => { //å·²æå¼ |
| | | uni.getBluetoothAdapterState({ //èççå¹é
ç¶æ |
| | | success: (res1) => { |
| | | console.log(res1, 'æ¬æºè®¾å¤çèçå·²æå¼') |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | |
| | | _this.startBluetoothDeviceDiscovery() |
| | | uni.setStorageSync('blueShow', true) |
| | | }, |
| | | fail(error) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼err' |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | fail: err => { //æªæå¼ |
| | | uni.setStorageSync('blueShow', false) |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | startBluetoothDeviceDiscovery() { |
| | | uni.startBluetoothDevicesDiscovery({ |
| | | success: (res) => { |
| | | // åç°å¤å´è®¾å¤ |
| | | uni.showLoading({ |
| | | title: 'å è½½ä¸', |
| | | mask: true |
| | | }); |
| | | this.onBluetoothDeviceFound() |
| | | }, |
| | | fail: err => { |
| | | console.log(err, 'é误信æ¯') |
| | | } |
| | | }) |
| | | }, |
| | | // åç°å¤å´è®¾å¤ |
| | | onBluetoothDeviceFound() { |
| | | uni.onBluetoothDeviceFound((res) => { |
| | | this.deviceslist.length > 0 ? uni.hideLoading() : '' |
| | | if (this.deviceslist.indexOf(res.devices[0].deviceId) == -1) { |
| | | this.deviceslist.push(res.devices[0].deviceId) |
| | | if (res.devices[0].name != "") { |
| | | uni.hideLoading(); |
| | | this.list.push({ |
| | | name: res.devices[0].name, |
| | | deviceId: res.devices[0].deviceId |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | //è·åå¨èçæ¨¡åçææé´ææå·²åç°çèç设å¤ãå
æ¬å·²ç»åæ¬æºå¤äºè¿æ¥ç¶æç设å¤ã |
| | | getBluetoothDevices() { |
| | | console.log("è·åèç设å¤"); |
| | | uni.getBluetoothDevices({ |
| | | success: res => { |
| | | console.log('è·åèçè®¾å¤æå:'); |
| | | console.log(res.devices); |
| | | } |
| | | }); |
| | | }, |
| | | //éæ©è®¾å¤è¿æ¥å§deviceIdä¼ è¿æ¥ |
| | | createBLEConnection(deviceId) { |
| | | //dataéé¢å»ºç«ä¸ä¸ªdeviceIdï¼åå¨èµ·æ¥ |
| | | let _this = this |
| | | uni.showLoading({ |
| | | title: 'è¿æ¥èçä¸...', |
| | | mask: true |
| | | }); |
| | | this.stopBluetoothDevicesDiscovery() |
| | | |
| | | this.deviceId = deviceId, |
| | | //è¿æ¥èç |
| | | uni.createBLEConnection({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success(res) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥æå' |
| | | }); |
| | | uni.setStorageSync("deviceId", deviceId) //æå·²ç»è¿æ¥çèç设å¤ä¿¡æ¯æ¾å
¥ç¼å |
| | | |
| | | setTimeout(() => { |
| | | _this.getBLEDeviceServices(deviceId) |
| | | }, 1000) |
| | | |
| | | }, |
| | | fail(res) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥å¤±è´¥' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // 忢æå¯»èçè®¾å¤ |
| | | stopBluetoothDevicesDiscovery() { |
| | | uni.stopBluetoothDevicesDiscovery({ |
| | | success: e => { |
| | | this.loading = false |
| | | console.log('忢æç´¢èç设å¤:' + e.errMsg); |
| | | }, |
| | | fail: e => { |
| | | console.log('忢æç´¢èç设å¤å¤±è´¥ï¼é误ç ï¼' + e.errCode); |
| | | } |
| | | }); |
| | | }, |
| | | //è·åèçç¹å¾ |
| | | getBLEDeviceCharacteristics(deviceId, serviceId) { |
| | | console.log("è¿å
¥ç¹å¾"); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceCharacteristics({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: serviceId, |
| | | success: (res) => { |
| | | console.log(res, 'ç¹å¾getBLEDeviceCharacteristics') |
| | | this.characteristics = res.characteristics |
| | | |
| | | res.characteristics.forEach((item) => { |
| | | if (item.uuid.indexOf("FF02") != -1) { |
| | | this.characteristicId = item.uuid |
| | | uni.setStorageSync("characteristicId", item |
| | | .uuid) //æå·²ç»è¿æ¥çèçè®¾å¤æ è¯æ¾å
¥ç¼å |
| | | uni.setStorageSync("serviceId", |
| | | serviceId) //æå·²ç»è¿æ¥çèç设å¤IDæ¾å
¥ç¼å |
| | | //console.log('characteristicId:', item.uuid) |
| | | //å©ç¨ä¼ åçå½¢å¿ä¼ ç»ä¸é¢çnotifyï¼è¿éçuuid妿é½éè¦ç¨å°ï¼å°±ä¸ç¨å夿äºï¼å»ºè®®ä½¿ç¨setTimeoutè¿è¡é´éæ§çè°ç¨æ¤æ¹æ³ |
| | | // this.notifyBLECharacteristicValueChange(item.uuid) |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | this.BottomShow = false |
| | | this.DrawerModalL = false |
| | | }, 1000) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (res) => { |
| | | console.log(res) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | // å¯ç¨ notify åè½ |
| | | notifyBLECharacteristicValueChange(characteristicId) { |
| | | let _this = this |
| | | console.log('deviceId' + _this.deviceId) |
| | | console.log('serviceId' + _this.serviceId) |
| | | console.log('characteristicId' + characteristicId) |
| | | // _this.fanhui() |
| | | uni.notifyBLECharacteristicValueChange({ |
| | | state: true, // å¯ç¨ notify åè½ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: this.deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: this.serviceId, |
| | | // è¿éç characteristicId éè¦å¨ getBLEDeviceCharacteristics æ¥å£ä¸è·å |
| | | characteristicId: characteristicId, |
| | | success: (res) => { |
| | | if (this.blueFlag == true) { |
| | | this.writeBLECharacteristicValue() |
| | | } else { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | } |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | // _this.fanhui() |
| | | this.print = "æå°" |
| | | this.BottomShow = false |
| | | |
| | | console.log('notifyBLECharacteristicValueChange success', res.errMsg) |
| | | }, |
| | | fail: (res) => { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | _this.print = "æå°" |
| | | _this.BottomShow = false |
| | | |
| | | // _this.fanhui() |
| | | console.log('notifyBLECharacteristicValueChange fail', res.errMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //è·åèççæææå¡ |
| | | getBLEDeviceServices(deviceId) { |
| | | uni.showLoading({ |
| | | title: 'æ£å¨è·åèçæå¡...', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceServices({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success: (res) => { |
| | | uni.showLoading({ |
| | | title: 'è·åä¸ï¼è¯·ç¨å...', |
| | | mask: true, |
| | | }); |
| | | res.services.forEach((item) => { |
| | | if (item.uuid.indexOf("FF00") != -1) { |
| | | this.serviceId = item.uuid; |
| | | //è·åç¹å¾ |
| | | this.getBLEDeviceCharacteristics(deviceId, item.uuid) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | //åå
¥èç |
| | | writeBLECharacteristicValue() { |
| | | this.printflag = false |
| | | let deviceId = uni.getStorageSync('deviceId') |
| | | let serviceId = uni.getStorageSync('serviceId') |
| | | let characteristicId = uni.getStorageSync('characteristicId') |
| | | // if (!uni.getStorageSync("deviceId")) { |
| | | // uni.showToast({ |
| | | // title: 'è¯·è¿æ¥æå°æº', |
| | | // icon: 'error', |
| | | // duration: 2000 |
| | | // }) |
| | | // return |
| | | // } |
| | | const printerJobs = new PrinterJobs(); |
| | | // this.singlist.forEach(item => { |
| | | printerJobs |
| | | .label_set_page(576, 400) |
| | | //è¾¹æ¡ |
| | | .drawLine(1, 0, 0, 570, 0) |
| | | .drawLine(1, 0, 0, 0, 360) |
| | | .drawLine(1, 570, 0, 570, 360) |
| | | .drawLine(1, 0, 360, 570, 360) |
| | | |
| | | //å
鍿¨ªçº¿ |
| | | // .drawLine(1, 0, 52, 570, 52) //第ä¸è¡ |
| | | // .drawLine(1, 0, 104, 570, 104) //第äºè¡ |
| | | // .drawLine(1, 0, 156, 570, 156) //第ä¸è¡ |
| | | // .drawLine(1, 0, 208, 400, 208) //第åè¡ |
| | | // .drawLine(1, 0, 260, 400, 260) //第äºè¡ |
| | | // .drawLine(1, 0, 312, 400, 312) //第å
è¡ |
| | | |
| | | // .drawLine(1, 120, 0, 120, 360) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | // .drawLine(1, 220, 208, 220, 312) // ç¬¬äºæ ¹ç«çº¿ |
| | | // .drawLine(1, 300, 208, 300, 312) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | // .drawLine(1, 400, 156, 400, 312, ) // ç¬¬åæ ¹ç«çº¿ |
| | | // 1 åå§ æ¯å¦ç²ä½\åä½å¤§å°\æ¯å¦æè½¬è§åº¦\èµ·å§æ¨ªåæ \èµ·å§çºµåæ \å符串 |
| | | |
| | | // .drawText(10, 20, "ç©æå¤§ç±»", 24, 0, 0, false, false) |
| | | // .drawText(130, 20, this.printlist.category, 24, 0, 0, false, false) |
| | | |
| | | // // 2 |
| | | // .drawText(10, 72, "ç©æåç§°", 24, 0, 0, false, false) |
| | | // .drawText(130, 72, item.materialName, 24, 0, 0, false, false) |
| | | |
| | | // // 3 |
| | | // .drawText(10, 124, "ç©ææ¹æ¬¡", 24, 0, 0, false, false) |
| | | // .drawText(130, 124, item.lotsSn, 24, 0, 0, false, false) |
| | | |
| | | // // 4 |
| | | // .drawText(10, 176, "å·¥åå·", 24, 0, 0, false, false) |
| | | // .drawText(130, 176, item.wo, 24, 0, 0, false, false) |
| | | |
| | | // // 5 |
| | | // .drawText(10, 225, "ç产线", 24, 0, 0, false, false) |
| | | // .drawText(130, 225, item.productLine, 24, 0, 0, false, false) |
| | | |
| | | // // 5-1 |
| | | // .drawText(230, 225, "å·¥åº", 24, 0, 0, false, false) |
| | | // .drawText(310, 225, item.cellNo, 24, 0, 0, false, false) |
| | | |
| | | // // 6 |
| | | // .drawText(10, 280, "ç©ææ°é", 24, 0, 0, false, false) |
| | | // .drawText(130, 280, item.materialNum, 24, 0, 0, false, false) |
| | | |
| | | // // 6-1 |
| | | // .drawText(230, 280, "æ¸
æ´", 24, 0, 0, false, false) |
| | | // .drawText(340, 280, item.cleanAttr, 24, 0, 0, false, false) |
| | | |
| | | // // 7 |
| | | // .drawText(10, 332, "æå°æ¶é´", 24, 0, 0, false, false) |
| | | // .drawText(130, 332, item.cTime, 24, 0, 0, false, false) |
| | | // .drawText(440, 332, item.user, 24, 0, 0, false, false) |
| | | |
| | | // // æ¡å½¢ç |
| | | .drawBarCode(10, 50, this.printlist.wareMaterialCode,1, 0, 1, 50 ) |
| | | // .drawText(434, 310, item.containerCode, 1, 0, 0, false, false) |
| | | .label_print(0, 1); |
| | | // }) |
| | | let buffer = printerJobs.buffer(); |
| | | // console.log('ArrayBuffer', 'length: ' + buffer.byteLength, ' hex: ' + ab2hex(buffer)); |
| | | // 1.å¹¶è¡è°ç¨å¤æ¬¡ä¼åå¨å失败çå¯è½æ§ |
| | | // 2.å»ºè®®æ¯æ¬¡åå
¥ä¸è¶
è¿20åè |
| | | // åå
å¤çï¼å»¶æ¶è°ç¨ |
| | | const maxChunk = 15 |
| | | const delay = 20; |
| | | for (let i = 0, j = 0, length = buffer.byteLength; i < length; i += maxChunk, j++) { |
| | | let subPackage = buffer.slice(i, i + maxChunk <= length ? (i + maxChunk) : length); |
| | | // setTimeout(this._writeBLECharacteristicValue, j * delay, subPackage); |
| | | setTimeout(() => { |
| | | this._writeBLECharacteristicValue(deviceId, serviceId, characteristicId, subPackage) |
| | | }, j * delay); |
| | | } |
| | | |
| | | }, |
| | | _writeBLECharacteristicValue(deviceId, serviceId, characteristicId, buffer) { |
| | | |
| | | uni.writeBLECharacteristicValue({ |
| | | deviceId: deviceId, |
| | | serviceId: serviceId, |
| | | characteristicId: characteristicId, |
| | | value: buffer, |
| | | success(res) { |
| | | |
| | | console.log('writeBLECharacteristicValue success', res.errMsg) |
| | | }, |
| | | fail(res) { |
| | | console.log(JSON.stringify(res)) |
| | | console.log(JSON.stringify(buffer)) |
| | | } |
| | | }) |
| | | }, |
| | | //é¿æäºä»¶ |
| | | longpress(item, index) { |
| | | let _this = this |
| | | if (uni.getStorageSync('deviceId')) { |
| | | uni.showToast({ |
| | | title: 'èçå·²è¿æ¥ï¼', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦è¿æ¥èç:' + item.name, |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | // _this.stopBluetoothDevicesDiscovery() |
| | | uni.setStorageSync('itemblue', item.name) |
| | | this.itemblue = item.name |
| | | _this.createBLEConnection(item.deviceId) |
| | | |
| | | } else if (res.cancel) { |
| | | uni.showToast({ |
| | | title: 'å·²åæ¶è¿æ¥', |
| | | duration: 2000, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | // ç¹å»æå¼èçè¿æ¥ |
| | | tomy() { |
| | | var _this = this |
| | | |
| | | uni.closeBluetoothAdapter({ |
| | | success(res) { |
| | | uni.removeStorageSync('deviceId') |
| | | uni.removeStorageSync("serviceId"); |
| | | uni.removeStorageSync("characteristicId"); |
| | | // _this.openBluetoothAdapter() |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | //è¿å |
| | | fanhui() { |
| | | uni.navigateTo({ |
| | | url: './printing' |
| | | }) |
| | | }, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import printerUtil from '@/components/print/printerutil.js' |
| | | const PrinterJobs = require('@/components/print/printerjobs.js') |
| | | import { |
| | | getDate |
| | | } from '@/utils/dateTime.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | list: [], |
| | | deviceId: '', |
| | | serviceId: '', |
| | | characteristics: [], |
| | | characteristicId: '', |
| | | deviceslist: [] |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.list = [] |
| | | this.deviceslist = [] |
| | | |
| | | }, |
| | | methods: { |
| | | //åå§åèçè®¾å¤ |
| | | openBluetoothAdapter() { |
| | | let _this = this |
| | | uni.openBluetoothAdapter({ |
| | | success: (res) => { //å·²æå¼ |
| | | uni.getBluetoothAdapterState({ //èççå¹é
ç¶æ |
| | | success: (res1) => { |
| | | console.log(res1, 'æ¬æºè®¾å¤çèçå·²æå¼') |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | |
| | | _this.startBluetoothDeviceDiscovery() |
| | | uni.setStorageSync('blueShow', true) |
| | | }, |
| | | fail(error) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼err' |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | fail: err => { //æªæå¼ |
| | | uni.setStorageSync('blueShow', false) |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | startBluetoothDeviceDiscovery() { |
| | | uni.startBluetoothDevicesDiscovery({ |
| | | success: (res) => { |
| | | // åç°å¤å´è®¾å¤ |
| | | uni.showLoading({ |
| | | title: 'å è½½ä¸', |
| | | mask: true |
| | | }); |
| | | this.onBluetoothDeviceFound() |
| | | }, |
| | | fail: err => { |
| | | console.log(err, 'é误信æ¯') |
| | | } |
| | | }) |
| | | }, |
| | | // åç°å¤å´è®¾å¤ |
| | | onBluetoothDeviceFound() { |
| | | uni.onBluetoothDeviceFound((res) => { |
| | | this.deviceslist.length > 0 ? uni.hideLoading() : '' |
| | | if (this.deviceslist.indexOf(res.devices[0].deviceId) == -1) { |
| | | this.deviceslist.push(res.devices[0].deviceId) |
| | | if (res.devices[0].name != "") { |
| | | uni.hideLoading(); |
| | | this.list.push({ |
| | | name: res.devices[0].name, |
| | | deviceId: res.devices[0].deviceId |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | //è·åå¨èçæ¨¡åçææé´ææå·²åç°çèç设å¤ãå
æ¬å·²ç»åæ¬æºå¤äºè¿æ¥ç¶æç设å¤ã |
| | | getBluetoothDevices() { |
| | | console.log("è·åèç设å¤"); |
| | | uni.getBluetoothDevices({ |
| | | success: res => { |
| | | console.log('è·åèçè®¾å¤æå:'); |
| | | console.log(res.devices); |
| | | } |
| | | }); |
| | | }, |
| | | //éæ©è®¾å¤è¿æ¥å§deviceIdä¼ è¿æ¥ |
| | | createBLEConnection(deviceId) { |
| | | //dataéé¢å»ºç«ä¸ä¸ªdeviceIdï¼åå¨èµ·æ¥ |
| | | let _this = this |
| | | uni.showLoading({ |
| | | title: 'è¿æ¥èçä¸...', |
| | | mask: true |
| | | }); |
| | | this.stopBluetoothDevicesDiscovery() |
| | | |
| | | this.deviceId = deviceId, |
| | | //è¿æ¥èç |
| | | uni.createBLEConnection({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success(res) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥æå' |
| | | }); |
| | | uni.setStorageSync("deviceId", deviceId) //æå·²ç»è¿æ¥çèç设å¤ä¿¡æ¯æ¾å
¥ç¼å |
| | | |
| | | setTimeout(() => { |
| | | _this.getBLEDeviceServices(deviceId) |
| | | }, 1000) |
| | | |
| | | }, |
| | | fail(res) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥å¤±è´¥' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // 忢æå¯»èçè®¾å¤ |
| | | stopBluetoothDevicesDiscovery() { |
| | | uni.stopBluetoothDevicesDiscovery({ |
| | | success: e => { |
| | | this.loading = false |
| | | console.log('忢æç´¢èç设å¤:' + e.errMsg); |
| | | }, |
| | | fail: e => { |
| | | console.log('忢æç´¢èç设å¤å¤±è´¥ï¼é误ç ï¼' + e.errCode); |
| | | } |
| | | }); |
| | | }, |
| | | //è·åèçç¹å¾ |
| | | getBLEDeviceCharacteristics(deviceId, serviceId) { |
| | | console.log("è¿å
¥ç¹å¾"); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceCharacteristics({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: serviceId, |
| | | success: (res) => { |
| | | console.log(res, 'ç¹å¾getBLEDeviceCharacteristics') |
| | | this.characteristics = res.characteristics |
| | | |
| | | res.characteristics.forEach((item) => { |
| | | if (item.uuid.indexOf("FF02") != -1) { |
| | | this.characteristicId = item.uuid |
| | | uni.setStorageSync("characteristicId", item |
| | | .uuid) //æå·²ç»è¿æ¥çèçè®¾å¤æ è¯æ¾å
¥ç¼å |
| | | uni.setStorageSync("serviceId", |
| | | serviceId) //æå·²ç»è¿æ¥çèç设å¤IDæ¾å
¥ç¼å |
| | | //console.log('characteristicId:', item.uuid) |
| | | //å©ç¨ä¼ åçå½¢å¿ä¼ ç»ä¸é¢çnotifyï¼è¿éçuuid妿é½éè¦ç¨å°ï¼å°±ä¸ç¨å夿äºï¼å»ºè®®ä½¿ç¨setTimeoutè¿è¡é´éæ§çè°ç¨æ¤æ¹æ³ |
| | | // this.notifyBLECharacteristicValueChange(item.uuid) |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | this.BottomShow = false |
| | | this.DrawerModalL = false |
| | | }, 1000) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (res) => { |
| | | console.log(res) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | // å¯ç¨ notify åè½ |
| | | notifyBLECharacteristicValueChange(characteristicId) { |
| | | let _this = this |
| | | console.log('deviceId' + _this.deviceId) |
| | | console.log('serviceId' + _this.serviceId) |
| | | console.log('characteristicId' + characteristicId) |
| | | // _this.fanhui() |
| | | uni.notifyBLECharacteristicValueChange({ |
| | | state: true, // å¯ç¨ notify åè½ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: this.deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: this.serviceId, |
| | | // è¿éç characteristicId éè¦å¨ getBLEDeviceCharacteristics æ¥å£ä¸è·å |
| | | characteristicId: characteristicId, |
| | | success: (res) => { |
| | | if (this.blueFlag == true) { |
| | | this.writeBLECharacteristicValue() |
| | | } else { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | } |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | // _this.fanhui() |
| | | this.print = "æå°" |
| | | this.BottomShow = false |
| | | |
| | | console.log('notifyBLECharacteristicValueChange success', res.errMsg) |
| | | }, |
| | | fail: (res) => { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | _this.print = "æå°" |
| | | _this.BottomShow = false |
| | | |
| | | // _this.fanhui() |
| | | console.log('notifyBLECharacteristicValueChange fail', res.errMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //è·åèççæææå¡ |
| | | getBLEDeviceServices(deviceId) { |
| | | uni.showLoading({ |
| | | title: 'æ£å¨è·åèçæå¡...', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceServices({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success: (res) => { |
| | | uni.showLoading({ |
| | | title: 'è·åä¸ï¼è¯·ç¨å...', |
| | | mask: true, |
| | | }); |
| | | res.services.forEach((item) => { |
| | | if (item.uuid.indexOf("FF00") != -1) { |
| | | this.serviceId = item.uuid; |
| | | //è·åç¹å¾ |
| | | this.getBLEDeviceCharacteristics(deviceId, item.uuid) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | //åå
¥èç |
| | | writeBLECharacteristicValue() { |
| | | this.printflag = false |
| | | let deviceId = uni.getStorageSync('deviceId') |
| | | let serviceId = uni.getStorageSync('serviceId') |
| | | let characteristicId = uni.getStorageSync('characteristicId') |
| | | const printerJobs = new PrinterJobs(); |
| | | this.singlist.forEach(item => { |
| | | printerJobs |
| | | .label_set_page(576, 400) |
| | | //è¾¹æ¡ |
| | | .drawLine(1, 0, 0, 570, 0) |
| | | .drawLine(1, 0, 0, 0, 360) |
| | | .drawLine(1, 570, 0, 570, 360) |
| | | .drawLine(1, 0, 360, 570, 360) |
| | | |
| | | //å
鍿¨ªçº¿ |
| | | .drawLine(1, 0, 94, 570, 94) //第ä¸è¡ |
| | | .drawLine(1, 0, 160, 570, 160) //第äºè¡ |
| | | .drawLine(1, 0, 227, 570, 227) //第ä¸è¡ |
| | | .drawLine(1, 0, 293, 400, 293) //第åè¡ |
| | | |
| | | .drawLine(1, 120, 94, 120, 360) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | .drawLine(1, 400, 227, 400, 360) // ç¬¬äºæ ¹ç«çº¿ |
| | | // 1 åå§ æ¯å¦ç²ä½\åä½å¤§å°\æ¯å¦æè½¬è§åº¦\èµ·å§æ¨ªåæ \èµ·å§çºµåæ \å符串 |
| | | |
| | | .drawText(170, 20, "éåºé山工䏿é责任å
¬å¸", 26, 0, 1, false, false) |
| | | .drawText(240, 62, 'ç©ææ è¯ç¾', 26, 0, 1, false, false) |
| | | |
| | | // 3 |
| | | .drawText(10, 120, "ç©æç¼å·", 24, 0, 0, false, false) |
| | | .drawText(130, 120, item.item_number, 24, 0, 0, false, false) |
| | | |
| | | // 4 |
| | | .drawText(10, 185, "ç©æåç§°", 24, 0, 0, false, false) |
| | | .drawText(130, 185, item.item_desc, 24, 0, 0, false, false) |
| | | |
| | | // 5 |
| | | .drawText(10, 248, "ç©ææ¹æ¬¡", 24, 0, 0, false, false) |
| | | .drawText(130, 248, item.lot_number, 24, 0, 0, false, false) |
| | | |
| | | // 7 |
| | | .drawText(10, 312, "æå°æ¶é´", 24, 0, 0, false, false) |
| | | .drawText(130, 312, item.print_date, 24, 0, 0, false, false) |
| | | // äºç»´ç |
| | | .drawQrCode(438, 232, item.product_barcode, 0, 4, 1) |
| | | .drawText(423, 340, item.product_barcode, 1, 0, 0, false, false) |
| | | .label_print(0, 1); |
| | | }) |
| | | let buffer = printerJobs.buffer(); |
| | | // console.log('ArrayBuffer', 'length: ' + buffer.byteLength, ' hex: ' + ab2hex(buffer)); |
| | | // 1.å¹¶è¡è°ç¨å¤æ¬¡ä¼åå¨å失败çå¯è½æ§ |
| | | // 2.å»ºè®®æ¯æ¬¡åå
¥ä¸è¶
è¿20åè |
| | | // åå
å¤çï¼å»¶æ¶è°ç¨ |
| | | const maxChunk = 13; |
| | | const delay =20; |
| | | for (let i = 0, j = 0, length = buffer.byteLength; i < length; i += maxChunk, j++) { |
| | | let subPackage = buffer.slice(i, i + maxChunk <= length ? (i + maxChunk) : length); |
| | | // setTimeout(this._writeBLECharacteristicValue, j * delay, subPackage); |
| | | setTimeout(() => { |
| | | this._writeBLECharacteristicValue(deviceId, serviceId, characteristicId, subPackage) |
| | | }, j *delay); |
| | | } |
| | | |
| | | }, |
| | | _writeBLECharacteristicValue(deviceId, serviceId, characteristicId, buffer) { |
| | | uni.writeBLECharacteristicValue({ |
| | | deviceId: deviceId, |
| | | serviceId: serviceId, |
| | | characteristicId: characteristicId, |
| | | value: buffer, |
| | | success(res) { |
| | | console.log('writeBLECharacteristicValue success', res.errMsg) |
| | | }, |
| | | fail(res) { |
| | | console.log(JSON.stringify(res)) |
| | | console.log(JSON.stringify(buffer)) |
| | | uni.getStorageSync('failerr','try') |
| | | } |
| | | }) |
| | | }, |
| | | //é¿æäºä»¶ |
| | | longpress(item, index) { |
| | | let _this = this |
| | | if (uni.getStorageSync('deviceId')) { |
| | | uni.showToast({ |
| | | title: 'èçå·²è¿æ¥ï¼', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦è¿æ¥èç:' + item.name, |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | // _this.stopBluetoothDevicesDiscovery() |
| | | uni.setStorageSync('itemblue', item.name) |
| | | this.itemblue = item.name |
| | | _this.createBLEConnection(item.deviceId) |
| | | |
| | | } else if (res.cancel) { |
| | | uni.showToast({ |
| | | title: 'å·²åæ¶è¿æ¥', |
| | | duration: 2000, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | // ç¹å»æå¼èçè¿æ¥ |
| | | tomy() { |
| | | var _this = this |
| | | |
| | | uni.closeBluetoothAdapter({ |
| | | success(res) { |
| | | uni.removeStorageSync('deviceId') |
| | | uni.removeStorageSync("serviceId"); |
| | | uni.removeStorageSync("characteristicId"); |
| | | // _this.openBluetoothAdapter() |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | //è¿å |
| | | fanhui() { |
| | | uni.navigateTo({ |
| | | url: './printing' |
| | | }) |
| | | }, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // uniapp -åçå¤éæ¡-è§£å³ç¹å»uviewå¤éæ¡å¡é¡¿ç°è±¡ |
| | | export default { |
| | | data() { |
| | | return { |
| | | arrIds: [], |
| | | }; |
| | | }, |
| | | methods: { |
| | | // éä¸å¤éæ¡--æ¤å¤è¦æä½arrç»æ° å¦å忢åºä½æ æ³è®°ä½ä¹åéä¸çç©æ |
| | | checkboxChange: function (e) { |
| | | var values = e.detail.value; //åæ¾ææéä¸çid |
| | | // this.arrIds = values; |
| | | var items = this.singlist; |
| | | for (var i = 0, lenI = items.length; i < lenI; ++i) { |
| | | const item = items[i] |
| | | if(values.includes(item.key)){ |
| | | this.$set(item,'checked',true) |
| | | let idx3 = this.arr.findIndex((v) => v.key == item.key); |
| | | if (idx3 == -1) { |
| | | this.arr.push(item); |
| | | } |
| | | }else{ |
| | | this.$set(item,'checked',false) |
| | | let idx2 = this.arr.findIndex((v) => v.key == item.key); |
| | | if (idx2 > -1) { |
| | | this.arr.splice(idx2, 1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | }, |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // uniapp -åçå¤éæ¡-è§£å³ç¹å»å¤éæ¡å¡é¡¿ç°è±¡ --- ä¾POè¶åº å
¥åºè¶åºæé®ç¨é |
| | | export default { |
| | | data() { |
| | | return { |
| | | arrIds: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | | // çå¬å¤éæ¡ |
| | | arrIds(newVal, oldVal) { |
| | | console.log("newVal----" + newVal); |
| | | console.log("oldVal----" + oldVal); |
| | | if (newVal.length < oldVal.length) { |
| | | for (var i = 0, lenI = oldVal.length; i < lenI; ++i) { |
| | | const item = oldVal[i]; |
| | | if (!newVal.includes(item)) { |
| | | console.log("åæ¶äºä¸ä¸ª--------" + item); |
| | | // this.handleCart(0, item); |
| | | } |
| | | } |
| | | } else { |
| | | for (var i = 0, lenI = newVal.length; i < lenI; ++i) { |
| | | const item = newVal[i]; |
| | | if (!oldVal.includes(item)) { |
| | | console.log("éä¸äºä¸ä¸ª--------" + item); |
| | | // this.handleCart(1, item); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | // éä¸å¤éæ¡ |
| | | checkboxChange: function (e) { |
| | | var values = e.detail.value; //åæ¾ææéä¸çid |
| | | this.arrIds = values; |
| | | }, |
| | | |
| | | // æ ¹æ®éä¸çkey,æ´æ°æäº¤çå表 |
| | | handleCart(type, itemHandle) { |
| | | console.log(itemHandle); |
| | | if (type == 1) { |
| | | //éä¸ |
| | | let idx = this.singlist.findIndex((v) => v.key == itemHandle); |
| | | if (idx > -1) { |
| | | let idx3 = this.arr.findIndex((v) => v.key == itemHandle); |
| | | if (idx3 == -1) { |
| | | this.arr.push(this.singlist[idx]); |
| | | } |
| | | } |
| | | } |
| | | if (type == 0) { |
| | | //åæ¶ |
| | | let idx2 = this.arr.findIndex((v) => v.key == itemHandle); |
| | | if (idx2 > -1) { |
| | | this.arr.splice(idx2, 1); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | export default { |
| | | methods:{ |
| | | //è¯é³ææ¥ |
| | | playSound() { |
| | | let _this = this |
| | | const innerAudioContext = uni.createInnerAudioContext(); |
| | | innerAudioContext.autoplay = true; |
| | | innerAudioContext.src = '../../static/13716.wav'; |
| | | innerAudioContext.onError((res) => { |
| | | //妿é³é¢æ²¡ææ£å¸¸ææ¾ |
| | | console.log(res.errCode); |
| | | }) |
| | | innerAudioContext.onStop((res) => { |
| | | _this.playing = false |
| | | |
| | | _this.$forceUpdate() |
| | | }) |
| | | //éå¨ |
| | | uni.vibrateLong({ |
| | | success: function () { |
| | | console.log('success'); |
| | | }, |
| | | complete:function(){ |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // æé©¬æå° å¸¦è®¾å¤ å·¥åº DOçæ è´´ |
| | | import {addBanmaRecord,addBanmaRecordArr} from '@/api/print.js' |
| | | export default { |
| | | methods:{ |
| | | printBanma(reprintPram,typePrint){ |
| | | let reprint = '' |
| | | if(reprintPram){ |
| | | reprint = 'REPRINT' |
| | | } |
| | | if(!this.ermNum || Number(this.ermNum) <=0){ |
| | | uni.showToast({ |
| | | title: 'ç©æï¼è¯·è¾å
¥å¤§äº0çæ°é', |
| | | icon: 'none', |
| | | duration: 4000 |
| | | }); |
| | | return |
| | | } |
| | | if(!this.contLabel || Number(this.contLabel) <=0){ |
| | | uni.showToast({ |
| | | title: 'æå°å¼ æ°ï¼è¯·è¾å
¥å¤§äº0çæ°é', |
| | | icon: 'none', |
| | | duration: 4000 |
| | | }); |
| | | return |
| | | } |
| | | // æ°ç»åªæä¸ä¸ªå¯¹è±¡ |
| | | // this.materlist = this.arrPt[0] |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | // é对æ¥å£è¿åä¸åçåæ®µåç§°è¿è¡å¤æ |
| | | if(this.materlist.wareMaterialCode == undefined){ |
| | | this.materlist.wareMaterialCode = this.materlist.code || this.materlist.warematerialCode || this.materlist.materialCode ||'' |
| | | } |
| | | if(this.materlist.wareMaterialName == undefined){ |
| | | this.materlist.wareMaterialName = this.materlist.warematerialName || this.materlist.name || this.materlist.materialName ||'' |
| | | } |
| | | if(this.materlist.barNo==undefined){ |
| | | this.materlist.barNo = this.materlist.batchNo || this.materlist.itemBatchNo || '' |
| | | } |
| | | // this.materlist.supplier = this.materlist.basicSupplierInfoCode || this.materlist.supplier || '' |
| | | // this.materlist.supplierName = this.materlist.basicSupplierInfoName || this.materlist.supplierName || '' |
| | | this.materlist.code = this.materlist.wareMaterialCode |
| | | this.materlist.batchNo = this.materlist.barNo |
| | | this.materlist.Quantity = this.ermNum //æ°é |
| | | this.materlist.PrintSheetNum = this.contLabel //æå°å¼ æ° |
| | | this.materlist.PurchaseEbelp = this.materlist.ebelp || this.materlist.lineNumber || '' //è¡å· |
| | | this.materlist.supplierNo = this.materlist.supplier || this.materlist.supplierNo || '' |
| | | this.materlist.name = this.materlist.wareMaterialName || '' |
| | | // æå°ç±»å (1ï¼ç©ææ ç¾ 2ï¼åè´§æ ç¾(ç产订å) 3ï¼åè´§æ ç¾(DOå)) |
| | | if(typePrint==2){ //页é¢ï¼åè´§ åè´§æ ç¾è¡¥æ |
| | | this.materlist.printType = 2; |
| | | //åè´§æ ç¾ - è®¾å¤ å·¥åº DOå· |
| | | }else if(typePrint==3){ //页é¢ï¼DOå忣 |
| | | this.materlist.printType = 3; |
| | | }else{ //页é¢ï¼ æ¶è´§ 忣 æ ç¾è¡¥æ |
| | | this.materlist.printType = 1; |
| | | } |
| | | addBanmaRecord(this.materlist).then(res => { |
| | | uni.hideLoading(); |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | | title: 'æå°æå', |
| | | icon: 'success', |
| | | duration: 4000 |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // æ¹éå¢å ç©ææ ç¾æå°åå²è¡¨ - 忣 |
| | | printBanmaArr(reprintPram,typePrint,arrList){ |
| | | if(reprintPram){ |
| | | reprint = 'REPRINT' |
| | | } |
| | | |
| | | // æ°ç»åªæä¸ä¸ªå¯¹è±¡ |
| | | // this.materlist = this.arrPt[0] |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | arrList.forEach(element => { |
| | | // é对æ¥å£è¿åä¸åçåæ®µåç§°è¿è¡å¤æ |
| | | if(element.wareMaterialCode == undefined){ |
| | | element.wareMaterialCode = element.code || element.warematerialCode || element.materialCode ||'' |
| | | } |
| | | if(element.wareMaterialName == undefined){ |
| | | element.wareMaterialName = element.warematerialName || element.name || element.materialName ||'' |
| | | } |
| | | if(element.barNo==undefined){ |
| | | element.barNo = element.batchNo || element.itemBatchNo || '' |
| | | } |
| | | |
| | | element.code = element.wareMaterialCode |
| | | element.batchNo = element.barNo |
| | | // element.Quantity = element.quantity //æ°é |
| | | element.PrintSheetNum = 1 //æå°å¼ æ° |
| | | element.PurchaseEbelp = element.ebelp || element.lineNumber || '' //è¡å· |
| | | this.materlist.supplierNo = this.materlist.supplier || this.materlist.supplierNo || '' |
| | | element.name = element.wareMaterialName || '' |
| | | |
| | | // æå°ç±»å (1ï¼ç©ææ ç¾ 2ï¼åè´§æ ç¾(ç产订å) 3ï¼åè´§æ ç¾(DOå)) |
| | | if(typePrint==2){ //页é¢ï¼åè´§ åè´§æ ç¾è¡¥æ |
| | | element.printType = 2; |
| | | //åè´§æ ç¾ - è®¾å¤ å·¥åº DOå· |
| | | }else if(typePrint==3){ //页é¢ï¼DOå忣 |
| | | element.printType = 3; |
| | | }else{ //页é¢ï¼ æ¶è´§ 忣 æ ç¾è¡¥æ |
| | | element.printType = 1; |
| | | } |
| | | }); |
| | | |
| | | // ä¼ å¤ä¸ª |
| | | addBanmaRecordArr(arrList).then(res => { |
| | | uni.hideLoading(); |
| | | if (res.code == 200) { |
| | | uni.showToast({ |
| | | title: 'æå°æå', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // 带æºåºå· å·¥åº DOçæ è´´ |
| | | import BluePrint from '@/pages/print/bluePrint.js' |
| | | import {addPrintRecord} from '@/api/print.js' |
| | | |
| | | export default { |
| | | methods:{ |
| | | printComp(reprintPram){ |
| | | // æ°ç»åªæä¸ä¸ªå¯¹è±¡ |
| | | this.materlist = this.arrPt[0] |
| | | console.log( this.materlist ) |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | // é对æ¥å£è¿åä¸åçåæ®µåç§°è¿è¡å¤æ |
| | | if(this.materlist.wareMaterialCode == undefined){ |
| | | this.materlist.wareMaterialCode = this.materlist.code || this.materlist.warematerialCode || this.materlist.materialCode ||'' |
| | | } |
| | | if(this.materlist.wareMaterialName == undefined){ |
| | | this.materlist.wareMaterialName = this.materlist.warematerialName || this.materlist.name || this.materlist.materialName || '' |
| | | } |
| | | if(this.materlist.barNo==undefined){ |
| | | this.materlist.barNo = this.materlist.batchNo || '' |
| | | } |
| | | //ç©æåç§°æ¯å¦æ¢è¡ |
| | | let name = this.materlist.wareMaterialName || '' |
| | | let name_1 = name.length > 38 ? name.substr(0, 38) : name |
| | | let name_2 = name.length > 38 ? name.substr(38) : '' |
| | | //ä¾åºåæ¯å¦æ¢è¡ |
| | | let desc = this.materlist.supplier || '' |
| | | let desc_1 = desc.length > 38 ? desc.substr(0, 38) : desc |
| | | let desc_2 = desc.length > 38 ? desc.substr(38) : '' |
| | | // this.warehouse.PurchaseNo |
| | | let ptintContext = [ |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | /* 以ä¸ç©ºæ°æ®ï¼ä¸ºé²æ¢ä¸¢å
æ¶æå°ä¸æ£å¸¸ */ |
| | | {type:'line',x1:3,y1:3,x2:570,y2: 3,width:2}, //ä¸è¾¹çº¿ |
| | | {type:'line',x1:3,y1:3,x2:3,y2: 420,width:2},//左边线 |
| | | {type:'line',x1:3,y1:420,x2:570,y2: 420,width:2}, //æä¸è¾¹çº¿ |
| | | {type:'line',x1:560,y1:3,x2:560,y2:420,width:2}, //å³è¾¹çº¿ |
| | | {type:'text',x:10,y:34,text:`Part:`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:80,y:24,text:`${this.materlist.wareMaterialCode}`,size:4,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:80,x2:565,y2:80,width:2}, |
| | | {type:'text',x:10,y:90,text:`Descript:${name_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:10,y:115,text:`${name_2}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:150,x2:565,y2:150,width:2}, |
| | | {type:'text',x:10,y:170,text:`Vendor:${desc_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:10,y:175,text:`${desc_2}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:210,x2:565,y2:210,width:2}, |
| | | |
| | | {type:'text',x:10,y:225,text:`DO:${this.materlist.deliveryNo || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:260,x2:350,y2:260,width:2}, |
| | | |
| | | {type:'text',x:10,y:275,text:`Qty:${this.materlist.completeQuantity} ${this.materlist.unit == null ? '' : this.materlist.unit}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:310,x2:350,y2:310,width:2}, |
| | | |
| | | {type:'text',x:10,y:325,text:`process:${this.materlist.process}/${this.materlist.equipment}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:360,x2:350,y2:360,width:2}, |
| | | |
| | | {type:'text',x:10,y:380,text:`Batch:${this.materlist.batchNo || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:350,y1:210,x2:350,y2:420,width:2}, |
| | | // {type:'qr',x:380,y:220,text:`PARTS NUMBER: ${this.materlist.wareMaterialCode},SAP: ${this.materlist.sap_Location || ''},LOT NO: ${this.materlist.barNo},QUANTITY: ${this.materlist.quantity}`,width:4,level:1}, |
| | | { type: 'qr', x: 380, y: 220, text: `PARTS NUMBER: ${this.materlist.wareMaterialCode},SAP: ${this.materlist.sap_Location || ''},LOT NO: ${this.materlist.batchNo || ''},ORDER NO: ${this.materlist.orderNo || ''},QUANTITY: ${this.materlist.completeQuantity}`, width: 4, level: 1 }, |
| | | |
| | | // {type:'text',x:405,y:390,text:`${reprint}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | //åè´§æ ç¾ä¸æ¾ç¤ºæ¶é´ ãEditby shaocx,2023-05-11ã |
| | | { type: 'text', x: 355, y: 390, text: `${this.getCurrentDate().date} ${this.getCurrentDate().time}`, size: 1, rotate: 0, bold: 1, underline: false, reverse: false } |
| | | // { type: 'text', x: 355, y: 390, text: ``, size: 2, rotate: 0, bold: 1, underline: false, reverse: false } |
| | | ] |
| | | console.log(ptintContext) |
| | | // addPrintRecord(this.addForm).then(res => { |
| | | BluePrint.print(this.$store,ptintContext).then(()=>{ |
| | | this.printHandle() |
| | | }).catch((err)=>{ |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title:'æå°å¤±è´¥', |
| | | duration: 2000 |
| | | }) |
| | | }) |
| | | }, |
| | | printHandle() { |
| | | let routes = getCurrentPages(); // è·åå½åæå¼è¿ç页é¢è·¯ç±æ°ç» |
| | | let curRoute = routes[routes.length - 1].route //è·åå½å页é¢è·¯ç± |
| | | if (curRoute == 'pages/print/bluetoothConnection') {// è¿æ¥èç失败 è·³é¡µé¢ |
| | | return |
| | | } |
| | | this.arrPt.splice(0, 1) |
| | | if (this.arrPt.length == 0) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: `æå°å®æ`, |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: `æå°æåï¼${this.materlist.wareMaterialCode}` |
| | | }) |
| | | this.timer = setTimeout(() => {// è®¾ç½®å®æ¶å¨çä½ç¨ï¼è¿æ¥èç失败跳页é¢ï¼jsè¿è¡ææ¶æå»¶è¿ï¼é æè¯»åå½å页é¢è·¯ç±é误 |
| | | clearTimeout(this.timer) |
| | | this.printComp() |
| | | // æ·»å æå°è®°å½ï¼åæå°åå¼ï¼äºä¸å¹²æ° |
| | | this.addForm.code = this.materlist.wareMaterialCode; |
| | | this.addForm.name = this.materlist.wareMaterialName; |
| | | this.addForm.batchNo = this.materlist.batchNo; |
| | | console.log(this.addForm) |
| | | //è¿éä¸åè®°å½æå°è®°å½ï¼å 为æäºæé©¬æå° ãEditby shaocx,2023-05-22ã |
| | | /* |
| | | addPrintRecord(this.addForm).then(res => { |
| | | if (res.code == 200) { |
| | | } else { |
| | | uni.hideLoading(); |
| | | // uni.showToast({ |
| | | // icon: 'none', |
| | | // title: 'æå°è®°å½åå¨å¤±è´¥', |
| | | // duration: 2000 |
| | | // }) |
| | | } |
| | | }) |
| | | //*/ |
| | | }, 10000) |
| | | }, |
| | | |
| | | //è·åprint date print time |
| | | getCurrentDate() { |
| | | let date = new Date(); |
| | | let year = date.getFullYear(); //å¹´ |
| | | let month = date.getMonth() + 1; //æ |
| | | month = month >= 10 ? month : '0' + month; |
| | | let day = date.getDate(); //æ¥ |
| | | day = day >= 10 ? day : '0' + day; |
| | | let hour = date.getHours() //æ¶ |
| | | hour = hour >= 10 ? hour : '0' + hour; |
| | | let min = date.getMinutes(); //å |
| | | min = min >= 10 ? min : '0' + min; |
| | | let second = date.getSeconds(); //ç§ |
| | | second = second >= 10 ? second : '0' + second; |
| | | return { |
| | | date: `${day}.${month}.${year}`, |
| | | time: `${hour}:${min}:${second}`, |
| | | formate: `${year}/${month}/${day}` |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // æå°åå¼ åæ£ å
¨æ£ç§»åº ç§»åº æå·¥åºå
¥åº åºåº è¶åº-éç产订å åå·é¿åº¦ 1271007265 |
| | | import BluePrint from '@/pages/print/bluePrint.js' |
| | | import {addPrintRecord} from '@/api/print.js' |
| | | |
| | | export default { |
| | | methods:{ |
| | | // åæ°1 æ¯å¦éå¤æå° åæ°2 æå°DOæ è´´è¿æ¯POæ è´´ |
| | | printComp(reprintPram,typeOrder){ |
| | | let reprint = ''; |
| | | let ptintContext =[]; |
| | | let str_order = '' |
| | | // æ¯å¦éå¤æå° |
| | | if(reprintPram){ |
| | | reprint = 'REPRINT' |
| | | } |
| | | |
| | | // é对æ¥å£è¿åä¸åçåæ®µåç§°è¿è¡å¤æ |
| | | if(this.materlist.wareMaterialCode == undefined){ |
| | | this.materlist.wareMaterialCode = this.materlist.code || this.materlist.warematerialCode || this.materlist.materialCode ||'' |
| | | } |
| | | if(this.materlist.wareMaterialName == undefined){ |
| | | this.materlist.wareMaterialName = this.materlist.warematerialName || this.materlist.name || this.materlist.materialName || '' |
| | | } |
| | | if(this.materlist.barNo==undefined){ |
| | | this.materlist.barNo = this.materlist.batchNo || '' |
| | | } |
| | | if(this.materlist.sap_Location==undefined){ |
| | | this.materlist.sap_Location = this.materlist.saP_StorageLocation || '' |
| | | } |
| | | if(this.materlist.quantityLable== undefined){ |
| | | this.materlist.quantityLable = this.materlist.uncollectedQuantity || this.materlist.quantity ||'' |
| | | } |
| | | //POå äºç»´ç å¸¦ç©æ DO:åå· |
| | | var ewm = ""; |
| | | var ewmX = 390; |
| | | var ewmY = 250; |
| | | var ewmWidth = 6; |
| | | |
| | | // æå°POå è¿æ¯DOå |
| | | if(typeOrder=='DO'){ //忣åéè¦å è¡å· |
| | | str_order = `NO:${this.materlist.deliveryNo || ''}/${this.materlist.lineNumber || ''}` |
| | | ewm = `${this.materlist.deliveryNo || ''}`; |
| | | } |
| | | if(typeOrder=='PO'){ |
| | | ewmX = 380; |
| | | ewmY = 220; |
| | | ewmWidth = 4; |
| | | str_order = `PO:${this.materlist.purchaseNo || ''}/${this.materlist.ebelp || this.materlist.lineNumber || ''}` |
| | | ewm = `PARTS NUMBER: ${this.materlist.wareMaterialCode},SAP: ${this.materlist.sap_Location || ''},LOT NO: ${this.materlist.barNo || ''},QUANTITY: ${this.materlist.quantityLable}`; |
| | | } |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | //ç©æåç§°æ¯å¦æ¢è¡ |
| | | let name = this.materlist.wareMaterialName || '' |
| | | let name_1 = name.length > 38 ? name.substr(0, 38) : name |
| | | //ä¾åºåæ¯å¦æ¢è¡ |
| | | var s1 = "" |
| | | if(this.materlist.supplierName){ |
| | | s1 = this.materlist.supplierNo + this.materlist.supplierName |
| | | } |
| | | let desc = this.materlist.supplier || s1 || '' |
| | | let desc_1 = desc.length > 38 ? desc.substr(0, 38) : desc |
| | | let desc_2 = desc.length > 38 ? desc.substr(38) : '' |
| | | ptintContext = [ |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | /* 以ä¸ç©ºæ°æ®ï¼ä¸ºé²æ¢ä¸¢å
æ¶æå°ä¸æ£å¸¸ */ |
| | | {type:'line',x1:3,y1:3,x2:560,y2: 3,width:2}, //ä¸è¾¹çº¿ |
| | | {type:'line',x1:3,y1:3,x2:3,y2: 420,width:2},//左边线 |
| | | {type:'line',x1:3,y1:420,x2:560,y2: 420,width:2}, //æä¸è¾¹çº¿ |
| | | {type:'line',x1:560,y1:3,x2:560,y2:420,width:2}, //å³è¾¹çº¿ |
| | | {type:'text',x:10,y:34,text:`Part:`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:80,y:24,text:`${this.materlist.wareMaterialCode}`,size:4,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:80,x2:560,y2:80,width:2}, |
| | | {type:'text',x:10,y:90,text:`Descript:${name_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:150,x2:560,y2:150,width:2}, |
| | | {type:'text',x:10,y:170,text:`Vendor:${desc_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:10,y:175,text:`${desc_2}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:210,x2:560,y2:210,width:2}, |
| | | {type:'text',x:10,y:225,text:`${str_order}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:260,x2:350,y2:260,width:2}, |
| | | {type:'text',x:10,y:275,text:`Qty:${this.materlist.quantityLable}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:310,x2:350,y2:310,width:2}, |
| | | {type:'text',x:10,y:325,text:`Batch:${this.materlist.barNo}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:360,x2:350,y2:360,width:2}, |
| | | {type:'text',x:10,y:380,text:`Time:${this.getCurrentDate().date} ${this.getCurrentDate().time}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:350,y1:210,x2:350,y2:420,width:2}, |
| | | {type:'qr',x:ewmX,y:ewmY,text:`${ewm}`,width:ewmWidth,level:1}, |
| | | {type:'text',x:405,y:390,text:`${reprint}`,size:2,rotate:0,bold:1,underline:false,reverse:false} |
| | | ] |
| | | console.log(ptintContext) |
| | | // addPrintRecord(this.addForm).then(res => { |
| | | BluePrint.print(this.$store,ptintContext).then(()=>{ |
| | | let routes = getCurrentPages(); // è·åå½åæå¼è¿ç页é¢è·¯ç±æ°ç» |
| | | let curRoute = routes[routes.length - 1].route //è·åå½å页é¢è·¯ç± |
| | | console.log(curRoute) |
| | | if (curRoute == 'pages/print/bluetoothConnection') {// è¿æ¥èç失败 è·³é¡µé¢ |
| | | return |
| | | } |
| | | uni.showToast({ |
| | | title:'æå°æå', |
| | | duration:2000 |
| | | }) |
| | | this.addForm.code = this.materlist.wareMaterialCode; |
| | | this.addForm.name = this.materlist.wareMaterialName; |
| | | this.addForm.batchNo = this.materlist.batchNo; |
| | | this.addForm.specificationModel = this.materlist.specificationModel; |
| | | }).catch((err)=>{ |
| | | // uni.showToast({ |
| | | // title:'æå°å¤±è´¥', |
| | | // duration: 2000 |
| | | // }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // å¤å¼ è¿ç»æå° |
| | | import BluePrint from '@/pages/print/bluePrint.js' |
| | | import {addPrintRecord} from '@/api/print.js' |
| | | |
| | | export default { |
| | | methods:{ |
| | | printComp(reprintPram){ |
| | | let reprint = '' |
| | | let ptintContext =[]; |
| | | // æ¯å¦éå¤æå° |
| | | if(reprintPram){ |
| | | reprint = 'REPRINT' |
| | | } |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | // é对æ¥å£è¿åä¸åçåæ®µåç§°è¿è¡å¤æ |
| | | if(this.materlist.wareMaterialCode == undefined){ |
| | | this.materlist.wareMaterialCode = this.materlist.code || this.materlist.warematerialCode ||'' |
| | | } |
| | | if(this.materlist.wareMaterialName == undefined){ |
| | | this.materlist.wareMaterialName = this.materlist.warematerialName || this.materlist.name || '' |
| | | } |
| | | if(this.materlist.barNo==undefined){ |
| | | this.materlist.barNo = this.materlist.batchNo || this.materlist.itemBatchNo || '' |
| | | } |
| | | //ç©æåç§°æ¯å¦æ¢è¡ |
| | | let name = this.materlist.wareMaterialName || '' |
| | | let name_1 = name.length > 38 ? name.substr(0, 38) : name |
| | | let name_2 = name.length > 38 ? name.substr(38) : '' |
| | | //ä¾åºåæ¯å¦æ¢è¡ |
| | | let desc = this.materlist.supplier || '' |
| | | let desc_1 = desc.length > 38 ? desc.substr(0, 38) : desc |
| | | let desc_2 = desc.length > 38 ? desc.substr(38) : '' |
| | | // this.warehouse.PurchaseNo |
| | | ptintContext = [ |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | /* 以ä¸ç©ºæ°æ®ï¼ä¸ºé²æ¢ä¸¢å
æ¶æå°ä¸æ£å¸¸ */ |
| | | {type:'line',x1:3,y1:3,x2:560,y2: 3,width:2}, //ä¸è¾¹çº¿ |
| | | {type:'line',x1:3,y1:3,x2:3,y2: 420,width:2},//左边线 |
| | | {type:'line',x1:3,y1:420,x2:560,y2: 420,width:2}, //æä¸è¾¹çº¿ |
| | | {type:'line',x1:560,y1:3,x2:560,y2:420,width:2}, //å³è¾¹çº¿ |
| | | {type:'text',x:10,y:34,text:`Part:`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:80,y:24,text:`${this.materlist.wareMaterialCode}`,size:4,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:80,x2:560,y2:80,width:2}, |
| | | {type:'text',x:10,y:90,text:`Descript:${name_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:10,y:115,text:`${name_2}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:150,x2:560,y2:150,width:2}, |
| | | {type:'text',x:10,y:170,text:`Vendor:${desc_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:10,y:175,text:`${desc_2}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:210,x2:560,y2:210,width:2}, |
| | | |
| | | {type:'text',x:10,y:225,text:`PO:${this.materlist.purchaseNo || ''}/${this.materlist.ebelp || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:260,x2:350,y2:260,width:2}, |
| | | |
| | | {type:'text',x:10,y:275,text:`Qty:${this.ermNum} ${this.materlist.unit == null ? '' : this.materlist.unit}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:310,x2:350,y2:310,width:2}, |
| | | |
| | | {type:'text',x:10,y:325,text:`Batch:${this.materlist.barNo}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | // {type:'text',x:155,y:323,text:``,size:3,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:360,x2:350,y2:360,width:2}, |
| | | |
| | | {type:'text',x:10,y:380,text:`Time:${this.getCurrentDate().date} ${this.getCurrentDate().time}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | // {type:'text',x:155,y:378,text:`${this.getCurrentDate().time}`,size:3,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:350,y1:210,x2:350,y2:420,width:2}, |
| | | {type:'qr',x:380,y:220,text:`PARTS NUMBER: ${this.materlist.wareMaterialCode},SAP: ${this.materlist.sap_Location || ''},LOT NO: ${this.materlist.barNo},QUANTITY: ${this.ermNum}`,width:4,level:1}, |
| | | {type:'text',x:405,y:390,text:`${reprint}`,size:2,rotate:0,bold:1,underline:false,reverse:false} |
| | | ] |
| | | console.log(ptintContext) |
| | | // addPrintRecord(this.addForm).then(res => { |
| | | BluePrint.print(this.$store,ptintContext).then(()=>{ |
| | | let routes = getCurrentPages(); // è·åå½åæå¼è¿ç页é¢è·¯ç±æ°ç» |
| | | let curRoute = routes[routes.length - 1].route //è·åå½å页é¢è·¯ç± |
| | | if (curRoute == 'pages/print/bluetoothConnection') {// è¿æ¥èç失败 è·³é¡µé¢ |
| | | return |
| | | } |
| | | this.contLabel-- |
| | | if (this.contLabel <= 0) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: `æå°å®æ`, |
| | | duration: 2000 |
| | | }) |
| | | this.contLabel = 1 |
| | | return |
| | | } |
| | | |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: `æå°ä¸ï¼å©ä½ï¼${this.contLabel}` |
| | | }) |
| | | |
| | | this.timer = setTimeout(() => { //é´é5ç§ åå°æå°ä¸¢å¤± |
| | | clearTimeout(this.timer) |
| | | this.timer = null |
| | | this.printComp(reprintPram) |
| | | // æ·»å æå°è®°å½ |
| | | this.addForm.code = this.materlist.wareMaterialCode; |
| | | this.addForm.name = this.materlist.name; |
| | | this.addForm.batchNo = this.materlist.barNo ; |
| | | this.addForm.specificationModel = this.materlist.specificationModel; |
| | | //è¿éä¸åè®°å½æå°è®°å½ï¼å 为æäºæé©¬æå° ãEditby shaocx,2023-05-22ã |
| | | /* |
| | | addPrintRecord(this.addForm).then(res => { |
| | | console.log(res); |
| | | }) |
| | | //*/ |
| | | |
| | | }, 10000) |
| | | |
| | | }).catch((err)=>{ |
| | | uni.showToast({ |
| | | title:'æå°å¤±è´¥', |
| | | duration: 2000 |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // ç产åºåè´§æ ç¾ è¶åºç产订åæå° |
| | | import BluePrint from '@/pages/print/bluePrint.js' |
| | | import {addPrintRecord} from '@/api/print.js' |
| | | |
| | | export default { |
| | | methods:{ |
| | | printShengChanComp(reprintPram){ |
| | | // æ°ç»åªæä¸ä¸ªå¯¹è±¡ |
| | | this.materlist = this.arrPt[0] |
| | | |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "æ£å¨è¿æ¥..." |
| | | }) |
| | | |
| | | if(this.materlist.code==undefined){ |
| | | this.materlist.code = this.materlist.wareMaterialCode || "" |
| | | } |
| | | if(this.materlist.name == undefined){ |
| | | this.materlist.name = this.materlist.wareMaterialName || "" |
| | | } |
| | | //ç©æåç§°æ¯å¦æ¢è¡ |
| | | let name = this.materlist.name || ''; |
| | | let name_1 = name.length > 38 ? name.substr(0, 38) : name; |
| | | |
| | | let ptintContext = [ |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | {type:'text',x:0,y:0,text:'',size:2,rotate:0,bold:0,underline:false,reverse:false}, |
| | | /* 以ä¸ç©ºæ°æ®ï¼ä¸ºé²æ¢ä¸¢å
æ¶æå°ä¸æ£å¸¸ */ |
| | | {type:'line',x1:3,y1:3,x2:560,y2: 3,width:2}, //ä¸è¾¹çº¿ |
| | | {type:'line',x1:3,y1:3,x2:3,y2: 420,width:2},//左边线 |
| | | {type:'line',x1:3,y1:420,x2:560,y2: 420,width:2}, //æä¸è¾¹çº¿ |
| | | {type:'line',x1:560,y1:3,x2:560,y2:420,width:2}, //å³è¾¹çº¿ |
| | | {type:'text',x:10,y:34,text:`Part:`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'text',x:80,y:24,text:`${this.materlist.code}`,size:4,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:80,x2:560,y2:80,width:2}, |
| | | {type:'text',x:10,y:90,text:`Descript:${name_1}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:150,x2:560,y2:150,width:2}, |
| | | {type:'text',x:10,y:170,text:`Collective Order:${this.materlist.subOrderNo || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:3,y1:210,x2:560,y2:210,width:2}, |
| | | |
| | | {type:'text',x:10,y:225,text:`BOM No.:${this.materlist.bomNumber || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:260,x2:350,y2:260,width:2}, |
| | | |
| | | {type:'text',x:10,y:275,text:`Qty:${this.materlist.quantity} ${this.materlist.unit == null ? '' : this.materlist.unit}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:310,x2:350,y2:310,width:2}, |
| | | |
| | | {type:'text',x:10,y:325,text:`Batch:${this.materlist.batchNo || ''}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | |
| | | {type:'line',x1:3,y1:360,x2:350,y2:360,width:2}, |
| | | |
| | | {type:'text',x:10,y:380,text:`Stage:${this.materlist.process} Machine:${this.materlist.equipment}`,size:2,rotate:0,bold:1,underline:false,reverse:false}, |
| | | {type:'line',x1:350,y1:210,x2:350,y2:420,width:2}, |
| | | { type: 'qr', x: 390, y: 240, text: `${this.materlist.subOrderNo || ''}`, width: 6, level: 1 }, |
| | | { type: 'text', x: 380, y: 388, text: `${this.getCurrentDate().date} ${this.getCurrentDate().time}`, size: 1, rotate: 0, bold: 1, underline: false, reverse: false } |
| | | ] |
| | | console.log(ptintContext) |
| | | // addPrintRecord(this.addForm).then(res => { |
| | | BluePrint.print(this.$store,ptintContext).then(()=>{ |
| | | this.printHandle() |
| | | }).catch((err)=>{ |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title:'æå°å¤±è´¥', |
| | | duration: 2000 |
| | | }) |
| | | }) |
| | | }, |
| | | printHandle() { |
| | | let routes = getCurrentPages(); // è·åå½åæå¼è¿ç页é¢è·¯ç±æ°ç» |
| | | let curRoute = routes[routes.length - 1].route //è·åå½å页é¢è·¯ç± |
| | | if (curRoute == 'pages/print/bluetoothConnection') {// è¿æ¥èç失败 è·³é¡µé¢ |
| | | return |
| | | } |
| | | this.arrPt.splice(0, 1) |
| | | if (this.arrPt.length == 0) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: `æå°å®æ`, |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: `æå°æåï¼${this.materlist.code}` |
| | | }) |
| | | this.timer = setTimeout(() => {// è®¾ç½®å®æ¶å¨çä½ç¨ï¼è¿æ¥èç失败跳页é¢ï¼jsè¿è¡ææ¶æå»¶è¿ï¼é æè¯»åå½å页é¢è·¯ç±é误 |
| | | this.timer = null |
| | | clearTimeout(this.timer) |
| | | uni.hideLoading(); |
| | | this.printShengChanComp() |
| | | }, 10000) |
| | | }, |
| | | |
| | | //è·åprint date print time |
| | | getCurrentDate() { |
| | | let date = new Date(); |
| | | let year = date.getFullYear(); //å¹´ |
| | | let month = date.getMonth() + 1; //æ |
| | | month = month >= 10 ? month : '0' + month; |
| | | let day = date.getDate(); //æ¥ |
| | | day = day >= 10 ? day : '0' + day; |
| | | let hour = date.getHours() //æ¶ |
| | | hour = hour >= 10 ? hour : '0' + hour; |
| | | let min = date.getMinutes(); //å |
| | | min = min >= 10 ? min : '0' + min; |
| | | let second = date.getSeconds(); //ç§ |
| | | second = second >= 10 ? second : '0' + second; |
| | | return { |
| | | date: `${day}.${month}.${year}`, |
| | | time: `${hour}:${min}:${second}`, |
| | | formate: `${year}/${month}/${day}` |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import printerUtil from '@/components/print/printerutil.js' |
| | | const PrinterJobs = require('@/components/print/printerjobs.js') |
| | | import { |
| | | getDate |
| | | } from '@/utils/dateTime.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | list: [], |
| | | deviceId: '', |
| | | serviceId: '', |
| | | characteristics: [], |
| | | characteristicId: '', |
| | | deviceslist: [] |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.list = [] |
| | | this.deviceslist = [] |
| | | |
| | | }, |
| | | methods: { |
| | | //åå§åèçè®¾å¤ |
| | | openBluetoothAdapter() { |
| | | let _this = this |
| | | uni.openBluetoothAdapter({ |
| | | success: (res) => { //å·²æå¼ |
| | | uni.getBluetoothAdapterState({ //èççå¹é
ç¶æ |
| | | success: (res1) => { |
| | | console.log(res1, 'æ¬æºè®¾å¤çèçå·²æå¼') |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | |
| | | _this.startBluetoothDeviceDiscovery() |
| | | uni.setStorageSync('blueShow', true) |
| | | }, |
| | | fail(error) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼err' |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | fail: err => { //æªæå¼ |
| | | uni.setStorageSync('blueShow', false) |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'æ¥çææºèçæ¯å¦æå¼' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // å¼å§æç´¢èçè®¾å¤ |
| | | startBluetoothDeviceDiscovery() { |
| | | uni.startBluetoothDevicesDiscovery({ |
| | | success: (res) => { |
| | | // åç°å¤å´è®¾å¤ |
| | | uni.showLoading({ |
| | | title: 'å è½½ä¸', |
| | | mask: true |
| | | }); |
| | | this.onBluetoothDeviceFound() |
| | | }, |
| | | fail: err => { |
| | | console.log(err, 'é误信æ¯') |
| | | } |
| | | }) |
| | | }, |
| | | // åç°å¤å´è®¾å¤ |
| | | onBluetoothDeviceFound() { |
| | | uni.onBluetoothDeviceFound((res) => { |
| | | this.deviceslist.length > 0 ? uni.hideLoading() : '' |
| | | if (this.deviceslist.indexOf(res.devices[0].deviceId) == -1) { |
| | | this.deviceslist.push(res.devices[0].deviceId) |
| | | if (res.devices[0].name != "") { |
| | | uni.hideLoading(); |
| | | this.list.push({ |
| | | name: res.devices[0].name, |
| | | deviceId: res.devices[0].deviceId |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | //è·åå¨èçæ¨¡åçææé´ææå·²åç°çèç设å¤ãå
æ¬å·²ç»åæ¬æºå¤äºè¿æ¥ç¶æç设å¤ã |
| | | getBluetoothDevices() { |
| | | console.log("è·åèç设å¤"); |
| | | uni.getBluetoothDevices({ |
| | | success: res => { |
| | | console.log('è·åèçè®¾å¤æå:'); |
| | | console.log(res.devices); |
| | | } |
| | | }); |
| | | }, |
| | | //éæ©è®¾å¤è¿æ¥å§deviceIdä¼ è¿æ¥ |
| | | createBLEConnection(deviceId) { |
| | | //dataéé¢å»ºç«ä¸ä¸ªdeviceIdï¼åå¨èµ·æ¥ |
| | | let _this = this |
| | | uni.showLoading({ |
| | | title: 'è¿æ¥èçä¸...', |
| | | mask: true |
| | | }); |
| | | this.stopBluetoothDevicesDiscovery() |
| | | |
| | | this.deviceId = deviceId, |
| | | //è¿æ¥èç |
| | | uni.createBLEConnection({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success(res) { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥æå' |
| | | }); |
| | | uni.setStorageSync("deviceId", deviceId) //æå·²ç»è¿æ¥çèç设å¤ä¿¡æ¯æ¾å
¥ç¼å |
| | | |
| | | setTimeout(() => { |
| | | _this.getBLEDeviceServices(deviceId) |
| | | }, 1000) |
| | | |
| | | }, |
| | | fail(res) { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: 'èçè¿æ¥å¤±è´¥' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // 忢æå¯»èçè®¾å¤ |
| | | stopBluetoothDevicesDiscovery() { |
| | | uni.stopBluetoothDevicesDiscovery({ |
| | | success: e => { |
| | | this.loading = false |
| | | console.log('忢æç´¢èç设å¤:' + e.errMsg); |
| | | }, |
| | | fail: e => { |
| | | console.log('忢æç´¢èç设å¤å¤±è´¥ï¼é误ç ï¼' + e.errCode); |
| | | } |
| | | }); |
| | | }, |
| | | //è·åèçç¹å¾ |
| | | getBLEDeviceCharacteristics(deviceId, serviceId) { |
| | | console.log("è¿å
¥ç¹å¾"); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceCharacteristics({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: serviceId, |
| | | success: (res) => { |
| | | console.log(res, 'ç¹å¾getBLEDeviceCharacteristics') |
| | | this.characteristics = res.characteristics |
| | | |
| | | res.characteristics.forEach((item) => { |
| | | if (item.uuid.indexOf("FF02") != -1) { |
| | | this.characteristicId = item.uuid |
| | | uni.setStorageSync("characteristicId", item |
| | | .uuid) //æå·²ç»è¿æ¥çèçè®¾å¤æ è¯æ¾å
¥ç¼å |
| | | uni.setStorageSync("serviceId", |
| | | serviceId) //æå·²ç»è¿æ¥çèç设å¤IDæ¾å
¥ç¼å |
| | | //console.log('characteristicId:', item.uuid) |
| | | //å©ç¨ä¼ åçå½¢å¿ä¼ ç»ä¸é¢çnotifyï¼è¿éçuuid妿é½éè¦ç¨å°ï¼å°±ä¸ç¨å夿äºï¼å»ºè®®ä½¿ç¨setTimeoutè¿è¡é´éæ§çè°ç¨æ¤æ¹æ³ |
| | | // this.notifyBLECharacteristicValueChange(item.uuid) |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | this.BottomShow = false |
| | | this.DrawerModalL = false |
| | | }, 1000) |
| | | } |
| | | }) |
| | | }, |
| | | fail: (res) => { |
| | | console.log(res) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | // å¯ç¨ notify åè½ |
| | | notifyBLECharacteristicValueChange(characteristicId) { |
| | | let _this = this |
| | | console.log('deviceId' + _this.deviceId) |
| | | console.log('serviceId' + _this.serviceId) |
| | | console.log('characteristicId' + characteristicId) |
| | | // _this.fanhui() |
| | | uni.notifyBLECharacteristicValueChange({ |
| | | state: true, // å¯ç¨ notify åè½ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: this.deviceId, |
| | | // è¿éç serviceId éè¦å¨ getBLEDeviceServices æ¥å£ä¸è·å |
| | | serviceId: this.serviceId, |
| | | // è¿éç characteristicId éè¦å¨ getBLEDeviceCharacteristics æ¥å£ä¸è·å |
| | | characteristicId: characteristicId, |
| | | success: (res) => { |
| | | if (this.blueFlag == true) { |
| | | this.writeBLECharacteristicValue() |
| | | } else { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | } |
| | | |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | // _this.fanhui() |
| | | this.print = "æå°" |
| | | this.BottomShow = false |
| | | |
| | | console.log('notifyBLECharacteristicValueChange success', res.errMsg) |
| | | }, |
| | | fail: (res) => { |
| | | uni.showLoading({ |
| | | title: 'èçæå¡è·åæåï¼è¯·æå°', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.hideLoading(); |
| | | }, 1000) |
| | | _this.print = "æå°" |
| | | _this.BottomShow = false |
| | | |
| | | // _this.fanhui() |
| | | console.log('notifyBLECharacteristicValueChange fail', res.errMsg) |
| | | } |
| | | }) |
| | | }, |
| | | //è·åèççæææå¡ |
| | | getBLEDeviceServices(deviceId) { |
| | | uni.showLoading({ |
| | | title: 'æ£å¨è·åèçæå¡...', |
| | | mask: true, |
| | | }); |
| | | setTimeout(() => { |
| | | uni.getBLEDeviceServices({ |
| | | // è¿éç deviceId éè¦å·²ç»éè¿ createBLEConnection ä¸å¯¹åºè®¾å¤å»ºç«é¾æ¥ |
| | | deviceId: deviceId, |
| | | success: (res) => { |
| | | uni.showLoading({ |
| | | title: 'è·åä¸ï¼è¯·ç¨å...', |
| | | mask: true, |
| | | }); |
| | | res.services.forEach((item) => { |
| | | if (item.uuid.indexOf("FF00") != -1) { |
| | | this.serviceId = item.uuid; |
| | | //è·åç¹å¾ |
| | | this.getBLEDeviceCharacteristics(deviceId, item.uuid) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | //åå
¥èç |
| | | writeBLECharacteristicValue() { |
| | | this.printflag = false |
| | | let deviceId = uni.getStorageSync('deviceId') |
| | | let serviceId = uni.getStorageSync('serviceId') |
| | | let characteristicId = uni.getStorageSync('characteristicId') |
| | | const printerJobs = new PrinterJobs(); |
| | | console.log(this.arr) |
| | | this.arr.forEach(item => { |
| | | if(item.business_order_type==null){ |
| | | printerJobs |
| | | .label_set_page(576, 400) |
| | | //è¾¹æ¡ |
| | | .drawLine(1, 0, 0, 570, 0) |
| | | .drawLine(1, 0, 0, 0, 360) |
| | | .drawLine(1, 570, 0, 570, 360) |
| | | .drawLine(1, 0, 360, 570, 360) |
| | | |
| | | //å
鍿¨ªçº¿ |
| | | .drawLine(1, 0, 94, 570, 94) //第ä¸è¡ |
| | | .drawLine(1, 0, 160, 570, 160) //第äºè¡ |
| | | .drawLine(1, 0, 227, 570, 227) //第ä¸è¡ |
| | | .drawLine(1, 0, 293, 400, 293) //第åè¡ |
| | | |
| | | .drawLine(1, 120, 94, 120, 360) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | .drawLine(1, 400, 227, 400, 360) // ç¬¬äºæ ¹ç«çº¿ |
| | | // 1 åå§ æ¯å¦ç²ä½\åä½å¤§å°\æ¯å¦æè½¬è§åº¦\èµ·å§æ¨ªåæ \èµ·å§çºµåæ \å符串 |
| | | |
| | | .drawText(170, 20, "éåºé山工䏿é责任å
¬å¸", 26, 0, 1, false, false) |
| | | .drawText(240, 62, 'ç©ææ è¯ç¾', 26, 0, 1, false, false) |
| | | |
| | | // 3 |
| | | .drawText(10, 120, "ç©æç¼å·", 24, 0, 0, false, false) |
| | | .drawText(130, 120, item.material_code, 24, 0, 0, false, false) |
| | | |
| | | // 4 |
| | | .drawText(10, 185, "ç©æåç§°", 24, 0, 0, false, false) |
| | | .drawText(130, 185, item.material_name, 24, 0, 0, false, false) |
| | | |
| | | // 5 |
| | | .drawText(10, 248, "ç©ææ¹æ¬¡", 24, 0, 0, false, false) |
| | | .drawText(130, 248, item.lots_sn, 24, 0, 0, false, false) |
| | | |
| | | // 7 |
| | | .drawText(10, 312, "æå°æ¶é´", 24, 0, 0, false, false) |
| | | .drawText(130, 312, item.material_actual_num, 24, 0, 0, false, false) |
| | | // äºç»´ç |
| | | .drawQrCode(438, 232, item.material_code, 0, 4, 1) |
| | | .drawText(423, 340, item.material_name, 1, 0, 0, false, false) |
| | | .label_print(0, 1); |
| | | }else{ |
| | | printerJobs |
| | | .label_set_page(576, 400) |
| | | //è¾¹æ¡ |
| | | .drawLine(1, 0, 0, 570, 0) |
| | | .drawLine(1, 0, 0, 0, 360) |
| | | .drawLine(1, 570, 0, 570, 360) |
| | | .drawLine(1, 0, 360, 570, 360) |
| | | |
| | | //å
鍿¨ªçº¿ |
| | | .drawLine(1, 0, 52, 570, 52) //第ä¸è¡ |
| | | .drawLine(1, 0, 104, 570, 104) //第äºè¡ |
| | | .drawLine(1, 0, 156, 570, 156) //第ä¸è¡ |
| | | .drawLine(1, 0, 208, 400, 208) //第åè¡ |
| | | .drawLine(1, 0, 260, 400, 260) //第äºè¡ |
| | | .drawLine(1, 0, 312, 400, 312) //第å
è¡ |
| | | |
| | | .drawLine(1, 120, 0, 120, 360) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | .drawLine(1, 220, 260, 220, 312) // ç¬¬äºæ ¹ç«çº¿ |
| | | .drawLine(1, 300, 260, 300, 312) // ç¬¬ä¸æ ¹ç«çº¿ |
| | | |
| | | .drawLine(1, 400, 156, 400, 312,) // ç¬¬åæ ¹ç«çº¿ |
| | | // 1 åå§ æ¯å¦ç²ä½\åä½å¤§å°\æ¯å¦æè½¬è§åº¦\èµ·å§æ¨ªåæ \èµ·å§çºµåæ \å符串 |
| | | |
| | | .drawText(10, 20, "ç©æç¼å·", 24, 0, 0, false, false) |
| | | .drawText(130, 20, item.material_code, 24, 0, 0, false, false) |
| | | |
| | | // 2 |
| | | .drawText(10, 72, "ç©æåç§°", 24, 0, 0, false, false) |
| | | .drawText(130, 72, item.material_name, 24, 0, 0, false, false) |
| | | |
| | | // 3 |
| | | .drawText(10, 124, "ç©ææ¹æ¬¡", 24, 0, 0, false, false) |
| | | .drawText(130, 124, item.lots_sn, 24, 0, 0, false, false) |
| | | |
| | | // 4 |
| | | .drawText(10, 176, "åæ®å·", 24, 0, 0, false, false) |
| | | .drawText(130, 176, item.business_order_no, 24, 0, 0, false, false) |
| | | |
| | | // 5 |
| | | .drawText(10, 225, "åæ®ç±»å", 24, 0, 0, false, false) |
| | | .drawText(130, 225, item.business_order_type, 24, 0, 0, false, false) |
| | | |
| | | // // 5-1 |
| | | // .drawText(230, 225, "å·¥åº", 24, 0, 0, false, false) |
| | | // .drawText(310, 225, item.cellNo, 24, 0, 0, false, false) |
| | | |
| | | // 6 |
| | | .drawText(10, 280, "忣å", 24, 0, 0, false, false) |
| | | .drawText(130, 280, item.material_original_num, 24, 0, 0, false, false) |
| | | |
| | | // 6-1 |
| | | .drawText(230, 280, "忣å", 24, 0, 0, false, false) |
| | | .drawText(340, 280, item.material_actual_num, 24, 0, 0, false, false) |
| | | |
| | | // 7 |
| | | .drawText(10, 332, "忣æ°é", 24, 0, 0, false, false) |
| | | .drawText(130, 332, item.cTime, 24, 0, 0, false, false) |
| | | .drawText(440, 332, item.material_require_num, 24, 0, 0, false, false) |
| | | |
| | | // äºç»´ç |
| | | .drawQrCode(426, 170, item.material_code, 0, 6, 1) |
| | | .drawText(434, 310, item.material_name, 1, 0, 0, false, false) |
| | | .label_print(0, 1); |
| | | } |
| | | |
| | | }) |
| | | let buffer = printerJobs.buffer(); |
| | | // console.log('ArrayBuffer', 'length: ' + buffer.byteLength, ' hex: ' + ab2hex(buffer)); |
| | | // 1.å¹¶è¡è°ç¨å¤æ¬¡ä¼åå¨å失败çå¯è½æ§ |
| | | // 2.å»ºè®®æ¯æ¬¡åå
¥ä¸è¶
è¿20åè |
| | | // åå
å¤çï¼å»¶æ¶è°ç¨ |
| | | const maxChunk = 18; |
| | | const delay =20; |
| | | for (let i = 0, j = 0, length = buffer.byteLength; i < length; i += maxChunk, j++) { |
| | | let subPackage = buffer.slice(i, i + maxChunk <= length ? (i + maxChunk) : length); |
| | | // setTimeout(this._writeBLECharacteristicValue, j * delay, subPackage); |
| | | setTimeout(() => { |
| | | this._writeBLECharacteristicValue(deviceId, serviceId, characteristicId, subPackage) |
| | | }, j *delay); |
| | | } |
| | | |
| | | }, |
| | | _writeBLECharacteristicValue(deviceId, serviceId, characteristicId, buffer) { |
| | | uni.writeBLECharacteristicValue({ |
| | | deviceId: deviceId, |
| | | serviceId: serviceId, |
| | | characteristicId: characteristicId, |
| | | value: buffer, |
| | | success(res) { |
| | | console.log('writeBLECharacteristicValue success', res.errMsg) |
| | | }, |
| | | fail(res) { |
| | | console.log(JSON.stringify(res)) |
| | | console.log(JSON.stringify(buffer)) |
| | | uni.getStorageSync('failerr','try') |
| | | } |
| | | }) |
| | | }, |
| | | //é¿æäºä»¶ |
| | | longpress(item, index) { |
| | | let _this = this |
| | | if (uni.getStorageSync('deviceId')) { |
| | | uni.showToast({ |
| | | title: 'èçå·²è¿æ¥ï¼', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦è¿æ¥èç:' + item.name, |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | // _this.stopBluetoothDevicesDiscovery() |
| | | uni.setStorageSync('itemblue', item.name) |
| | | this.itemblue = item.name |
| | | _this.createBLEConnection(item.deviceId) |
| | | |
| | | } else if (res.cancel) { |
| | | uni.showToast({ |
| | | title: 'å·²åæ¶è¿æ¥', |
| | | duration: 2000, |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | // ç¹å»æå¼èçè¿æ¥ |
| | | tomy() { |
| | | var _this = this |
| | | |
| | | uni.closeBluetoothAdapter({ |
| | | success(res) { |
| | | uni.removeStorageSync('deviceId') |
| | | uni.removeStorageSync("serviceId"); |
| | | uni.removeStorageSync("characteristicId"); |
| | | // _this.openBluetoothAdapter() |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | //è¿å |
| | | fanhui() { |
| | | uni.navigateTo({ |
| | | url: './printing' |
| | | }) |
| | | }, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const QryCallMaterial = { |
| | | "code": 0, |
| | | "msg": "æ§è¡æå", |
| | | "data": [{ |
| | | "time": "12:00", //产线ç¼å· |
| | | "station_code": "OP15", //å·¥ä½ç¼å· |
| | | "call_status": "æªååº" // å¼å«ç¶æ(1.æªååºã2.å·²ååºã3.已宿) |
| | | }, |
| | | { |
| | | "time": "12:12", //产线ç¼å· |
| | | "station_code": "OP001", //å·¥ä½ç¼å· |
| | | "call_status": "å·²ååº" // å¼å«ç¶æ(1.æªååºã2.å·²ååºã3.已宿) |
| | | } |
| | | ] |
| | | } |
| | | const substitution = { |
| | | "code": 0, |
| | | "msg": "æ§è¡æå", |
| | | "data": [{ |
| | | "wo": "wo0817002", //å¾
åºåºå·¥åå· |
| | | "stockOutMaterial": [ //å¾
åºåºç©æ |
| | | { |
| | | "containerInstanceDetailId": "7db4f2c4-f539-586e-b733-39fe64c3b828", //åºåºç©æ(å³å¾
åå»åºåä¸èæçå
·ä¸çç©æ) |
| | | "material_code": "N001", //ç©æç¼ç |
| | | "material_name": "æµè¯1", //ç©æåç§° |
| | | "lots_sn": "LOTSN20210817003", //æ¹æ¬¡æ¡ç |
| | | "wo_require_num": 999, //å·¥åéæ±æ° (å·¥åéæ±ç©ææ°é) |
| | | "no_online_num": 999, //æªä¸çº¿æ° |
| | | "stockOut_num": 25, //å½ååºåæ° |
| | | "edit":false |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "wo": "wo0817003", |
| | | "stockOutMaterial": [{ |
| | | "containerInstanceDetailId": "fec28091-1478-e691-0252-39fe64c3b829", |
| | | "material_code": "N002", |
| | | "material_name": "æµè¯2", |
| | | "lots_sn": "LOTSN20210817004", |
| | | "wo_require_num": 999, |
| | | "no_online_num": 999, |
| | | "stockOut_num": 14, |
| | | "edit":false |
| | | }, |
| | | { |
| | | "containerInstanceDetailId": "54cb0507-4003-b5bc-a0f0-39fe64dbb485", |
| | | "material_code": "N002", |
| | | "material_name": "æµè¯2", |
| | | "lots_sn": "LOTSN20210817004", |
| | | "wo_require_num": 999, |
| | | "no_online_num": 999, |
| | | "stockOut_num": 14, |
| | | "edit":false |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | module.exports = { |
| | | QryCallMaterial, |
| | | substitution |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | const QryNoCleanStockOutWO = { |
| | | "code": 0, |
| | | "msg": "æ§è¡æå", |
| | | "data": [{ |
| | | "wo": "wo0817002", //å¾
åºåºå·¥åå· |
| | | "stockOutMaterial": [ //å¾
åºåºç©æ |
| | | { |
| | | "containerInstanceDetailId": "7db4f2c4-f539-586e-b733-39fe64c3b828", //åºåºç©æ(å³å¾
åå»åºåä¸èæçå
·ä¸çç©æ) |
| | | "material_code": "N001", //ç©æç¼ç |
| | | "material_name": "æµè¯1", //ç©æåç§° |
| | | "lots_sn": "LOTSN20210817003", //æ¹æ¬¡æ¡ç |
| | | "wo_require_num": 999, //å·¥åéæ±æ° (å·¥åéæ±ç©ææ°é) |
| | | "no_online_num": 999, //æªä¸çº¿æ° |
| | | "stockOut_num": 25 //å½ååºåæ° |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | "wo": "wo0817003", |
| | | "stockOutMaterial": [{ |
| | | "containerInstanceDetailId": "fec28091-1478-e691-0252-39fe64c3b829", |
| | | "material_code": "N002", |
| | | "material_name": "æµè¯2", |
| | | "lots_sn": "LOTSN20210817004", |
| | | "wo_require_num": 999, |
| | | "no_online_num": 999, |
| | | "stockOut_num": 14 |
| | | }, |
| | | { |
| | | "containerInstanceDetailId": "54cb0507-4003-b5bc-a0f0-39fe64dbb485", |
| | | "material_code": "N002", |
| | | "material_name": "æµè¯2", |
| | | "lots_sn": "LOTSN20210817004", |
| | | "wo_require_num": 999, |
| | | "no_online_num": 999, |
| | | "stockOut_num": 14 |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | } |
| | | const NoCleanStockOut = { |
| | | "code": 0, |
| | | "msg": "åºåºæå...", |
| | | "data": null |
| | | } |
| | | module.exports = { |
| | | QryNoCleanStockOutWO, |
| | | NoCleanStockOut |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name": "SPD_PrintSDK_Uniapp", |
| | | "id": "PrintSDK", |
| | | "version": "2.1.0", |
| | | "description": "æå¿
ææå°æºæä»¶2.1", |
| | | "_dp_type":"nativeplugin", |
| | | "_dp_nativeplugin":{ |
| | | "android": { |
| | | "plugins": [ |
| | | { |
| | | "type": "module", |
| | | "name": "PrintSDK", |
| | | "class": "com.spd.print.PrintModule" |
| | | } |
| | | ], |
| | | "hooksClass": "com.spd.print.PrintModule_AppProxy", |
| | | "integrateType": "aar", |
| | | "dependencies": [ |
| | | |
| | | ], |
| | | "compileOptions": { |
| | | "sourceCompatibility": "1.8", |
| | | "targetCompatibility": "1.8" |
| | | }, |
| | | "abis": [ |
| | | "armeabi-v7a" |
| | | |
| | | ], |
| | | "minSdkVersion": "16", |
| | | "useAndroidX": false, |
| | | "permissions": [ |
| | | ], |
| | | "parameters": { |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name": "iWare_RawMaterialWarehouse_Pda", |
| | | "lockfileVersion": 2, |
| | | "requires": true, |
| | | "packages": { |
| | | "": { |
| | | "devDependencies": { |
| | | "qs": "^6.11.2", |
| | | "vuex": "^4.0.2" |
| | | } |
| | | }, |
| | | "node_modules/@vue/devtools-api": { |
| | | "version": "6.6.3", |
| | | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", |
| | | "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/call-bind": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", |
| | | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "function-bind": "^1.1.1", |
| | | "get-intrinsic": "^1.0.2" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/function-bind": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
| | | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/get-intrinsic": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", |
| | | "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "function-bind": "^1.1.1", |
| | | "has": "^1.0.3", |
| | | "has-proto": "^1.0.1", |
| | | "has-symbols": "^1.0.3" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/has": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
| | | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "function-bind": "^1.1.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 0.4.0" |
| | | } |
| | | }, |
| | | "node_modules/has-proto": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", |
| | | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">= 0.4" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/has-symbols": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", |
| | | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">= 0.4" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/object-inspect": { |
| | | "version": "1.12.3", |
| | | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", |
| | | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", |
| | | "dev": true, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/qs": { |
| | | "version": "6.11.2", |
| | | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", |
| | | "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "side-channel": "^1.0.4" |
| | | }, |
| | | "engines": { |
| | | "node": ">=0.6" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/side-channel": { |
| | | "version": "1.0.4", |
| | | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", |
| | | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "call-bind": "^1.0.0", |
| | | "get-intrinsic": "^1.0.2", |
| | | "object-inspect": "^1.9.0" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/vuex": { |
| | | "version": "4.1.0", |
| | | "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", |
| | | "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", |
| | | "dev": true, |
| | | "dependencies": { |
| | | "@vue/devtools-api": "^6.0.0-beta.11" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": "^3.2.0" |
| | | } |
| | | } |
| | | }, |
| | | "dependencies": { |
| | | "@vue/devtools-api": { |
| | | "version": "6.6.3", |
| | | "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", |
| | | "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==", |
| | | "dev": true |
| | | }, |
| | | "call-bind": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", |
| | | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", |
| | | "dev": true, |
| | | "requires": { |
| | | "function-bind": "^1.1.1", |
| | | "get-intrinsic": "^1.0.2" |
| | | } |
| | | }, |
| | | "function-bind": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
| | | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", |
| | | "dev": true |
| | | }, |
| | | "get-intrinsic": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", |
| | | "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", |
| | | "dev": true, |
| | | "requires": { |
| | | "function-bind": "^1.1.1", |
| | | "has": "^1.0.3", |
| | | "has-proto": "^1.0.1", |
| | | "has-symbols": "^1.0.3" |
| | | } |
| | | }, |
| | | "has": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", |
| | | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", |
| | | "dev": true, |
| | | "requires": { |
| | | "function-bind": "^1.1.1" |
| | | } |
| | | }, |
| | | "has-proto": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", |
| | | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", |
| | | "dev": true |
| | | }, |
| | | "has-symbols": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", |
| | | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", |
| | | "dev": true |
| | | }, |
| | | "object-inspect": { |
| | | "version": "1.12.3", |
| | | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", |
| | | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", |
| | | "dev": true |
| | | }, |
| | | "qs": { |
| | | "version": "6.11.2", |
| | | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", |
| | | "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", |
| | | "dev": true, |
| | | "requires": { |
| | | "side-channel": "^1.0.4" |
| | | } |
| | | }, |
| | | "side-channel": { |
| | | "version": "1.0.4", |
| | | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", |
| | | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", |
| | | "dev": true, |
| | | "requires": { |
| | | "call-bind": "^1.0.0", |
| | | "get-intrinsic": "^1.0.2", |
| | | "object-inspect": "^1.9.0" |
| | | } |
| | | }, |
| | | "vuex": { |
| | | "version": "4.1.0", |
| | | "resolved": "https://registry.npmjs.org/vuex/-/vuex-4.1.0.tgz", |
| | | "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==", |
| | | "dev": true, |
| | | "requires": { |
| | | "@vue/devtools-api": "^6.0.0-beta.11" |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "devDependencies": { |
| | | "qs": "^6.11.2", |
| | | "vuex": "^4.0.2" |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "easycom": { |
| | | "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" |
| | | }, |
| | | "pages": [ //pagesæ°ç»ä¸ç¬¬ä¸é¡¹è¡¨ç¤ºåºç¨å¯å¨é¡µï¼åèï¼https://uniapp.dcloud.io/collocation/pages |
| | | { |
| | | "path": "pages/login/login", |
| | | "style": { |
| | | "navigationBarTitleText": "ç»å½é¡µ", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/index/index", |
| | | "style": { |
| | | "navigationBarTitleText": "é¦é¡µ", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/print/bluetoothConnection", |
| | | "style": { |
| | | "navigationBarTitleText": "èçè¿æ¥", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/print/materialInfo", |
| | | "style": { |
| | | "navigationBarTitleText": "æ åæ ç¾æå°", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/print/material", |
| | | "style": { |
| | | "navigationBarTitleText": "ç©ææå°", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/print/deliver", |
| | | "style": { |
| | | "navigationBarTitleText": "åè´§æå°", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/print/gauge", |
| | | "style": { |
| | | "navigationBarTitleText": "å·¥éå
·æ ç¾", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/untie/untie", |
| | | "style": { |
| | | "navigationBarTitleText": "ç©æè§£ç»", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/putaway/putaway", |
| | | "style": { |
| | | "navigationBarTitleText": "䏿¶", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/untie/untieForMove", |
| | | "style": { |
| | | "navigationBarTitleText": "ç§»åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/untie/checkAllMove", |
| | | "style": { |
| | | "navigationBarTitleText": "å
¨æ£ç§»åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/untie/localBind", |
| | | "style": { |
| | | "navigationBarTitleText": "åºä½ç»å®", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/untie/localUnBind", |
| | | "style": { |
| | | "navigationBarTitleText": "åºä½è§£ç»", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | |
| | | { |
| | | "path": "pages/crossDock/crossDock", |
| | | "style": { |
| | | "navigationBarTitleText": "è¶åº", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 20 |
| | | } |
| | | |
| | | },{ |
| | | "path": "pages/untie/outbound", |
| | | "style": { |
| | | "navigationBarTitleText": "åºåºç¡®è®¤", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/artificial/artificial", |
| | | "style": { |
| | | "navigationBarTitleText": "å
¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | },{ |
| | | "path": "pages/recommend/recommend", |
| | | "style": { |
| | | "navigationBarTitleText": "æ¨èåºä½", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/putIn/putIn", |
| | | "style": { |
| | | "navigationBarTitleText": "å
¥åºæä½", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, |
| | | { |
| | | "path": "pages/callTray/callTray", |
| | | "style": { |
| | | "navigationBarTitleText": "容å¨è§£ç»", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | }, { |
| | | "path": "pages/putIn/material/material", |
| | | "style": { |
| | | "navigationBarTitleText": "ç¹å°ç¹", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/putIn/three/three", |
| | | "style": { |
| | | "navigationBarTitleText": "ç«åºå
¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/putIn/plane/plane", |
| | | "style": { |
| | | "navigationBarTitleText": "å¹³åºå
¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/hander/handerIn", |
| | | "style": { |
| | | "navigationBarTitleText": "æå·¥å
¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path": "pages/hander/handerOut", |
| | | "style": { |
| | | "navigationBarTitleText": "æå·¥åºåº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/unpack/unpack", |
| | | "style": { |
| | | "navigationBarTitleText": "åºåºæä½", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/unpack/plane/plane", |
| | | "style": { |
| | | "navigationBarTitleText": "å¹³åºåºåº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | // { |
| | | // "path": "pages/unpack/material/material", |
| | | // "style": { |
| | | // "navigationBarTitleText": "ç©æåºåº", |
| | | // "enablePullDownRefresh": false |
| | | // } |
| | | |
| | | // }, |
| | | { |
| | | "path": "pages/takeMaterial/takeMaterial", |
| | | "style": { |
| | | "navigationBarTitleText": "æ¶è´§ç®¡ç", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/order/order", |
| | | "style": { |
| | | "navigationBarTitleText": "æ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/orderpiece/orderpiece", |
| | | "style": { |
| | | "navigationBarTitleText": "éè´§åæ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path": "pages/takeMaterial/orderpiece/orderpiecePo", |
| | | "style": { |
| | | "navigationBarTitleText": "poæ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path": "pages/takeMaterial/orderpiece/poYueku", |
| | | "style": { |
| | | "navigationBarTitleText": "poè¶åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path": "pages/takeMaterial/orderpiece/doYueku", |
| | | "style": { |
| | | "navigationBarTitleText": "doè¶åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/noOrder/noOrder", |
| | | "style": { |
| | | "navigationBarTitleText": "é订åä»¶æ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/former/former", |
| | | "style": { |
| | | "navigationBarTitleText": "æ§ä»¶æ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/return/return", |
| | | "style": { |
| | | "navigationBarTitleText": "éè´§ä»¶æ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/takeMaterial/give/give", |
| | | "style": { |
| | | "navigationBarTitleText": "å½è¿ä»¶æ¶è´§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/sort/sort", |
| | | "style": { |
| | | "navigationBarTitleText": "忣", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/sort/sort2", |
| | | "style": { |
| | | "navigationBarTitleText": "忣PO", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/check/return", |
| | | "style": { |
| | | "navigationBarTitleText": "容å¨ååº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/check/out", |
| | | "style": { |
| | | "navigationBarTitleText": "çç¹åºåº", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/check/check/index", |
| | | "style": { |
| | | "navigationBarTitleText": "çç¹", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 50 |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/check/check/check", |
| | | "style": { |
| | | "navigationBarTitleText": "çç¹", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/wareTool/borrow", |
| | | "style": { |
| | | "navigationBarTitleText": "å·¥éå
·åç¨", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/wareTool/index", |
| | | "style": { |
| | | "navigationBarTitleText": "å·¥éå
·å½è¿", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/receive/receive", |
| | | "style": { |
| | | "navigationBarTitleText": "é¢ç¨åæç
§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/borrow/borrow", |
| | | "style": { |
| | | "navigationBarTitleText": "åç¨å½è¿", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/scrap/scrap", |
| | | "style": { |
| | | "navigationBarTitleText": "æ¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/scrap/photo", |
| | | "style": { |
| | | "navigationBarTitleText": "æ¥åºæç
§", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/putIn/empty/empty", |
| | | "style": { |
| | | "navigationBarTitleText": "空æå
¥åº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "pages/sort/return", |
| | | "style": { |
| | | "navigationBarTitleText": "ååº", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path" : "pages/old/index", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path" : "pages/old/putIn", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path" : "pages/old/putOut", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path": "node_modules/uview-ui/components/u-full-screen/u-full-screen", |
| | | "style": { |
| | | "navigationStyle": "custom", // åæ¶æ¬é¡µé¢çå¯¼èªæ |
| | | "app-plus": { |
| | | "animationType": "fade-in", // 设置fade-inæ·¡å
¥å¨ç»ï¼ä¸ºæåççå¨ç»ç±»å |
| | | "background": "transparent", // èæ¯éæ |
| | | "backgroundColor": "rgba(0,0,0,0)", // èæ¯éæ |
| | | "popGesture": "none" // å
³éIOSå±å¹å·¦è¾¹æ»å¨å
³éå½å页é¢çåè½ |
| | | } |
| | | } |
| | | } |
| | | ,{ |
| | | "path" : "pages/sort/search", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/mark/mark", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/sort/index", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path" : "pages/sort/pickorder", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "容å¨ç»ç䏿¶" |
| | | } |
| | | |
| | | } ,{ |
| | | "path" : "pages/sort/kittingSort", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "容å¨ä¸æ¶", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 20 |
| | | } |
| | | |
| | | } ,{ |
| | | "path" : "pages/sort/squareSort2", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "DO忣", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | } |
| | | ,{ |
| | | "path" : "pages/deliver/deliver", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | },{ |
| | | "path" : "pages/deliver/deliverDo", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/expressmail/expressmail", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/print/wms", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "çäº§åºæ ç¾", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path" : "pages/check/square", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "å¹³åºçç¹", |
| | | "enablePullDownRefresh": true |
| | | } |
| | | |
| | | }, |
| | | { |
| | | "path" : "pages/check/index", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "å¹³åºçç¹", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/resume/pickResume", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "åè´§æ¤é", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 20 |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/resume/sortResume", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "忣æ¤é", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 20 |
| | | } |
| | | } |
| | | ,{ |
| | | "path" : "pages/resume/yukuResume", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "è¶åºæ¤é", |
| | | "enablePullDownRefresh": true, |
| | | "onReachBottomDistance": 20 |
| | | } |
| | | |
| | | } |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | | "navigationBarTitleText": "æ åååææåº", |
| | | "navigationBarBackgroundColor": "#F8F8F8", |
| | | "navigationStyle": "custom", //åæ¶uni-appåç头é¨å¯¼èªæ å
¨å± |
| | | "backgroundColor": "#F8F8F8", |
| | | "pageOrientation":"auto" //å¯ç¨å±å¹æè½¬ |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view style="padding-bottom:150px" class="boxTip"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">ç»ç</block> |
| | | </cu-custom> |
| | | <!-- <view class="flex justify-end align-center padding_right30rpx padding_top12rpx"> |
| | | <text class="fontSize12rpx"> æä½äººï¼{{operator}} </text> |
| | | </view> --> |
| | | <u-form labelPosition="left" label-width="180rpx" :model="warehouse" ref="warehouseRef"> |
| | | |
| | | <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容å¨ç¼å·:" prop="containerCode" required class="uFormItem"> |
| | | <u-input :focus="curFoucus" v-model.trim="warehouse.containerCode" @confirm="getMaterialDetails(1)" |
| | | placeholder="请æ«ç å½å
¥" :disabled="kwbhAllowed" style="font-weight: bolder;margin-left: 15rpx;" |
| | | class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | |
| | | <u-row v-if="warehouse.containerCode" class="border_bottom margin_top10rpx padding_left25rpx" |
| | | style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="ç©æè·è¸ªç :" class="uFormItem"> |
| | | <u-input v-model="warehouse.snCode" ref="materialRef" placeholder="请æ«ç å½å
¥" |
| | | @focus="warehouse.snCode = ''" @confirm="getMaterialDetails" |
| | | style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row class="border_bottom margin_top10rpx background_fff padding_left25rpx"> |
| | | <u-col span="12"> |
| | | <u-form-item label="ç®æ åºåº:" prop="tray" class="uFormItem"> |
| | | <input v-model="warehouse.areaCode" type="select" placeholder="è¯·éæ©ç®æ åºåº" @focus="containerFocus" |
| | | class="width"></input> |
| | | <u-action-sheet :list="wolist" v-model="modalshow" @click="confirmXl"></u-action-sheet> |
| | | <!-- <u-select v-model="modalshow" :list="wolist" @confirm="confirm" value-name="id" label-name="name"></u-select> --> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;"> |
| | | <u-col span="10"> |
| | | <u-form-item label="ç®æ åºä½:" class="uFormItem"> |
| | | <u-input v-model="warehouse.placeCode" placeholder="请æ«ç å½å
¥" |
| | | style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | <u-col span="2" @tap="containerFocus2"> |
| | | <span class="fontSize15rpx">æ¨è</span> |
| | | <u-icon name="arrow-right" size="14" class="fontSize15rpx"></u-icon> |
| | | </u-col> |
| | | |
| | | <view class="boxList" v-show="modalshow2" @click="modalshow2 = false" @touchmove.stop> |
| | | <view class="innerWrap"> |
| | | <ul v-for="(item, eindex) in containerList" :key="eindex"> |
| | | <li @click="confirm2(eindex)"> {{ item.text }}</li> |
| | | </ul> |
| | | </view> |
| | | </view> |
| | | |
| | | </u-row> |
| | | </u-form> |
| | | <modal-code :rescode='rescode' :resmessage='resmessage' ref="resmodal" /> |
| | | <view style="margin-bottom: 200rpx;" class="margin_top10rpx"> |
| | | <view v-for="(item, eindex) in singlist" :key="eindex" class="margin_bottom10rpx"> |
| | | <u-swipe-action :show="item.show" :index="eindex" @click="longpress" @open="open" @close='close' |
| | | :options="options" style="width: 100vw;"> |
| | | <view class="fontSize32rpx background_fff padding10" :class="item.enAbled == 0 ? 'bg_item' : ''"> |
| | | <u-row> |
| | | <u-col span="12" class="flex"> |
| | | <text class="flex justify-center align-center circkle06">{{ eindex + 1 }}</text> |
| | | <text class="color_f18202 padding_left10rpx"> |
| | | {{ item.materialCode }}-{{ item.materialName }} |
| | | </text> |
| | | <!-- <u-icon name="plus-circle" v-if="item.enAbled!=1"></u-icon> --> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | è´¨æ£ç¶æï¼{{ item.qcStatusName }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <view class="color_80 padding_left25rpx"> |
| | | <text style="display: inline-block">æ¹æ¬¡ï¼{{ item.batch }}</text> |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | è·è¸ªç ï¼{{ item.snCode }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_f18202 "> |
| | | æ°éï¼{{ item.quantity }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <!-- <u-row> |
| | | <u-col span="7"> |
| | | </u-col> |
| | | <u-col span="5" class="flex"> |
| | | <view class="color_80"> |
| | | æ°éï¼ |
| | | </view> |
| | | <input :class="item.enAbled ? '' : 'border_bottom_f18202 inputGray'" |
| | | class="text-left color_f18202 fontSize32rpx inputGray2" v-model="item.quantity" |
| | | type="number" :disabled="item.enAbled == 1" @blur="changeNum(item)" @click="clicki(item)" |
| | | placeholder="0" /> |
| | | </u-col> |
| | | </u-row> --> |
| | | </view> |
| | | </u-swipe-action> |
| | | </view> |
| | | </view> |
| | | <button-modal :issueShow='true' issueTitle="éç½®" subTitle='ç»ç' restTiltle='ç»ç䏿¶' @reset='goWarhouse' @submit='submit' |
| | | @issue="reset" /> |
| | | |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import ButtonModal from '../../components/buttonModal.vue' |
| | | import ModalCode from '../../components/ModalCode.vue' |
| | | import { |
| | | getOrderNo, |
| | | addGroupDisk, |
| | | onlyUpdateDutyCycle, |
| | | getareaTypesList, |
| | | getContainDetail, |
| | | getContainerRecord, |
| | | getBhbMaterialList, |
| | | PdaBindListForSNCode, |
| | | getRecommendList |
| | | } from '../../api/putIn/artificial.js' |
| | | import { |
| | | getDate |
| | | } from '../../utils/dateTime.js' |
| | | import { |
| | | getAttrValue |
| | | } from '../../utils/tool.js' |
| | | import { |
| | | bindputawayConfirm |
| | | } from '../../api/putaway/putaway.js' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | containerList: [], |
| | | curFoucus: true, |
| | | rescode: 0, |
| | | resmessage: "", |
| | | putCode: '', //容å¨äºç»´ç |
| | | detailshow: false, |
| | | operator: '', |
| | | focu: false, //æ¸
空æé®éæ¾ |
| | | focuM: false, //ç©æéæ¾æé® |
| | | Datetime: getDate(), |
| | | singlist: [], //ç©æè¯¦æ
|
| | | wolist: [], |
| | | options: [ |
| | | // { |
| | | // text: '详æ
', |
| | | // style: { |
| | | // backgroundColor: '#fc9f35' |
| | | // } |
| | | // } |
| | | { |
| | | text: 'å é¤', |
| | | style: { |
| | | backgroundColor: '#fc4b4b' |
| | | } |
| | | } |
| | | ], |
| | | materlist: {}, |
| | | warehouse: { |
| | | containerCode: '', |
| | | materialCode: '', |
| | | storehouseCode: "", |
| | | snCode: "", |
| | | // gridNumber: 1, |
| | | // useNumber: 0, |
| | | // exitNumber: 0, |
| | | // dutyCycle:1 |
| | | }, |
| | | modalshow: false, |
| | | modalshow2: false, |
| | | gridable: true, |
| | | gridFocus: false, |
| | | detailable: false, |
| | | detailableZb: false, |
| | | batchNo: '', //æ«ç å°çå½åç©æçæ¹æ¬¡ |
| | | warehouseRules: { |
| | | containerCode: [{ |
| | | required: true, |
| | | message: '容å¨ç¼å·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }], |
| | | materialCode: [{ |
| | | required: true, |
| | | message: 'ç©æç¼å·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | orderType: 1, |
| | | warhouseTph: '', |
| | | timerPrint: null, |
| | | kwbhAllowed: false, //æ¯å¦ç¦ç¨åºä½ç¼å· |
| | | arrD: [], |
| | | statusTp: { |
| | | 'tpStatus': '' |
| | | } |
| | | }; |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode |
| | | }, |
| | | onLoad(option) { |
| | | if (option.orderType) { |
| | | this.orderType = option.orderType |
| | | } |
| | | }, |
| | | onReady() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | }, |
| | | mounted() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | this.getVehicleType() |
| | | }, |
| | | computed: { |
| | | containerCode() { |
| | | return this.warehouse.containerCode |
| | | } |
| | | }, |
| | | watch: { |
| | | containerCode(val) { |
| | | if (!val) { |
| | | this.detailable = false; |
| | | this.detailableZb = false; |
| | | this.warehouse.exitNumber = 0 |
| | | } |
| | | }, |
| | | singlist(val) { |
| | | this.warehouse.exitNumber = val.length |
| | | } |
| | | }, |
| | | methods: { |
| | | //容å¨ç±»åèç¦äºä»¶ |
| | | containerFocus() { |
| | | uni.hideKeyboard() |
| | | this.modalshow = true |
| | | }, |
| | | gridBtnClick() { |
| | | this.gridable = !this.gridable |
| | | if (!this.gridable) { |
| | | this.$nextTick(() => { |
| | | this.gridFocus = true; |
| | | }) |
| | | } else { |
| | | this.$nextTick(() => { |
| | | this.gridFocus = false; |
| | | }) |
| | | } |
| | | }, |
| | | //容å¨ç¼å·ç¹å» |
| | | containerClick() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouse.containerCode = res.result |
| | | this.containerBlur() |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `æ«æå¤±è´¥${err}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //容å¨å¤±ç¦äºä»¶ |
| | | containerBlur() { |
| | | Promise.all([this.getContainerRecord(), this.getContainerData()]) |
| | | }, |
| | | //è·åå½å容å¨ä¸ç»çè®°å½ |
| | | getContainerRecord() { |
| | | this.kwbhAllowed = false |
| | | //æ¯æ¬¡æ¥è¯¢ç½®ç©ºææå表 |
| | | this.singlist = []; |
| | | if (this.warehouse.containerCode == '') { |
| | | return |
| | | } |
| | | getContainerRecord({ |
| | | containerCode: this.warehouse.containerCode |
| | | }).then(res => { |
| | | if (res.code == 200) { |
| | | this.kwbhAllowed = true |
| | | if (Array.isArray(res.data) && res.data.length > 0) { |
| | | if (res.data[0].orderNo) { |
| | | this.putCode = res.data[0].orderNo; |
| | | } |
| | | this.warehouse.dutyCycle = res.data[0].dutyCycle; //åºåå æ¯ ãEditby shaocx,2023-05-22ã |
| | | const recordArr = res.data.reduce((curr, item) => { |
| | | curr.push({ |
| | | code: item.materialCode, |
| | | batchNo: item.batchNo, |
| | | quantityNow: item.quantity, |
| | | quantity: item.quantity, |
| | | materialName: item.materialName, |
| | | materialTypeName: item.materialTypeName, |
| | | specificationModel: item.specificationModel, |
| | | id: '', |
| | | unionCode: item.unionCode, |
| | | replaceMaterialCode: item.replaceMaterialCode, |
| | | stockFlagStatus: item.stockFlagStatus, |
| | | show: false, |
| | | enAbled: 1 //æ§å¶æ°éæ¯å¦å¯ä»¥è¾å
¥ |
| | | }) |
| | | return curr |
| | | }, []) |
| | | this.singlist.push(...recordArr) |
| | | } |
| | | } else { |
| | | this.kwbhAllowed = false |
| | | } |
| | | |
| | | }) |
| | | |
| | | }, |
| | | //è·å容å¨çä¿¡æ¯ |
| | | getContainerData() { |
| | | getContainDetail(this.warehouse.containerCode).then(res => { |
| | | const result = res.data.rows; |
| | | if (Array.isArray(result) && result.length == 1) { |
| | | // èæ3个é½ä¸æ¾ç¤ºï¼æç®±ï¼æ¾ç¤ºæ
æ ¼ï¼é¢æï¼ä¸æ¾ç¤ºç©ºé´å æ¯ |
| | | if (res.data.rows[0].isVirtual == 0) { //å®ç© |
| | | if (res.data.rows[0].wareContainerType == '299120688255045' || res.data.rows[0] |
| | | .wareContainerType == '293486279884869') { // é¢å¶å®¹å¨ å¡æå®¹å¨ -æ¾ç¤ºå æ¯ |
| | | this.detailableZb = true; |
| | | this.detailable = false; |
| | | } else { //æç®± - æ¾ç¤ºæ
æ ¼æ° |
| | | this.detailableZb = false; |
| | | this.detailable = true; |
| | | } |
| | | } else { |
| | | this.detailable = false; |
| | | this.detailableZb = false; |
| | | } |
| | | this.warehouse.gridNumber = res.data.rows[0].gridNumber; |
| | | this.warehouse.useNumber = res.data.rows[0].useNumber; |
| | | } else { |
| | | uni.showToast({ |
| | | title: 'åºä½ä¸åå¨', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | this.kwbhAllowed = false |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | |
| | | |
| | | //ç©æç¼ç ç¹å» |
| | | materialClick() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouse.materialCode = getAttrValue(res.result, 'PARTSNUMBER') |
| | | this.batchNo = getAttrValue(res.result, 'LOTNO') |
| | | this.getMaterialDetails() |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `æ«æå¤±è´¥${err}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //ç©ææ¥è¯¢ |
| | | getMaterialDetails(pram) { |
| | | if (!this.warehouse.containerCode) { |
| | | uni.showToast({ |
| | | title: '容å¨ç¼å·ä¸è½ä¸ºç©º', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | //æ«å®¹å¨ç¼å· å è½½ææç©æ |
| | | if (pram == 1) { |
| | | this.singlist = []; |
| | | getBhbMaterialList({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'SNCode': this.warehouse.snCode |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result == null) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'æ¥æ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } else { |
| | | if (res.result.length == 0) { |
| | | console.log("空æ") |
| | | this.singlist = []; |
| | | return |
| | | } else { |
| | | console.log("ææ") |
| | | res.result.forEach((item, index) => { |
| | | item.notDelete = 1 //å·²ç»ççç©æ ä¸è®¸å é¤ è¦å»è§£ç»é¡µé¢è§£ç» |
| | | }) |
| | | this.singlist = res.result; |
| | | } |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | |
| | | } |
| | | }) |
| | | |
| | | } else { |
| | | |
| | | //ç©ææ¥è¯¢ |
| | | PdaBindListForSNCode({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'SNCode': this.warehouse.snCode |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result == null || !res.result.stockQuanOutput) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'æ¥æ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } else { |
| | | // æ ¹æ®id å¤æç©ææ¯å¦åå¨ |
| | | var item = res.result.stockQuanOutput; |
| | | //debugger |
| | | let index = this.singlist.findIndex(v => v.snCode == item.snCode); |
| | | if (index == -1) { |
| | | if (!res.result.validateResult && res.result.validateFailReason) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: res.result.validateFailReason, |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | this.singlist.unshift({ |
| | | ...item |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | } else { |
| | | this.singlist.unshift({ |
| | | ...item |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | }, |
| | | //å é¤è¯¦æ
|
| | | longpress(index, eindex) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦ç¡®è®¤å é¤ï¼', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | this.singlist[index].cardNum = true |
| | | if (eindex == 0) { //å é¤ |
| | | if(this.singlist[index].notDelete==1){ |
| | | uni.showToast({ |
| | | title: 'å·²ç»ççç©æ ä¸è®¸å é¤ è¦å»è§£ç»é¡µé¢è§£ç»', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | this.singlist.splice(index, 1) |
| | | } else { |
| | | this.materlist = this.singlist[index] |
| | | this.detailshow = true |
| | | } |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | //ç¼è¾ç¶ææ ·å¼ |
| | | dc(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | //å¡çéä¸ |
| | | clicki(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | // 妿æå¼ä¸ä¸ªçæ¶åï¼ä¸éè¦å
³éå
¶ä»ï¼åæ éå®ç°æ¬æ¹æ³ |
| | | open(index) { |
| | | // å
å°æ£å¨è¢«æä½çswipeActionæ 记为æå¼ç¶æï¼å¦åç±äºpropsçç¹æ§éå¶ï¼ |
| | | // åæ¬ä¸º'false'ï¼å次设置为'false'伿 æ |
| | | this.singlist[index].cardNum = true; |
| | | this.$forceUpdate() |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }) |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | this.singlist[index].cardNum = false; |
| | | this.$forceUpdate() |
| | | }, |
| | | //æ¹åç»çæ°é |
| | | changeNum(val) { |
| | | val.cardNum = false |
| | | if (!val.quantity) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'ç»çæ°éä¸è½ä¸ºç©º', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | if (val.quantity < 0) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'ç»çæ°éå¿
须大äº0', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | //å
¨é¨åæ¶ |
| | | reset() { |
| | | this.singlist = []; |
| | | this.warehouse.containerCode = '' |
| | | this.warehouse.snCode = '' |
| | | this.warehouse.areaCode = '' |
| | | this.warehouse.placeCode = '' |
| | | this.$refs.warehouseRef.resetFields(); |
| | | this.$forceUpdate() |
| | | this.kwbhAllowed = false |
| | | }, |
| | | //é置页é¢ä¿¡æ¯ |
| | | rest() { |
| | | this.reset() |
| | | }, |
| | | //确认 |
| | | submit() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | this.$refs.warehouseRef.validate(valid => { |
| | | if (valid) { |
| | | |
| | | let arrN1 = this.singlist.findIndex((v) => v.quantity == '' || v.quantity <= 0) |
| | | if (arrN1 > -1) { |
| | | uni.showToast({ |
| | | title: 'ç©ææ°ééè¦å¤§äº0', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | |
| | | //ç©æè¯¦æ
|
| | | let matatilDetails = this.singlist; |
| | | |
| | | let arrSub = matatilDetails.filter((v) => v.enAbled != 1) |
| | | //请æ±åæ° |
| | | /// æ è®° |
| | | /// 1ï¼ç©æç»ç |
| | | /// 2ï¼å®¹å¨ç»ç |
| | | /// 3ï¼ç©æè§£ç» |
| | | /// 4ï¼å®¹å¨è§£ç» |
| | | let params = { |
| | | Flag: 1, |
| | | ContainerCode: this.warehouse.containerCode, |
| | | orderDetails: arrSub |
| | | } |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'æ¯å¦ç¡®è®¤ç»çï¼', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | addGroupDisk(params).then(res => { |
| | | this.warhouseTph = this.warehouse.containerCode; |
| | | this.rescode = res.code; |
| | | this.resmessage = res.message || 'ç»çæåï¼'; |
| | | this.$refs.resmodal.show = true; |
| | | this.rest(); |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | // ç§ç䏿¶ |
| | | goWarhouse() { |
| | | //ç©æè¯¦æ
|
| | | let matatilDetails = this.singlist; |
| | | |
| | | let arrSub = matatilDetails.filter((v) => v.enAbled != 1) |
| | | |
| | | bindputawayConfirm({ |
| | | flag:1, // |
| | | "ActionType": 3004, //ç»ç䏿¶ |
| | | "ContainerCode": this.warehouse.containerCode, |
| | | "StorehouseCode": this.warehouse.storehouseCode, |
| | | "areaCode": this.warehouse.areaCode || '', |
| | | "placeCode": this.warehouse.placeCode || '', |
| | | "orderDetails": arrSub |
| | | }).then(res => { |
| | | this.rescode = res.code; |
| | | this.resmessage = res.message || 'ç»ç䏿¶æåï¼'; |
| | | this.$refs.resmodal.show = true; |
| | | this.reset(); |
| | | }) |
| | | // if(this.warehouse.areaCode==''&&this.warehouse.placeCode){ |
| | | // uni.showToast({ |
| | | // title: '请填åç®æ åºåºæç®æ åºä½ï¼', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }) |
| | | // return; |
| | | // } |
| | | // if (this.warhouseTph == '') { |
| | | // uni.showToast({ |
| | | // title: 'ç»çæååï¼å¯å
¥åºï¼', |
| | | // icon: 'none', |
| | | // duration: 2000 |
| | | // }) |
| | | // return |
| | | // } |
| | | // uni.navigateTo({ |
| | | // url: '/pages/putIn/three/three?type=å
¥åºå&containerCode=' + this.warhouseTph |
| | | // }) |
| | | }, |
| | | getVehicleType() { |
| | | getareaTypesList().then((res) => { |
| | | // if (res.data.rows.length == 0) { |
| | | // this.rescode = 400 |
| | | // this.resmessage = 'ææ æ°æ®' |
| | | // this.$refs.resmodal.show = true |
| | | // return |
| | | // } |
| | | var arr = res.result.items; |
| | | arr.map(item => { |
| | | item.text = item.areaCode; |
| | | return item; |
| | | }) |
| | | this.wolist = arr |
| | | }) |
| | | }, |
| | | confirmXl(index) { |
| | | this.warehouse.areaCode = this.wolist[index].areaCode; |
| | | // this.warehouse.ContainerTypeCode = this.wolist[index].id; |
| | | }, |
| | | filterMark(stockFlagStatus) { |
| | | let str = '' |
| | | let arr4 = this.arrD.filter(v => v.value == stockFlagStatus) |
| | | if (arr4.length > 0) { |
| | | str = arr4[0].title |
| | | } |
| | | return str |
| | | }, |
| | | //------è·åæ¨è |
| | | containerFocus2() { |
| | | // //debugger |
| | | if (!this.warehouse.areaCode) { |
| | | uni.showToast({ |
| | | title: 'è¯·éæ©ç®æ åºåºï¼', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | getRecommendList({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'areaCode': this.warehouse.areaCode |
| | | }).then(res => { |
| | | this.modalshow2 = true; |
| | | |
| | | this.containerList = res.result.reduce((curr, item) => { |
| | | curr.push({ |
| | | text: item.placeCode, |
| | | }) |
| | | return curr; |
| | | }, []) |
| | | }) |
| | | }, |
| | | //------è·åæ¨èç±»åéæ© |
| | | confirm2(index) { |
| | | this.warehouse.placeCode = this.containerList[index].text; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .bg_item { |
| | | background: #FFEBCD !important; |
| | | } |
| | | |
| | | .inputGray2 { |
| | | line-height: 30px; |
| | | border-top: 10rpx solid transparent; |
| | | } |
| | | |
| | | .inputGray { |
| | | border-top: 0rpx solid transparent; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | .boxList { |
| | | transition: all ease 2s; |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | top: 0; |
| | | right: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | z-index: 999; |
| | | background: rgba(0, 0, 0, 0.6); |
| | | |
| | | .innerWrap { |
| | | max-height: 50%; |
| | | overflow-y: auto; |
| | | background: white; |
| | | position: absolute; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | |
| | | ul { |
| | | padding: 0; |
| | | margin: 0; |
| | | |
| | | li { |
| | | padding: 0; |
| | | margin: 0; |
| | | border-bottom: 1px solid #e4e7ed; |
| | | list-style-type: none; |
| | | display: flex; |
| | | flex-direction: row; |
| | | line-height: 1; |
| | | justify-content: center; |
| | | align-items: center; |
| | | font-size: 13px; |
| | | padding: 14px 0; |
| | | flex-direction: column; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">人工ç»ç</block> |
| | | </cu-custom> |
| | | <view class="flex justify-end align-center padding_right30rpx padding_top12rpx"> |
| | | <text class="fontSize12rpx"> æä½äººï¼{{operator}} </text> |
| | | </view> |
| | | <u-form labelPosition="top" :model="warehouse" ref="warehouseRef"> |
| | | <u-row class="border_bottom padding10" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容å¨ç¼å·:" prop="containerCode" required style="font-size: 16px;font-weight: bold;padding: 0;"> |
| | | <u-input v-model.trim="warehouse.containerCode" @focus="warehouse.containerCode = ''" @blur="containerBlur" placeholder="请æ«ç å½å
¥" style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row class="border_bottom margin_top10rpx padding10" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="ç©æç¼å·:" style="font-size: 16px;font-weight: bold;padding: 0 0 10rpx;"> |
| | | <u-input v-model="warehouse.materialCode" ref="materialRef" placeholder="请æ«ç å½å
¥" @focus="warehouse.materialCode = ''" @blur="getMaterialDetails" style="font-weight: bolder;margin-left: 15rpx;" |
| | | class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | </u-form> |
| | | <modal-code :rescode='rescode' :resmessage='resmessage' ref="resmodal" /> |
| | | <view style="margin-bottom: 200rpx;" v-show="singlist.length > 0"> |
| | | <view v-for="(item, eindex) in singlist" :key="eindex" style="width: 100vw;display: flex;"> |
| | | <u-swipe-action :show="item.show" :index="eindex" @click="longpress" |
| | | @open="open" @close='close' :options="options" style="margin-bottom: 10rpx;width: 100vw;"> |
| | | <view class="title-wrap fontSize32rpx background_fff" :class="parseInt(item.quantity) > 0 ? 'bg_item' : '' " style="width: 100vw;"> |
| | | <u-row> |
| | | <u-col span="1"> |
| | | <text class="flex justify-center align-center" style="background-color: #f18202;color: #fff;border-radius: 50vh;width: 20px;height: 20px;"> |
| | | {{eindex+1}} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="10"> |
| | | <text class="color_f18202"> |
| | | ç©æç¼å·ï¼{{item.code}} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row style="margin-top: 20rpx;"> |
| | | <u-col span="8"> |
| | | <text class="el_batchNo"> |
| | | æ¹æ¬¡ï¼{{item.batchNo}} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <input class="border_bottom_f18202 width text-left fontSize32rpx padding_left10rpx" v-model="item.quantity" |
| | | type="number" @blur="changeNum(item)" :min="1" placeholder="请è¾å
¥ç»çæ°é" /> |
| | | <!-- <text class="el_batchNo"> |
| | | ç»çæ°éï¼{{item.quantity}} |
| | | </text> --> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | </u-swipe-action> |
| | | </view> |
| | | </view> |
| | | <u-popup v-model="detailshow" border-radius="14" @close="detailshow=false" mode="bottom"> |
| | | <view class="pop "> |
| | | <h2 class="text_align_center padding_bottom18 padding15">ç©æä¿¡æ¯</h2> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æç¼å·</text> |
| | | <text>{{materlist.code}}</text> |
| | | </view> |
| | | |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æåç§°</text> |
| | | <text>{{materlist.name}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æç±»å</text> |
| | | <text>{{materlist.wareMaterialTypeName}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æè§æ ¼</text> |
| | | <text>{{materlist.specificationModel}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">é¿(mm)</text> |
| | | <text>{{materlist.long}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">宽(mm)</text> |
| | | <text>{{materlist.width}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">é«(mm)</text> |
| | | <text>{{materlist.high}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">éé(kg)</text> |
| | | <text>{{materlist.weight}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">åä½</text> |
| | | <text>{{materlist.unit}}</text> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <button-modal :cleaningShow='true' allTitle='å
¨é¨åæ¶' cleaningTitle='确认ç»ç' @allsubmit="reset" @submit='submit'/> |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import ButtonModal from '../../components/buttonModal.vue' |
| | | import ModalCode from '../../components/ModalCode.vue' |
| | | import {getOrderNo,addGroupDisk,getMaterialList, getContainDetail, getContainerRecord} from '../../api/putIn/artificial.js' |
| | | import {getDate} from '../../utils/dateTime.js' |
| | | import {getAttrValue} from '../../utils/tool.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | rescode: 0, |
| | | resmessage: "", |
| | | putCode: '', //容å¨äºç»´ç |
| | | detailshow: false, |
| | | operator: '', |
| | | focu: false, //æ¸
空æé®éæ¾ |
| | | focuM: false, //ç©æéæ¾æé® |
| | | Datetime: getDate(), |
| | | singlist: [], //ç©æè¯¦æ
|
| | | options: [{ |
| | | text: '详æ
', |
| | | style: { |
| | | backgroundColor: '#fc9f35' |
| | | } |
| | | }, |
| | | { |
| | | text: 'å é¤', |
| | | style: { |
| | | backgroundColor: '#fc4b4b' |
| | | } |
| | | } |
| | | ], |
| | | materlist: {}, |
| | | warehouse: { |
| | | containerCode: '', |
| | | materialCode: '', |
| | | }, |
| | | batchNo: '', //æ«ç å°çå½åç©æçæ¹æ¬¡ |
| | | warehouseRules: { |
| | | containerCode: [{ |
| | | required: true, |
| | | message: '容å¨ç¼å·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }], |
| | | // gridNumber: [{required: true,message: 'æ
æ ¼æ»æ°ä¸è½ä¸ºç©º',trigger: 'blur'}], |
| | | // exitNumber:[{required: true,message: 'æ¬æ¬¡å ç¨æ°éä¸è½ä¸ºç©º',trigger: 'blur'}], |
| | | materialCode: [{ |
| | | required: true, |
| | | message: 'ç©æç¼å·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }] |
| | | } |
| | | |
| | | }; |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode |
| | | }, |
| | | onReady() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | }, |
| | | mounted() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | this.getOrderNo() |
| | | }, |
| | | computed: { |
| | | containerCode(){ |
| | | return this.warehouse.containerCode |
| | | } |
| | | }, |
| | | methods: { |
| | | //容å¨å¤±ç¦äºä»¶ |
| | | containerBlur(){ |
| | | Promise.all([this.getContainerRecord(), this.getContainerData()]) |
| | | }, |
| | | //è·åå½å容å¨ä¸ç»çè®°å½ |
| | | getContainerRecord(){ |
| | | if(this.warehouse.containerCode.length < 5) { |
| | | return |
| | | } |
| | | getContainerRecord({ContainerCode: this.warehouse.containerCode}).then(res => { |
| | | if(Array.isArray(res.data) && res.data.length > 0) { |
| | | this.putCode = res.data[0].orderNo; |
| | | const recordArr = res.data.reduce((curr,item)=>{ |
| | | curr.push({ |
| | | code: item.wareMaterialCode, |
| | | batchNo:item.batchNo, |
| | | quantity:item.quantity, |
| | | show: false |
| | | }) |
| | | return curr |
| | | },[]) |
| | | this.singlist.push(...recordArr) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | //è·å容å¨çä¿¡æ¯ |
| | | getContainerData() { |
| | | if(this.warehouse.containerCode.length < 5) { |
| | | return |
| | | } |
| | | getContainDetail(this.warehouse.containerCode).then(res => { |
| | | const result = res.data.rows; |
| | | if(!Array.isArray(result) || result.length !== 1) { |
| | | this.rescode = 400 |
| | | this.resmessage = '容å¨ä¿¡æ¯æ¥è¯¢å¤±è´¥' |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | //å
¥åºåå· |
| | | getOrderNo() { |
| | | getOrderNo().then((res) => { |
| | | if (res.code == 200) { |
| | | this.putCode = res.data |
| | | } else { |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //ç©ææ¥è¯¢ |
| | | getMaterialDetails() { |
| | | if(!this.warehouse.materialCode) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'ç©æç¼å·ä¸è½ä¸ºç©º', |
| | | showCancel: false |
| | | }) |
| | | return |
| | | } |
| | | if(this.warehouse.materialCode.length > 50) { |
| | | this.batchNo = getAttrValue(this.warehouse.materialCode,'LOTNO') |
| | | //æ«æçç©ææ¯å¦ææ¹æ¬¡ |
| | | if(!this.batchNo) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'æ æ¹æ¬¡' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | this.warehouse.materialCode = getAttrValue(this.warehouse.materialCode,'PARTSNUMBER') |
| | | if(this.singlist.length > 0) { |
| | | //夿彿¬¡æ«æçç©ææ¯å¦å·²åå¨åæ¹æ¬¡ |
| | | let index = this.singlist.findIndex(item => item.code == this.warehouse.materialCode && item.batchNo == this.batchNo) |
| | | //置顶 |
| | | if(index > -1) { |
| | | this.singlist.unshift(...this.singlist.splice(index,1)) |
| | | return |
| | | } |
| | | } |
| | | |
| | | if(this.warehouse.materialCode.length > 3) { |
| | | getMaterialList(this.warehouse.materialCode).then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.data.rows.length == 0) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'æ æ¤ç©æ' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | }else { |
| | | res.data.rows.map(item => { |
| | | item.batchNo = this.batchNo |
| | | item.quantity = '' |
| | | item.show = false |
| | | return item; |
| | | }) |
| | | this.singlist.unshift(...res.data.rows) |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | //å é¤è¯¦æ
|
| | | longpress(index, eindex) { |
| | | this.singlist[index].cardNum = true |
| | | if (eindex == 1) { |
| | | this.singlist.splice(index, 1) |
| | | } else { |
| | | this.materlist = this.singlist[index] |
| | | this.detailshow = true |
| | | } |
| | | |
| | | }, |
| | | // 妿æå¼ä¸ä¸ªçæ¶åï¼ä¸éè¦å
³éå
¶ä»ï¼åæ éå®ç°æ¬æ¹æ³ |
| | | open(index) { |
| | | // å
å°æ£å¨è¢«æä½çswipeActionæ 记为æå¼ç¶æï¼å¦åç±äºpropsçç¹æ§éå¶ï¼ |
| | | // åæ¬ä¸º'false'ï¼å次设置为'false'伿 æ |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }) |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | this.singlist[index].cardNum = false; |
| | | this.$forceUpdate() |
| | | }, |
| | | //æ¹åç»çæ°é |
| | | changeNum(val) { |
| | | val.cardNum = false |
| | | if(!val.quantity) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'ç»çæ°éä¸è½ä¸ºç©º', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | if(val.quantity <0) { |
| | | uni.showModal({ |
| | | title: 'æç¤º', |
| | | content: 'ç»çæ°éå¿
须大äº0', |
| | | showCancel: false |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | //å
¨é¨åæ¶ |
| | | reset() { |
| | | this.singlist = []; |
| | | this.$refs.warehouseRef.resetFields(); |
| | | this.$forceUpdate() |
| | | }, |
| | | //é置页é¢ä¿¡æ¯ |
| | | rest() { |
| | | this.warehouse.containerCode = '' |
| | | this.warehouse.materialCode = '' |
| | | this.singlist.forEach(item => { |
| | | item.quantity = '' |
| | | }) |
| | | this.singlist = [] |
| | | this.getOrderNo() |
| | | }, |
| | | //确认 |
| | | submit() { |
| | | this.$refs.warehouseRef.validate(valid => { |
| | | if (valid) { |
| | | //ç©æè¯¦æ
|
| | | let matatilDetails = this.singlist.reduce((curr,item) => { |
| | | curr.push({ |
| | | createdTime: getDate(), |
| | | updatedTime: getDate(), |
| | | createdUserId: JSON.parse(uni.getStorageSync('userInfo')).id, |
| | | createdUserName: JSON.parse(uni.getStorageSync('userInfo')).name, |
| | | updatedUserId: JSON.parse(uni.getStorageSync('userInfo')).id, |
| | | updatedUserName: JSON.parse(uni.getStorageSync('userInfo')).name, |
| | | wareMaterialCode: item.code, |
| | | batchNo:item.batchNo, |
| | | price:item.price, |
| | | completeQuantity: item.quantity, |
| | | quantity: item.quantity |
| | | }) |
| | | return curr; |
| | | },[]) |
| | | |
| | | //请æ±åæ° |
| | | let params = { |
| | | createdTime: getDate(), |
| | | updatedTime: getDate(), |
| | | createdUserId: JSON.parse(uni.getStorageSync('userInfo')).id, |
| | | createdUserName: JSON.parse(uni.getStorageSync('userInfo')).name, |
| | | updatedUserId: JSON.parse(uni.getStorageSync('userInfo')).id, |
| | | updatedUserName: JSON.parse(uni.getStorageSync('userInfo')).name, |
| | | orderNo: this.putCode, |
| | | orderType: 1, |
| | | wareContainerCode: this.warehouse.containerCode, |
| | | gridNumber: 1, |
| | | useNumber: 0, |
| | | warehousOrderDetails: matatilDetails |
| | | } |
| | | |
| | | addGroupDisk(params).then(res => { |
| | | this.rescode = res.code |
| | | this.resmessage = res.message |
| | | this.$refs.resmodal.show = true |
| | | this.rest() |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .el_batchNo { |
| | | padding: 10rpx 0 10rpx 45rpx; |
| | | color: #808080; |
| | | } |
| | | .bg_item { |
| | | background: #FFEBCD !important; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="overflow"> |
| | | <view class="upWp"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">空æå
¥åº</block> |
| | | </cu-custom> |
| | | <!-- <view class="flex justify-end align-center padding_right30rpx padding_top12rpx"> |
| | | æä½äººï¼{{operator}} |
| | | </view> --> |
| | | <view class="text-bold width fontSize32rpx" style="padding: 10rpx 10rpx;background-color: #d6d6d6;"> |
| | | <view class="flex justify-between align-center"> |
| | | <text class="width23 padding10">å
¥åºåå·</text> |
| | | <text>{{warehouse.orderNo}}</text> |
| | | </view> |
| | | </view> |
| | | <u-form labelPosition="top" :model="warehouse" ref="warehouseRef"> |
| | | <u-row class="border_bottom margin_top10rpx padding10" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容卿°é:" prop="warehouse.containerQty" required class="myFormItem"> |
| | | <u-input type="number" v-model="warehouse.containerQty" :focus="focusType" placeholder="请è¾å
¥å®¹å¨æ°é" |
| | | class="width myInp" clearable/> |
| | | </u-form-item> |
| | | </u-col> |
| | | <u-col span="12"> |
| | | <u-form-item label="容å¨ç¼å·:" prop="warehouse.wareContain" required class="myFormItem"> |
| | | <!-- <input v-model="warehouse.wareContainerCode" :focus="focusType" placeholder="è¯·éæ©ææ«æå®¹å¨ç¼å·" |
| | | class="width myInp" > --> |
| | | |
| | | <u-input v-model.trim="warehouse.wareContainerCode" :focus="focusType" placeholder="è¯·éæ©ææ«æå®¹å¨ç¼å·" |
| | | class="width myInp" clearable/> |
| | | |
| | | <!-- <input v-model="warehouse.wareContainerCode" type="select" @focus="containerFocus" |
| | | placeholder="è¯·éæ©å®¹å¨ç¼å·" class="width myInp"> --> |
| | | <!-- <u-select v-model="modalshow" :list="wolist" @confirm="confirm" value-name="code" |
| | | label-name="code" ></u-select> --> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | </u-form> |
| | | </view> |
| | | <view class="wolistWp" v-show="modalshow" :style="{height: mtHeight+'px'}"> |
| | | <view :key="index" v-for="(item,index) in wolistRes" @click="confirm(item.code)"> |
| | | <text> {{ item.code}}</text> |
| | | </view> |
| | | </view> |
| | | <modal-code ref="resmodal" :rescode='rescode' :resmessage='resmessage' /> |
| | | |
| | | <button-modal :empTytowerShow='true' class="dowmWp" cleaningTitle="æ¥è¯¢" garmenTitle='确认å
¥åº' @submit='submit' @reset='rest' /> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getDate |
| | | } from '../../../utils/dateTime.js' |
| | | import ModalCode from '../../../components/ModalCode.vue' |
| | | import ButtonModal from '../../../components/buttonModal.vue' |
| | | import { |
| | | trayPutStorage, |
| | | getContainerNumList, |
| | | getOrderNumList, |
| | | containerTypeArr, |
| | | getAllEnums |
| | | } from '@/api/container/index.js' |
| | | import calBoxHt from '@/mixins/calBoxHt.js' |
| | | export default { |
| | | mixins:[calBoxHt], |
| | | data() { |
| | | return { |
| | | mtHeight: 'auto', |
| | | focusType: true, |
| | | rescode: 0, |
| | | resmessage: "", |
| | | focu: true, |
| | | Datetime: getDate(), |
| | | containerTypeArr: [], |
| | | warehouse: { //å
¥åºè¯·æ±åæ° |
| | | orderNo: "", |
| | | containerQty: 1, //空æ-é»è®¤1 |
| | | containerType: "", |
| | | wareContainerCode: "", //容å¨ç¼å· |
| | | createdTime: "", |
| | | updatedTime: "", |
| | | createdUserId: "", |
| | | createdUserName: "", |
| | | orderStatus: 3, |
| | | orderType: 13, //空æå
¥åº |
| | | warehousOrderDetails: [] |
| | | }, |
| | | warehouseRules: { |
| | | ContainerCode: [{ |
| | | required: true, |
| | | message: '容å¨ç¼å·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }], |
| | | // StorehouseCode: [{ |
| | | // required: true, |
| | | // message: 'å
¥åºå£ä¸è½ä¸ºç©º', |
| | | // trigger: 'blur' |
| | | // }], |
| | | }, |
| | | operator: '', // |
| | | wolist: [], |
| | | wolistRes: [111,2222,33333,33333,33333], |
| | | modalshow: false |
| | | }; |
| | | }, |
| | | components: { |
| | | ModalCode, |
| | | ButtonModal |
| | | }, |
| | | onReady() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | |
| | | this.calBoxHt() //å¨æè®¡ç®æ»å¨åºåçé«åº¦ |
| | | }, |
| | | mounted() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | |
| | | this.getOrderNum() |
| | | this.getContainerNum() |
| | | this.getAllEnums() |
| | | }, |
| | | // æ¨¡ç³æ¥è¯¢ |
| | | watch: { |
| | | 'warehouse.wareContainerCode': { |
| | | immediate: true, //卿¡çå¼è¿æ²¡ååæ¶æ§è¡å¦ä¸å½æ°æ¾ç¤ºåºææçæ
åµ |
| | | handler(val) { |
| | | this.modalshow = true |
| | | this.wolistRes = this.wolist.filter((p) => { |
| | | return p.code.indexOf(val.trim()) !== -1 |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // è·åå
¥åºåå· |
| | | getOrderNum() { |
| | | getOrderNumList().then((res) => { |
| | | if (res.code != 200) { |
| | | this.rescode = res.code |
| | | this.resmessage = 'ææ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | this.warehouse.orderNo = res.data |
| | | }) |
| | | }, |
| | | // è·å容å¨ç¼å· |
| | | getContainerNum(trayNumber) { |
| | | getContainerNumList().then((res) => { |
| | | if(res.code==200){ |
| | | if (res.data.length == 0) { |
| | | this.rescode = res.data.code |
| | | this.resmessage = 'ææ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | this.wolist = res.data |
| | | this.wolistRes = res.data |
| | | // æè·æä½è¿ç¨ä¸ è¢«ç©ºåºæ¥çå®¹å¨ |
| | | if(trayNumber&&this.warehouse.wareContainerCode!=''){ |
| | | this.wolistRes = this.wolist.filter((p) => { |
| | | return p.code.indexOf(this.warehouse.wareContainerCode) !== -1 |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | // 确认 |
| | | submit() { |
| | | if (this.warehouse.orderNo == '' || this.warehouse.orderNo == undefined) { |
| | | this.getOrderNum() |
| | | this.$u.toast('ç¨çï¼éæ°è·åå
¥åºåå·'); |
| | | return |
| | | } |
| | | if(this.warehouse.containerQty <= 0){ |
| | | this.$u.toast('请è¾å
¥å®¹å¨æ°é'); |
| | | return |
| | | } |
| | | if(this.warehouse.wareContainerCode == ''){ |
| | | this.$u.toast('容å¨ç¼å·æªæ«æææªéæ©'); |
| | | return |
| | | } |
| | | |
| | | this.$refs.warehouseRef.validate(valid => { |
| | | if (valid) { |
| | | var jsonSom = { |
| | | createdUserId: JSON.parse(uni.getStorageSync('userInfo')).id, |
| | | createdUserName: JSON.parse(uni.getStorageSync('userInfo')).name, |
| | | createdTime: this.Datetime, |
| | | updatedTime: this.Datetime, |
| | | containerQty: this.warehouse.containerQty |
| | | } |
| | | this.warehouse = Object.assign(this.warehouse, jsonSom); |
| | | this.warehouse.containerType = ''; |
| | | const arr = this.wolist.filter((item) => item.code == this.warehouse.wareContainerCode) |
| | | if (arr.length > 0) { |
| | | let nameTray = arr[0].typeName //å¡æå®¹å¨ |
| | | const arr2 = this.containerTypeArr.filter((item) => item.title == nameTray) |
| | | if (arr2.length <= 0) { |
| | | this.$u.toast('对åºå®¹å¨ç±»åæ¾ä¸å°'); |
| | | return; |
| | | } |
| | | this.warehouse.containerType = arr2[0].value || ''; //"299120688255045" |
| | | } |
| | | trayPutStorage(this.warehouse).then((res) => { |
| | | if (res.code === 200) { |
| | | this.rescode = res.code |
| | | this.resmessage = res.message |
| | | this.$refs.warehouseRef.resetFields() |
| | | this.warehouse = { |
| | | orderNo: "", |
| | | containerQty: 1, //空æ-é»è®¤1 |
| | | containerType: "", |
| | | wareContainerCode: "", //容å¨ç¼å· |
| | | createdTime: "", |
| | | updatedTime: "", |
| | | createdUserId: "", |
| | | createdUserName: "", |
| | | orderStatus: 3, |
| | | orderType: 13, //空æå
¥åº |
| | | warehousOrderDetails: [] |
| | | } |
| | | this.focusType = true |
| | | this.getOrderNum() |
| | | this.getContainerNum() |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | // è·å常ç¨åé åºåå
¥vuex |
| | | getAllEnums() { |
| | | getAllEnums().then((res) => { |
| | | if (res.data.length == 0 || res.data.containerType.length == 0) { |
| | | this.rescode = res.code |
| | | this.resmessage = 'ææ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | this.containerTypeArr = res.data.containerType |
| | | }) |
| | | }, |
| | | //å®¹å¨ èç¦äºä»¶ |
| | | containerFocus() { |
| | | // uni.hideKeyboard() |
| | | // this.modalshow = true |
| | | }, |
| | | //éæ© å®¹å¨ |
| | | confirm(e) { |
| | | if(e==this.warehouse.wareContainerCode){ |
| | | return |
| | | } |
| | | this.warehouse.wareContainerCode = e |
| | | this.modalshow = false |
| | | }, |
| | | //åºå
¥åºå£æ«æ |
| | | wareScane() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouseRules.StorehouseCode = res.result.trim() |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `æ«æå¤±è´¥${JSON.stringify(err)}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //容卿«æ |
| | | containerScane() { |
| | | uni.scanCode({ |
| | | scanType: ['barCode', 'qrCode'], |
| | | autoDecodeCharset: true, |
| | | success: (res) => { |
| | | this.warehouse.ContainerCode = res.result |
| | | }, |
| | | fail: (err) => { |
| | | this.rescode = 400 |
| | | this.resmessage = `æ«æå¤±è´¥${JSON.stringify(err)}` |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | }, |
| | | //éç½® |
| | | rest() { |
| | | this.getContainerNum(1) |
| | | }, |
| | | _empty(v) { |
| | | let tp = typeof v, |
| | | rt = false; |
| | | if (tp == "number" && String(v) == "") { |
| | | rt = true |
| | | } else if (tp == "undefined") { |
| | | rt = true |
| | | } else if (tp == "object") { |
| | | if (JSON.stringify(v) == "{}" || JSON.stringify(v) == "[]" || v == null) rt = true |
| | | } else if (tp == "string") { |
| | | if (v == "" || v == "undefined" || v == "null" || v == "{}" || v == "[]") rt = true |
| | | } else if (tp == "function") { |
| | | rt = false |
| | | } |
| | | return rt |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .myFormItem { |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | padding: 0; |
| | | } |
| | | |
| | | .myInp { |
| | | font-weight: bolder; |
| | | margin-left: 30rpx; |
| | | margin-top: 16rpx; |
| | | } |
| | | |
| | | /deep/.u-drawer__scroll-view { |
| | | border-top: 5px solid #d6d6d6; |
| | | } |
| | | .wolistWp{ |
| | | z-index: 999; |
| | | // height: 45vh; |
| | | padding-top: 10px; |
| | | padding-bottom: 20px; |
| | | border-top: 1px solid gray; |
| | | // border-bottom: 1px solid gray; |
| | | overflow: auto; |
| | | text-align: left; |
| | | view{ |
| | | display: inline-block; |
| | | border-radius: 3px; |
| | | border: 1px solid orange; |
| | | width: 27.3%; |
| | | text-align: center; |
| | | min-width: 80px; |
| | | padding: 5px ; |
| | | margin: 8px 3%; |
| | | color: #f18202; |
| | | text{ |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="overflow"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">é¢ç¨åæç
§çåº</block> |
| | | </cu-custom> |
| | | <view class="flex justify-end align-center padding_right30rpx padding_top12rpx"> |
| | | <text class="fontSize12rpx"> æä½äººï¼{{operator}} </text> |
| | | </view> |
| | | <modal-code ref="resmodal" :rescode='rescode' :resmessage='resmessage' /> |
| | | <view class=""> |
| | | <u-form labelPosition="top" :model="warehouse" ref="warehouseRef"> |
| | | <u-row class="border_bottom margin_top10rpx padding10" style="background-color: #fff;"> |
| | | <u-col span="10"> |
| | | <u-form-item label="é¢ç¨åå·:" prop="warehouseCode" required |
| | | style="font-size: 16px;font-weight: bold;padding: 0 0 10rpx;"> |
| | | <input v-model="warehouse.warehouseCode" @focus="focu=true" placeholder="请å½å
¥ææ«ç " |
| | | @blur="getMaterialDetails" class="width padding_left25rpx" |
| | | style="font-weight: bolder;margin-left: 30rpx;" /> |
| | | <u-icon v-if="warehouse.warehouseCode && focu" @click="warehouse.warehouseCode=''" |
| | | name="close-circle-fill" color="#848484"></u-icon> |
| | | </u-form-item> |
| | | </u-col> |
| | | <u-col span="2"> |
| | | <u-icon class="iconfont icon-saoma fontSize60rpx"></u-icon> |
| | | </u-col> |
| | | </u-row> |
| | | </u-form> |
| | | <scroll-view scroll-y="true" style="height: 67vh;"> |
| | | <u-swipe-action :show="item.show" :index="eindex" v-for="(item, eindex) in singlist" :key="eindex" |
| | | @click="longpredel" @open="open" @close='close' :options="options"> |
| | | <view class="item u-border-bottom"> |
| | | <!-- æ¤å±wrap卿¤ä¸ºå¿
åçï¼å¦åå¯è½ä¼åºç°æ é¢å®ä½é误 --> |
| | | <view class="title-wrap "> |
| | | <view :key="eindex+'singlist'" :class="item.cardNum?'bd-ffe6c9':item.edit?'clickactive':''" |
| | | class="fontSize30rpx width margin_auto background_fff padding15 border_radius margin_bottom10rpx relative box_sizing transition"> |
| | | <u-row> |
| | | <u-col span="12" class="flex"> |
| | | <view class="flex justify-center align-center" |
| | | style="background-color: #f18202;color: #fff;border-radius: 50vh;width: 20px;height: 20px;"> |
| | | {{eindex+1}} |
| | | </view> |
| | | <view class="color_f18202 padding_left10rpx"> |
| | | {{item.wareMaterialCode}} ({{item.wareMaterialName}}) {{item.barNo}} |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="4"> |
| | | <view class="" style="padding: 10rpx 0 10rpx 45rpx;color: #808080;"> |
| | | 大类ï¼{{item.wareMaterialTypeName}} |
| | | </view> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <view class="" style="padding: 10rpx 0 10rpx 45rpx;color: #808080;"> |
| | | å°ç±»ï¼{{item.wareMaterialSubTypeName}} |
| | | </view> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <view class="" style="padding: 10rpx 0 10rpx 45rpx;color: #808080;"> |
| | | æ°éï¼{{item.quantity}} |
| | | </view> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-swipe-action> |
| | | </scroll-view> |
| | | <u-popup v-model="detailshow" border-radius="14" @close="detailshow=false" mode="bottom" v-if="!printflag"> |
| | | <!-- <view class="pop "> --> |
| | | <h2 class="text_align_center padding_bottom18 padding15">ç©æä¿¡æ¯</h2> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æç¼å·</text> |
| | | <text>{{materlist.wareMaterialCode}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æå¤§ç±»</text> |
| | | <text>{{materlist.wareMaterialTypeName}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æå°ç±»</text> |
| | | <text>{{materlist.wareMaterialSubTypeName}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æè§æ ¼</text> |
| | | <text>{{materlist.specificationModel}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">é¿(mm)</text> |
| | | <text>{{materlist.long}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">宽(mm)</text> |
| | | <text>{{materlist.width}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">é«(mm)</text> |
| | | <text>{{materlist.high}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">éé(kg)</text> |
| | | <text>{{materlist.weight}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">æ¡ç </text> |
| | | <text>{{materlist.barCode}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">åä½</text> |
| | | <text>{{materlist.unit}}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">æ°é</text> |
| | | <text>{{materlist.quantity}}</text> |
| | | </view> |
| | | <!-- </view> --> |
| | | <!-- <view class="margin_top140rpx"> |
| | | <button-modal :subShow='true' garmenTitle='æå°' @submit='init' @reset='rest' /> |
| | | </view> --> |
| | | </u-popup> |
| | | <u-popup v-model="detailshow" border-radius="14" @close="detailshow=false" mode="bottom" v-if="printflag"> |
| | | <!-- <view class="pop "> --> |
| | | <h2 class="text_align_center">ç©ææ ç¾</h2> |
| | | <view class="border margin" style="margin-bottom: 0;"> |
| | | <h2 class="text_align_center padding_bottom18 padding15 margin_top10rpx margin_bottom10rpx"> |
| | | {{materlist.wareMaterialCode}} |
| | | </h2> |
| | | <view class="margin" style="margin-top: 0;"> |
| | | <table border="1" cellpadding='12' width='100%' |
| | | style='border-collapse:collapse;color: #515151;'> |
| | | <tr> |
| | | <th>ç©æå¤§ç±»</th> |
| | | <th>{{materlist.materialTypeName}}</th> |
| | | </tr> |
| | | <tr> |
| | | <th>ç©æå°ç±»</th> |
| | | <th>{{materlist.wareMaterialSubTypeName}}</th> |
| | | </tr> |
| | | <tr> |
| | | <th>ç©æè§æ ¼</th> |
| | | <th>{{materlist.specificationModel}}</th> |
| | | </tr> |
| | | </table> |
| | | <tki-barcode ref="barcode" onval :val="code" :load-make="true" :opations="barOpations" /> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- <view |
| | | class="width fixed bottom140 margin_auto background_fff padding15 border_radius margin_bottom10rpx relative box_sizing transition"> |
| | | <u-upload :action="action" :before-upload="beforeUpload" upload-text="é¢ç¨åç
§ç" :file-list="fileList1" |
| | | @on-success="successPic" @on-remove="remove"> |
| | | </u-upload> |
| | | </view> --> |
| | | |
| | | <view |
| | | class="width fixed bottom140 margin_auto background_fff padding15 border_radius margin_bottom10rpx relative box_sizing transition"> |
| | | <view class="" style="width: 250rpx;height: 250rpx;border: 1px dashed #aaaaaa;position: relative;"> |
| | | <image :src="image" mode="" @click="imgClick(image)" style="width: 100%;height: 100%;"></image> |
| | | </view> |
| | | <u-icon @click="delimage" name='close-circle-fill' color='red' size='60' v-if="image!==''" |
| | | style='position: absolute;left:200rpx;top: 20rpx;'></u-icon> |
| | | <view class="" style="color: #aaaaaa;" v-if="image==''"> |
| | | <u-icon name="plus" @click='upload' size='48' style='position: absolute;left: 120rpx;top: 100rpx;'> |
| | | </u-icon> |
| | | <text class="fontSize32rpx" style="position: absolute;left: 85rpx;top: 160rpx;">éæ©å¾ç</text> |
| | | </view> |
| | | </view> |
| | | <button-modal :issueShow='true' issueTitle="æå°" subTitle='æäº¤' restTiltle='éç½®' @reset='reset' |
| | | @submit='submit' /> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import ButtonModal from '@/components/buttonModal.vue' |
| | | import ModalCode from '@/components/ModalCode.vue' |
| | | import tkiBarcode from '@/components/tki-barcode/tki-barcode' |
| | | import { |
| | | pathToBase64 |
| | | } from 'image-tools' |
| | | import { |
| | | query, |
| | | updateHead |
| | | } from '@/api/borrow/borrow.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | detailshow: false, |
| | | rescode: 0, |
| | | resmessage: "", |
| | | current: 0, //æ»åé»è®¤å¼ |
| | | printNum: "", //æå°æ°é |
| | | focu: false, |
| | | printflag: false, //æå°/ç©æä¿¡æ¯ï¼trueä¸ºç©æä¿¡æ¯ |
| | | fileList: [], |
| | | fileList1: [], //ä¸ä¼ å¾çå表 |
| | | lastlist: [], |
| | | overlist: [], //æ¶è´§å表 |
| | | lacklist: [], //缺æå表 |
| | | flag: true, |
| | | action: this.$myHOST + '/sysFileInfo/uploadImages', |
| | | singlist: [ |
| | | // { |
| | | // "id": 0, |
| | | // "deliverDate": "string", |
| | | // "wareMaterialCode": "string", |
| | | // "name": "string", |
| | | // "describe": "string", |
| | | // "category": "string", |
| | | // "materialTypeId": "string", |
| | | // "materialTypeName": "string", |
| | | // "specificationModel": "string", |
| | | // "long": "string", |
| | | // "width": "string", |
| | | // "high": "string", |
| | | // "weight": "string", |
| | | // "purchaseNo": "string", |
| | | // "barCode": "string", |
| | | // "surplusQuantity": 11, |
| | | // "unit": "string", |
| | | // "basicExpressInfoCode": "string", |
| | | // "basicExpressInfoName": "string", |
| | | // "deliveryQuantity": "string", |
| | | // "goodsQuantity": "string", |
| | | // "deliveryNo": "string" |
| | | // }, |
| | | ], //ç©æè¯¦æ
|
| | | base: '', |
| | | image: '', |
| | | lists: [{ |
| | | name: 'æ¶è´§(50)' |
| | | }, { |
| | | name: '缺æ' |
| | | }], |
| | | list: [], |
| | | arr: [], |
| | | materlist: {}, //ç©æè¯¦æ
æ°æ® |
| | | warehouse: { |
| | | warehouseCode: '' |
| | | }, |
| | | warehouseRules: { |
| | | warehouseCode: [{ |
| | | required: true, |
| | | message: 'é¢ç¨åå·ä¸è½ä¸ºç©º', |
| | | trigger: 'blur' |
| | | }] |
| | | }, |
| | | options: [{ |
| | | text: '详æ
', |
| | | style: { |
| | | backgroundColor: '#fc9f35' |
| | | } |
| | | }], |
| | | operator: '', |
| | | QuantityTotal: '', //éè´§æ»æ° |
| | | uncollectedTotal: '', //æ¶è´§æ»æ° |
| | | lackTotal: '', //ç¼ºè´§æ»æ° |
| | | code: '', |
| | | barOpations: { |
| | | width: 1.8, |
| | | height: 120, |
| | | fontSize: 24, |
| | | fontColor: "#000000", |
| | | displayValue: true, |
| | | textAlign: "center", |
| | | textPosition: "bottom", |
| | | textMargin: 5, |
| | | background: "#FFFFFF", |
| | | margin: 5 |
| | | } |
| | | }; |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode, |
| | | tkiBarcode |
| | | }, |
| | | onReady() { |
| | | this.$refs.warehouseRef.setRules(this.warehouseRules) |
| | | }, |
| | | mounted() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | }, |
| | | methods: { |
| | | init() { |
| | | // this.tomy() |
| | | this.printflag = true |
| | | this.code = this.materlist.wareMaterialCode // çæä¸ç»´ç åäºç»´ç |
| | | }, |
| | | upload() { |
| | | uni.chooseImage({ |
| | | sourceType: ["camera", "album"], |
| | | sizeType: "original", |
| | | count: 1, |
| | | success: (res) => { |
| | | pathToBase64(res.tempFilePaths[0]).then(base64 => { |
| | | this.image = res.tempFilePaths[0] |
| | | this.base=JSON.stringify(base64) |
| | | uni.uploadFile({ |
| | | url: this.action, |
| | | filePath: res.tempFilePaths[0], |
| | | formData: { |
| | | 'images': JSON.stringify(base64) |
| | | }, |
| | | success: (res) => { |
| | | var str = JSON.parse(res.data) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | delimage() { |
| | | this.image = '' |
| | | this.$u.toast('ç§»é¤æå') |
| | | }, |
| | | imgClick(url) { |
| | | if(this.image!==''){ |
| | | var imgArr = []; |
| | | imgArr.push(url) |
| | | //é¢è§å¾ç |
| | | uni.previewImage({ |
| | | urls: imgArr, |
| | | current: imgArr[0] |
| | | }); |
| | | } |
| | | }, |
| | | //ç¼è¾ç¶ææ ·å¼ |
| | | dc(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | //ç©ææ¥è¯¢ |
| | | getMaterialDetails() { |
| | | this.$refs.warehouseRef.validate(valid => { |
| | | if (valid) { |
| | | setTimeout(() => { |
| | | this.focu = false |
| | | if (this.warehouse.warehouseCode !== '') { |
| | | query(this.warehouse.warehouseCode).then((res) => { |
| | | if (res.code == 200) { |
| | | this.singlist = res.data.rows |
| | | if (res.data.rows.length == 0) { |
| | | this.resmessage = 'ææ æ°æ®' |
| | | this.rescode = 400 |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | } else { |
| | | this.resmessage = res.message |
| | | this.rescode = res.code |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }, 200) |
| | | } |
| | | }) |
| | | }, |
| | | //å é¤è¯¦æ
|
| | | longpredel(index, eindex) { |
| | | this.singlist[index].cardNum = true |
| | | this.printflag = false |
| | | if (eindex == 1) { |
| | | this.singlist.splice(index, 1) |
| | | } else { |
| | | this.materlist = this.singlist[index] |
| | | this.detailshow = true |
| | | } |
| | | }, |
| | | //å¡çéä¸ |
| | | click(e) { |
| | | e.cardNum = true |
| | | this.$forceUpdate() |
| | | }, |
| | | // 妿æå¼ä¸ä¸ªçæ¶åï¼ä¸éè¦å
³éå
¶ä»ï¼åæ éå®ç°æ¬æ¹æ³ |
| | | open(index) { |
| | | // å
å°æ£å¨è¢«æä½çswipeActionæ 记为æå¼ç¶æï¼å¦åç±äºpropsçç¹æ§éå¶ï¼ |
| | | // åæ¬ä¸º'false'ï¼å次设置为'false'伿 æ |
| | | this.singlist[index].cardNum = true; |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }) |
| | | this.$forceUpdate() |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | this.singlist[index].cardNum = false; |
| | | this.$forceUpdate() |
| | | }, |
| | | // successPic(data, index, lists, name) { |
| | | // this.fileList.push(data.data) |
| | | // }, |
| | | // //å é¤å¾ç |
| | | // remove(index, lists, name) { |
| | | // this.fileList.splice(index, 1) |
| | | // }, |
| | | //确认æ¶è´§ |
| | | submit() { |
| | | let params = { |
| | | id: this.singlist[0].ordersId, |
| | | // remarks: this.fileList.toString() |
| | | remarks:this.base |
| | | } |
| | | updateHead(params).then((res) => { |
| | | this.rescode = res.code |
| | | this.resmessage = res.message |
| | | this.$refs.resmodal.show = true |
| | | if (res.code == 200) { |
| | | this.reset() |
| | | } |
| | | }) |
| | | }, |
| | | //æ¸
æ¥éä¸ |
| | | reset() { |
| | | this.singlist = [] |
| | | this.warehouse.warehouseCode = '' |
| | | this.fileList = [] |
| | | this.fileList1 = [] |
| | | }, |
| | | //æå° |
| | | onPrint() { |
| | | let _this = this |
| | | if (!uni.getStorageSync("deviceId")) { |
| | | uni.showToast({ |
| | | title: 'è¯·è¿æ¥æå°æº', |
| | | icon: 'error', |
| | | duration: 2000 |
| | | }) |
| | | return |
| | | } |
| | | this.writeBLECharacteristicValue() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="overflow" style="padding-bottom: 150rpx"> |
| | | <cu-custom bgColor="bg-white" :isBack="true"> |
| | | <block slot="backText"> |
| | | </block> |
| | | <block slot="content">容å¨è§£ç»</block> |
| | | </cu-custom> |
| | | <u-form labelPosition="left" label-width="180rpx" :model="warehouse" ref="warehouseRef"> |
| | | <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容å¨ç¼å·:" prop="containerCode" required class="uFormItem"> |
| | | <u-input v-model.trim="warehouse.containerCode" @confirm="getContainerData(1)" |
| | | :disabled="kwbhAllowed" placeholder="请å½å
¥ææ«ç " class="width" :focus="curFoucus"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> |
| | | <!-- <u-row class="border_bottom margin_top10rpx padding_left25rpx" style="background-color: #fff;" |
| | | v-if="warehouse.containerCode"> |
| | | <u-col span="12"> |
| | | <u-form-item label="容å¨è·è¸ªç :" class="uFormItem"> |
| | | <u-input v-model="warehouse.snCode" ref="materialRef" placeholder="请æ«ç å½å
¥" |
| | | @focus="warehouse.snCode = ''" @confirm="getContainerData" |
| | | style="font-weight: bolder;margin-left: 15rpx;" class="width padding_left25rpx"> |
| | | </u-input> |
| | | </u-form-item> |
| | | </u-col> |
| | | </u-row> --> |
| | | </u-form> |
| | | <!-- å表 --> |
| | | <view class="margin_top10rpx"> |
| | | <u-swipe-action :show="item.show" :index="eindex" v-for="(item, eindex) in singlist" :key="eindex" |
| | | :options="options" @click="longpress" @open="open" @close="close" class="margin_bottom10rpx"> |
| | | <view class="item u-border-bottom"> |
| | | <!-- æ¤å±wrap卿¤ä¸ºå¿
åçï¼å¦åå¯è½ä¼åºç°æ é¢å®ä½é误 --> |
| | | <view class="title-wrap"> |
| | | <!-- --> |
| | | <view :class="item.checked ? 'bg_item' : ''" |
| | | class="fontSize32rpx width margin_auto background_fff padding10 relative box_sizing transition"> |
| | | <u-row> |
| | | <u-col span="12" class="flex align-center"> |
| | | <u-checkbox v-model="item.checked" size="50rpx"></u-checkbox> |
| | | <view class="flex justify-center align-center" |
| | | style="background-color: #f18202;color: #fff;border-radius: 50vh;width: 40rpx;height: 40rpx;"> |
| | | {{ eindex + 1 }} |
| | | </view> |
| | | <text class="color_f18202 padding_left10rpx"> |
| | | {{ item.containerCode }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="12"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | 容å¨è·è¸ªç ï¼{{ item.snCode }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | <u-row> |
| | | <u-col span="8"> |
| | | <text class="color_80 padding_left25rpx"> |
| | | åºåç¶æï¼{{ item.stockStatusName }} |
| | | </text> |
| | | </u-col> |
| | | <u-col span="4"> |
| | | <text class="color_80"> |
| | | æ°éï¼{{ item.quantity }} |
| | | </text> |
| | | </u-col> |
| | | </u-row> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-swipe-action> |
| | | </view> |
| | | <modal-code :rescode='rescode' :resmessage='resmessage' ref="resmodal" /> |
| | | <u-popup v-model="detailshow" border-radius="14" @close="detailshow = false" mode="bottom"> |
| | | <!-- <view class="pop "> --> |
| | | <h2 class="text_align_center padding_bottom18 padding15">ç©æä¿¡æ¯</h2> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æç¼å·</text> |
| | | <text>{{ this.materlist.materialCode }}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æåç§°</text> |
| | | <text>{{ this.materlist.materialName }}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æå°ç±»</text> |
| | | <text>{{ this.materlist.materialTypeName }}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">æ¹æ¬¡</text> |
| | | <text>{{ this.materlist.batchNo }}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">ç©æè§æ ¼</text> |
| | | <text>{{ this.materlist.specificationModel }}</text> |
| | | </view> |
| | | <view class="line flex justify-between"> |
| | | <text class="text-gray">æ°é</text> |
| | | <text>{{ this.materlist.unBindQuantity }}</text> |
| | | </view> |
| | | <!-- </view> --> |
| | | <view class="margin_top140rpx"> |
| | | <button-modal :subShow='true' garmenTitle='æå°' @submit='init' @reset='rest' /> |
| | | </view> |
| | | </u-popup> |
| | | <button-modal :empTytowerShow='true' cleaningTitle="éç½®" garmenTitle='容å¨è§£ç»' @submit='submit' @reset='back' /> |
| | | |
| | | </view> |
| | | </template> |
| | | <script> |
| | | import { getContainerMaterial, unbindOrder } from '@/api/putIn/untie.js' |
| | | import BluePrint from '@/pages/print/bluePrint.js' |
| | | import ButtonModal from '../../components/buttonModal.vue' |
| | | import ModalCode from '../../components/ModalCode.vue' |
| | | import { getAttrValue } from '@/utils/tool.js' |
| | | import { getContainDetail, onlyUpdateDutyCycle } from '../../api/putIn/artificial.js' |
| | | import { |
| | | getPutawayStockQuan |
| | | } from '../../api/putaway/putaway.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | | operator: '', |
| | | warehouse: { |
| | | containerCode: '', |
| | | materialCode: '', |
| | | dutyCycle: '', |
| | | gridNumber: 1, |
| | | useNumber: 0, |
| | | exitNumber: 0 |
| | | }, |
| | | singlist: [ |
| | | // {} |
| | | ], //详æ
å表 |
| | | ordersId: 0, //å½å容å¨ç»å®ç䏿¶å |
| | | rescode: 0, |
| | | resmessage: '', |
| | | options: [{ |
| | | text: 'æå°', |
| | | style: { |
| | | backgroundColor: '#fc9f35' |
| | | } |
| | | } |
| | | ], |
| | | detailshow: false, |
| | | materlist: {}, |
| | | curFoucus: true, |
| | | timer: null, |
| | | timerSm: null, |
| | | detailableZb: false, |
| | | detailable: false, |
| | | gridFocus: false, |
| | | gridable: true, |
| | | kwbhAllowed: false |
| | | } |
| | | |
| | | }, |
| | | components: { |
| | | ButtonModal, |
| | | ModalCode |
| | | }, |
| | | onLoad() { |
| | | this.operator = JSON.parse(uni.getStorageSync('userInfo')).name |
| | | }, |
| | | watch: { |
| | | containerCode(val) { |
| | | if (!val) { |
| | | this.detailable = false; |
| | | this.detailableZb = false; |
| | | this.warehouse.exitNumber = 0 |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // 妿æå¼ä¸ä¸ªçæ¶åï¼ä¸éè¦å
³éå
¶ä»ï¼åæ éå®ç°æ¬æ¹æ³ |
| | | open(index) { |
| | | // å
å°æ£å¨è¢«æä½çswipeActionæ 记为æå¼ç¶æï¼å¦åç±äºpropsçç¹æ§éå¶ï¼ |
| | | // åæ¬ä¸º'false'ï¼å次设置为'false'伿 æ |
| | | this.singlist[index].show = true; |
| | | this.singlist.map((val, idx) => { |
| | | if (index != idx) this.singlist[idx].show = false; |
| | | }) |
| | | }, |
| | | close(index) { |
| | | this.singlist[index].show = false; |
| | | }, |
| | | //ç©æè¯¦æ
|
| | | longpress(index, eindex) { |
| | | this.materlist = this.singlist[index] |
| | | this.detailshow = true |
| | | }, |
| | | //æ ç¾éæ°æå° |
| | | init() { |
| | | const arr = ['materialCode', 'unBindQuantity']; |
| | | const arrzw = ['ç©æç¼å·', 'æ¬æ¬¡è§£ç»æ°é'] |
| | | let isAllow = '' |
| | | Object.keys(this.materlist).forEach(item => { |
| | | if (arr.includes(item)) { |
| | | if (!this.materlist[item]) { |
| | | isAllow = arr.indexOf(item) |
| | | // this.rescode = 400 |
| | | // this.resmessage = `${arrzw[isAllow]}为空ï¼ä¸è½ç»§ç»æå°` |
| | | // this.resmessage = `${item}为空ï¼ä¸è½ç»§ç»æå°` |
| | | // this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | } |
| | | }) |
| | | if (isAllow != '') { |
| | | this.detailshow = false |
| | | this.rescode = 400 |
| | | this.resmessage = `${arrzw[isAllow]}为空ï¼ä¸è½ç»§ç»æå°` |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | if (this.materlist.unBindQuantity <= 0 || this.materlist.unBindQuantity > this.materlist.quantity) { |
| | | this.detailshow = false |
| | | this.rescode = 400 |
| | | this.resmessage = `æ°éä¸ç¬¦åè§èï¼ä¸è½ç»§ç»æå°` |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | if (!this.materlist.specificationModel) { |
| | | this.materlist.specificationModel = '' |
| | | } |
| | | let ptintContext = [ |
| | | { type: 'text', x: 0, y: 0, text: '', size: 2, rotate: 0, bold: 0, underline: false, reverse: false }, |
| | | { type: 'text', x: 0, y: 0, text: '', size: 2, rotate: 0, bold: 0, underline: false, reverse: false }, |
| | | { type: 'text', x: 0, y: 0, text: '', size: 2, rotate: 0, bold: 0, underline: false, reverse: false }, |
| | | /* 以ä¸ç©ºæ°æ®ï¼ä¸ºé²æ¢ä¸¢å
æ¶æå°ä¸æ£å¸¸ */ |
| | | { type: 'line', x1: 3, y1: 3, x2: 565, y2: 3, width: 2 }, |
| | | { type: 'line', x1: 3, y1: 3, x2: 3, y2: 345, width: 2 }, |
| | | { type: 'line', x1: 3, y1: 345, x2: 565, y2: 345, width: 2 }, |
| | | { type: 'line', x1: 565, y1: 345, x2: 565, y2: 3, width: 2 }, |
| | | { type: 'text', x: 80, y: 15, text: 'ç§é汽车è£
å¤(æ¦æ±)æéå
¬å¸', size: 3, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | { type: 'line', x1: 3, y1: 60, x2: 565, y2: 60, width: 2 }, |
| | | { type: 'text', x: 10, y: 75, text: `ç©æç¼å·: ${this.materlist.materialCode}`, size: 2, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | { type: 'line', x1: 3, y1: 110, x2: 380, y2: 110, width: 2 }, |
| | | { type: 'text', x: 10, y: 125, text: `ç©æåç§°: ${this.materlist.materialTypeName || ''}`, size: 2, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | { type: 'line', x1: 3, y1: 160, x2: 380, y2: 160, width: 2 }, |
| | | { type: 'text', x: 10, y: 175, text: `æ¹æ¬¡: ${this.materlist.batchNo}`, size: 2, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | { type: 'line', x1: 3, y1: 210, x2: 565, y2: 210, width: 2 }, |
| | | { type: 'line', x1: 380, y1: 60, x2: 380, y2: 210, width: 2 }, |
| | | { type: 'qr', x: 410, y: 72, text: `PARTS NUMBER: ${this.materlist.materialCode},SAP: ${this.materlist.sap_Location || ''},BOXNUM: ${this.materlist.boxNo || ''},LOT NO: ${this.materlist.batchNo},QUANTITY: ${this.materlist.unBindQuantity}`, width: 3, level: 1 }, |
| | | { type: 'text', x: 10, y: 225, text: `è§æ ¼åå·: ${this.materlist.specificationModel.length > 32 ? this.materlist.specificationModel.substr(0, 32) : this.materlist.specificationModel}`, size: 2, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | { type: 'line', x1: 3, y1: 260, x2: 565, y2: 260, width: 2 }, |
| | | { type: 'text', x: 120, y: 290, text: 'MAKINO J(CHINA) CO.LTD', size: 3, rotate: 0, bold: 1, underline: false, reverse: false }, |
| | | ] |
| | | console.log(ptintContext) |
| | | BluePrint.print(this.$store, ptintContext).then(() => { |
| | | // å
³éå¼¹æ¡ å¹¶æ¢å¤æ»å¨å |
| | | this.detailshow = false |
| | | this.addForm.code = this.materlist.materlist; |
| | | this.addForm.name = this.materlist.materialName; |
| | | this.addForm.batchNo = this.materlist.batchNo; |
| | | this.addForm.specificationModel = this.materlist.specificationModel; |
| | | addPrintRecord(this.addForm).then(res => { |
| | | console.log(res); |
| | | }) |
| | | uni.showToast({ |
| | | title: 'æå°æå', |
| | | duration: 2000 |
| | | }) |
| | | }).catch((err) => { |
| | | // uni.showToast({ |
| | | // title:'æå°å¤±è´¥', |
| | | // duration: 2000 |
| | | // }) |
| | | }) |
| | | }, |
| | | materialBlur() { |
| | | clearTimeout(this.timerSm) |
| | | this.timerSm = null |
| | | if (this.warehouse.materialCode == '') { |
| | | return |
| | | } |
| | | |
| | | this.timer = setTimeout(() => { //夿¬¡è§¦åbug å»¶è¿bug |
| | | //夿å½åç©ææ¯å¦å¨çç¹åè¡¨ä¸ |
| | | const index = this.singlist.findIndex(item => item.materialCode == this.warehouse.materialCode && item.batchNo == lotNo); |
| | | if (index > -1) { |
| | | this.singlist[index].checked = 1 |
| | | this.singlist.unshift(...this.singlist.splice(index, 1)) |
| | | return |
| | | } else { |
| | | clearTimeout(this.timer) |
| | | this.timer = null |
| | | this.containerBlur() |
| | | } |
| | | }, 100) |
| | | }, |
| | | containerBlur() { |
| | | if (this.warehouse.containerCode == '' || this.warehouse.materialCode == '') { |
| | | return |
| | | } |
| | | getContainerMaterial(this.warehouse).then(res => { |
| | | if (res.data == null || res.data.length == 0) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'ææ æ°æ®' |
| | | this.$refs.resmodal.show = true |
| | | return; |
| | | } |
| | | this.warehouse.dutyCycle = res.data[0].dutyCycle || 0; |
| | | //ç»ææçææä¸ä¸ªæªéä¸çç¶æ |
| | | res.data.map(item => { |
| | | item.checked = true, |
| | | item.unBindQuantity = '' |
| | | }) |
| | | this.singlist.unshift(...res.data) |
| | | this.ordersId = res.data[0].ordersId |
| | | }) |
| | | }, |
| | | //è§£ç»æ°é失ç¦äºä»¶ |
| | | changeNum(option) { |
| | | //夿æ¯å¦å¾éï¼å¦æå¾éäºï¼å°±è¦å¯¹æ°éæ ¡éª |
| | | if (!option.checked) { |
| | | return |
| | | } |
| | | if (option.unBindQuantity == '') { |
| | | this.rescode = 400 |
| | | this.resmessage = 'è§£ç»æ°éä¸è½ä¸ºç©º' |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | |
| | | if (option.unBindQuantity <= 0) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'è§£ç»æ°éå¿
须大äº0' |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | if (option.unBindQuantity > option.quantity) { |
| | | this.rescode = 400 |
| | | this.resmessage = 'è§£ç»æ°éä¸è½å¤§äºåºåæ°é' |
| | | this.$refs.resmodal.show = true |
| | | } |
| | | if (this.detailable) { |
| | | let filterHas = this.singlist.filter(item => item.unBindQuantity == Number(item.quantity)); |
| | | if (filterHas.length > 0) { |
| | | this.warehouse.exitNumber = this.warehouse.useNumber - filterHas.length |
| | | } |
| | | } |
| | | }, |
| | | //ç¡®è®¤è§£ç» |
| | | submit() { |
| | | const filterArr = this.singlist.filter(item => item.checked); |
| | | if (filterArr.length <= 0) { |
| | | this.rescode = 400 |
| | | this.resmessage = '请æ«ç æéæ©è§£ç»ç容å¨ï¼' |
| | | this.$refs.resmodal.show = true |
| | | return |
| | | } |
| | | //夿éä¸çé颿¯å¦åå¨è§£ç»çæ°éä¸ç¬¦åè§èç |
| | | // const index = filterArr.findIndex(item => item.unBindQuantity == '' || item.unBindQuantity <= 0 || item.unBindQuantity > item.quantity) |
| | | // if (index > -1) { |
| | | // this.rescode = 400 |
| | | // this.resmessage = 'è§£ç»æ°éä¸ç¬¦åè¦æ±' |
| | | // this.$refs.resmodal.show = true |
| | | // return |
| | | // } |
| | | const warehousOrderDetails = filterArr.reduce((curr, item) => { |
| | | curr.push({ |
| | | ...item |
| | | }) |
| | | return curr; |
| | | }, []) |
| | | //Flag请æ±åæ° æ è®° |
| | | /// 1ï¼ç©æç»ç |
| | | /// 2ï¼å®¹å¨ç»ç |
| | | /// 3ï¼ç©æè§£ç» |
| | | /// 4ï¼å®¹å¨è§£ç» |
| | | const params = { |
| | | flag: 4, |
| | | containerCode: this.warehouse.containerCode, |
| | | orderDetails: warehousOrderDetails |
| | | } |
| | | uni.showModal({ |
| | | title: 'è§£ç»', |
| | | content: 'æ¯å¦ç¡®è®¤è§£ç»ï¼', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | unbindOrder(params).then(res => { |
| | | this.rescode = 200 |
| | | this.$refs.resmodal.show = true; |
| | | this.resmessage = 'è§£ç»æå' |
| | | this.back(); |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | rest() { |
| | | }, |
| | | //è·å容å¨çä¿¡æ¯ |
| | | getContainerData(param) { |
| | | if (this.warehouse.containerCode == '') { |
| | | uni.showToast({ |
| | | title: '请æ«å®¹å¨ç¼å·', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | getPutawayStockQuan({ |
| | | 'containerCode': this.warehouse.containerCode, |
| | | 'SNCode': this.warehouse.snCode |
| | | }).then(res => { |
| | | // //debugger |
| | | if (!res.result) { |
| | | uni.showToast({ |
| | | title: 'æ°æ®ä¸åå¨', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | //debugger |
| | | const result = res.result.details; |
| | | if (Array.isArray(result) && result.length == 0) { |
| | | uni.showToast({ |
| | | title: 'æ°æ®ä¸åå¨', |
| | | icon: 'none', |
| | | duration: 2000 |
| | | }); |
| | | return |
| | | } |
| | | this.singlist = result; |
| | | }) |
| | | }, |
| | | //å
¨é¨åæ¶ |
| | | back() { |
| | | this.ordersId = 0; |
| | | this.singlist = []; |
| | | this.$refs.warehouseRef.resetFields(); |
| | | this.warehouse.containerCode = '' |
| | | } |
| | | }, |
| | | unmounted() { |
| | | if (this.timer) { |
| | | clearTimeout(this.timer) |
| | | this.timer = null |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | .content { |
| | | height: 500rpx; |
| | | overflow-y: scroll; |
| | | width: 100%; |
| | | padding: 15rpx; |
| | | box-sizing: border-box; |
| | | |
| | | .content-item { |
| | | padding: 15rpx; |
| | | background-color: #fff; |
| | | margin-bottom: 15rpx; |
| | | border-radius: 8rpx; |
| | | font-size: 32rpx; |
| | | } |
| | | } |
| | | |
| | | .bg_item { |
| | | background: #FFEBCD !important; |
| | | } |
| | | </style> |
LA24030_LuLiPackageLine_Pda/pages/callTray/callTray2.vue
LA24030_LuLiPackageLine_Pda/pages/check/check/check.vue
LA24030_LuLiPackageLine_Pda/pages/check/check/index.vue
LA24030_LuLiPackageLine_Pda/pages/check/index.vue
LA24030_LuLiPackageLine_Pda/pages/check/index2.vue
LA24030_LuLiPackageLine_Pda/pages/check/out.vue
LA24030_LuLiPackageLine_Pda/pages/check/return.vue
LA24030_LuLiPackageLine_Pda/pages/check/square.vue
LA24030_LuLiPackageLine_Pda/pages/crossDock/crossDock.vue
LA24030_LuLiPackageLine_Pda/pages/deliver/deliver.vue
LA24030_LuLiPackageLine_Pda/pages/deliver/deliverDo.vue
LA24030_LuLiPackageLine_Pda/pages/expressmail/expressmail.vue
LA24030_LuLiPackageLine_Pda/pages/hander/handerIn.vue
LA24030_LuLiPackageLine_Pda/pages/hander/handerOut.vue
LA24030_LuLiPackageLine_Pda/pages/index/index copy.vue
LA24030_LuLiPackageLine_Pda/pages/index/index.vue
LA24030_LuLiPackageLine_Pda/pages/login/login.vue
LA24030_LuLiPackageLine_Pda/pages/mark/mark.vue
LA24030_LuLiPackageLine_Pda/pages/old/index.vue
LA24030_LuLiPackageLine_Pda/pages/old/putIn.vue
LA24030_LuLiPackageLine_Pda/pages/old/putOut.vue
LA24030_LuLiPackageLine_Pda/pages/print/bluePrint.js
LA24030_LuLiPackageLine_Pda/pages/print/bluetoothConnection.vue
LA24030_LuLiPackageLine_Pda/pages/print/deliver.vue
LA24030_LuLiPackageLine_Pda/pages/print/gauge.vue
LA24030_LuLiPackageLine_Pda/pages/print/material.vue
LA24030_LuLiPackageLine_Pda/pages/print/materialInfo.vue
LA24030_LuLiPackageLine_Pda/pages/print/wms copy.vue
LA24030_LuLiPackageLine_Pda/pages/print/wms.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/artificial/artificial.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/empty/empty.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/material/material.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/plane/plane.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/putIn.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/three/three.vue
LA24030_LuLiPackageLine_Pda/pages/putIn/untie/untie.vue
LA24030_LuLiPackageLine_Pda/pages/putOut/putOut.vue
LA24030_LuLiPackageLine_Pda/pages/putaway/putaway.vue
LA24030_LuLiPackageLine_Pda/pages/receive/receive.vue
LA24030_LuLiPackageLine_Pda/pages/recommend/recommend.vue
LA24030_LuLiPackageLine_Pda/pages/resume/pickResume.vue
LA24030_LuLiPackageLine_Pda/pages/resume/sortResume.vue
LA24030_LuLiPackageLine_Pda/pages/resume/yukuResume.vue
LA24030_LuLiPackageLine_Pda/pages/scrap/photo.vue
LA24030_LuLiPackageLine_Pda/pages/scrap/scrap.vue
LA24030_LuLiPackageLine_Pda/pages/sort/index.vue
LA24030_LuLiPackageLine_Pda/pages/sort/kittingSort.vue
LA24030_LuLiPackageLine_Pda/pages/sort/pickRecord.vue
LA24030_LuLiPackageLine_Pda/pages/sort/pickorder.vue
LA24030_LuLiPackageLine_Pda/pages/sort/propComp.vue
LA24030_LuLiPackageLine_Pda/pages/sort/return.vue
LA24030_LuLiPackageLine_Pda/pages/sort/search.vue
LA24030_LuLiPackageLine_Pda/pages/sort/sort.vue
LA24030_LuLiPackageLine_Pda/pages/sort/sort2.vue
LA24030_LuLiPackageLine_Pda/pages/sort/squareSort2.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/former/former.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/give/give.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/noOrder/noOrder.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/order/order.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/orderpiece/doYueku.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/orderpiece/orderpiece.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/orderpiece/orderpiecePo.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/orderpiece/poYueku.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/return/return.vue
LA24030_LuLiPackageLine_Pda/pages/takeMaterial/takeMaterial.vue
LA24030_LuLiPackageLine_Pda/pages/unpack/plane/plane.vue
LA24030_LuLiPackageLine_Pda/pages/unpack/unpack.vue
LA24030_LuLiPackageLine_Pda/pages/untie/checkAllMove.vue
LA24030_LuLiPackageLine_Pda/pages/untie/localBind.vue
LA24030_LuLiPackageLine_Pda/pages/untie/localUnBind.vue
LA24030_LuLiPackageLine_Pda/pages/untie/outbound.vue
LA24030_LuLiPackageLine_Pda/pages/untie/untie.vue
LA24030_LuLiPackageLine_Pda/pages/untie/untie2.vue
LA24030_LuLiPackageLine_Pda/pages/untie/untieForMove.vue
LA24030_LuLiPackageLine_Pda/pages/wareTool/borrow.vue
LA24030_LuLiPackageLine_Pda/pages/wareTool/index.vue
LA24030_LuLiPackageLine_Pda/static/index/1.png
LA24030_LuLiPackageLine_Pda/static/index/artificial.png
LA24030_LuLiPackageLine_Pda/static/index/borrow.png
LA24030_LuLiPackageLine_Pda/static/index/callTray.png
LA24030_LuLiPackageLine_Pda/static/index/cancel.png
LA24030_LuLiPackageLine_Pda/static/index/free.png
LA24030_LuLiPackageLine_Pda/static/index/material.png
LA24030_LuLiPackageLine_Pda/static/index/ping.png
LA24030_LuLiPackageLine_Pda/static/index/putIn.png
LA24030_LuLiPackageLine_Pda/static/index/receive.png
LA24030_LuLiPackageLine_Pda/static/index/sort.png
LA24030_LuLiPackageLine_Pda/static/index/takeMaterial.png
LA24030_LuLiPackageLine_Pda/static/index/tou.png
LA24030_LuLiPackageLine_Pda/static/index/untie.png
LA24030_LuLiPackageLine_Pda/static/index/ware.png
LA24030_LuLiPackageLine_Pda/static/lanya.png
LA24030_LuLiPackageLine_Pda/static/logo.jpg
LA24030_LuLiPackageLine_Pda/static/modal/error.png
LA24030_LuLiPackageLine_Pda/static/modal/iconCk.png
LA24030_LuLiPackageLine_Pda/static/modal/success.png
LA24030_LuLiPackageLine_Pda/store/index.js
LA24030_LuLiPackageLine_Pda/store/modules/print.js
LA24030_LuLiPackageLine_Pda/store/modules/system.js
LA24030_LuLiPackageLine_Pda/store/modules/user.js
LA24030_LuLiPackageLine_Pda/store/node_modules.rar
LA24030_LuLiPackageLine_Pda/styles/iconfont/iconfont.css
LA24030_LuLiPackageLine_Pda/styles/iconfont/iconfont.js
LA24030_LuLiPackageLine_Pda/styles/iconfont/iconfont.json
LA24030_LuLiPackageLine_Pda/styles/iconfont/svg.js
LA24030_LuLiPackageLine_Pda/styles/index.css
LA24030_LuLiPackageLine_Pda/styles/main.css
LA24030_LuLiPackageLine_Pda/uni.scss
LA24030_LuLiPackageLine_Pda/utils/compress.js
LA24030_LuLiPackageLine_Pda/utils/dateTime.js
LA24030_LuLiPackageLine_Pda/utils/md5.js
LA24030_LuLiPackageLine_Pda/utils/mixin.js
LA24030_LuLiPackageLine_Pda/utils/print/Blue.js
LA24030_LuLiPackageLine_Pda/utils/print/bluetooth.js
LA24030_LuLiPackageLine_Pda/utils/print/bluetoothPrinter/bluetoothPrinter.vue
LA24030_LuLiPackageLine_Pda/utils/print/commands.js
LA24030_LuLiPackageLine_Pda/utils/print/gbk.js
LA24030_LuLiPackageLine_Pda/utils/print/printerjobs.js
LA24030_LuLiPackageLine_Pda/utils/print/printerutil.js
LA24030_LuLiPackageLine_Pda/utils/print/util.js
LA24030_LuLiPackageLine_Pda/utils/print/weapp.qrcode.esm.js
LA24030_LuLiPackageLine_Pda/utils/request.js
LA24030_LuLiPackageLine_Pda/utils/tool.js
LA24030_LuLiPackageLine_Pda/utils/utf8ByteToUnicodeStr.js |