diff --git a/.gitignore b/.gitignore index 59c91545..e9286175 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,4 @@ -###################################################################### -# Build Tools - -/unpackage/* -/node_modules/* - -###################################################################### -# Development Tools - -/.idea/* -/.vscode/* -/.hbuilderx/* - -package-lock.json -yarn.lock +/.gitignore +/node_modules +/unpackage diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 00000000..582561b0 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // 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" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue index 93318b58..fce6d215 100644 --- a/App.vue +++ b/App.vue @@ -1,34 +1,37 @@ - diff --git a/LICENSE b/LICENSE index 458a14c9..77f865db 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 闻荫 +Copyright (c) 2018 DCloud Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md new file mode 100644 index 00000000..164ea359 --- /dev/null +++ b/README.md @@ -0,0 +1,129 @@ +# hello-uniapp + +`uni-app`框架示例,一套代码,同时发行到iOS、Android、H5、小程序等多个平台,请使用手机在下方扫码快速体验`uni-app`的强大功能。[官方文档](https://uniapp.dcloud.net.cn/) + +## 快速上手 +hello-uniapp 示例工程可以通过两种方式创建, 一种是 HBuilderX, 配套 IDE,集成开发;另一种是 CLI 创建;推荐前者。 +### 通过 HBuilderX 可视化界面创建(推荐) + +可视化的方式比较简单,HBuilderX内置相关环境,开箱即用,无需配置nodejs。 + +开始之前,开发者需先下载安装如下工具: + +- HBuilderX:[官方IDE下载地址](https://www.dcloud.io/hbuilderx.html) + +HBuilderX是通用的前端开发工具,但为`uni-app`做了特别强化,请下载App开发版。 + +由于截图在 github 不便浏览,参见官方文档 [HBuilderX 可视化界面创建](https://uniapp.dcloud.net.cn/quickstart?id=_1-%e9%80%9a%e8%bf%87-hbuilderx-%e5%8f%af%e8%a7%86%e5%8c%96%e7%95%8c%e9%9d%a2) + +### 通过 vue-cli 创建 + +``` +npm install -g @vue/cli +``` + +#### 创建uni-app + +**使用正式版**(对应HBuilderX最新正式版) + +``` +vue create -p dcloudio/uni-preset-vue my-project +``` + +**使用alpha版**(对应HBuilderX最新alpha版) + +``` +vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project +``` + +此时,会提示选择项目模板,选择 `hello uni-app` 项目模板,如下所示: + +
+ +
+ +创建好后,进入项目目录 +``` +cd my-project +``` + +执行该命令运行到 h5 端 +``` +npm run dev:h5 +``` + +欢迎提 issues,推荐到[官方社区](https://ask.dcloud.net.cn/explore/)提问。 + +## 扫码体验 + +
+

一套代码编到10个平台,这不是梦想。眼见为实,扫描10个二维码,亲自体验最全面的跨平台效果!

+
+ +
+ +
+ Android版 +
+ +
+ +
+ iOS版 +
+ +
+ +
+ H5版 +
+ +
+ 微信小程序版 +
+ +
+ 支付宝小程序版 +
+
+
+ +
+ 百度小程序版 +
+ +
+ +
+ 字节跳动小程序版 +
+ +
+ +
+ QQ小程序版 +
+ +
+ +
+ 快应用 +
+ +
+ +
+ 360小程序 +
+
+

+ 注:某些平台不能提交简单demo,故补充了一些其他功能;hello uni-app示例代码可从[github](https://github.com/dcloudio/hello-uniapp)获取
+ 快应用仅支持 vivo 、oppo、华为
+ 360小程序仅 windows平台支持,需要在360浏览器中打开
+

+
+ +`uni-app`官网文档详见[https://uniapp.dcloud.io](https://uniapp.dcloud.io) + +更多uni-app的模板、示例详见[插件市场](https://ext.dcloud.net.cn/) + diff --git a/api/httpRequest.js b/api/httpRequest.js new file mode 100644 index 00000000..94677b47 --- /dev/null +++ b/api/httpRequest.js @@ -0,0 +1,40 @@ + +function service(options = {}) { + let contentType = localStorage.token_type ? "application/json" : "application/x-www-form-urlencoded"; + // contentType ="application/x-www-form-urlencoded"; + contentType ="application/json"; + // localStorage.setItem('token', "4810b80d-f047-4915-821d-d2baf661bb91") + let token = localStorage.getItem("token") + options.header = { + "content-type": contentType, + "Authorization": "Bearer "+token + // 'withCredentials': true, + // 'Blade-Auth':'bearer '+store.state.token, + // 'token_type': localStorage.token_type + }; + return new Promise((resolve, reject) => { + options.success = (res) => { + if (res ) { + if(res.statusCode == 200){ + if(res.data.code==0){ + resolve(res.data); + }else { + reject(options.url + res.data.msg) + } + + }else { + reject(options.url + res.data.msg) + } + + } else { + reject(options.url + res.data.msg) + } + }; + options.fail = (err) => { + reject(err); + }; + uni.request(options); + }); + } + + export default service; diff --git a/api/httpRequest2.js b/api/httpRequest2.js new file mode 100644 index 00000000..aaeeab91 --- /dev/null +++ b/api/httpRequest2.js @@ -0,0 +1,108 @@ +import store from '@/store' +// import config from '@/config' +import errorCode from '@/common/utils/errorCode' +import { toast, showConfirm, tansParams } from '@/common/utils/common' +import storage from '@/common/utils/storage' + +let timeout = 10000 +// const baseUrl = config.baseUrl + config.baseApi; + +const request = config => { + let requestUrl=""; + if(getApp()!=undefined){ + requestUrl = getApp().globalData.request_url + } + // 是否需要设置 token + const isToken = (config.headers || {}).isToken === false + config.header = config.header || {} + if (storage.getStorage(storage.constant.token) && !isToken) { + config.header['Authorization'] = 'Bearer ' + storage.getStorage(storage.constant.token) + } + // 设置租户 TODO 芋艿:强制 1 先 + // config.header['tenant-id'] = storage.getStorage(storage.constant.tenantId); + config.header['tenant-id'] = getApp().globalData.tenantId + // get请求映射params参数 + if (config.params) { + let url = config.url + '?' + tansParams(config.params) + url = url.slice(0, -1) + config.url = url + } + return new Promise((resolve, reject) => { + uni.request({ + method: config.method || 'get', + timeout: config.timeout || timeout, + // url: config.baseUrl || baseUrl + config.url, + url:requestUrl+ config.url, + data: config.data, + header: config.header, + dataType: 'json' + }).then(response => { + const res=response + var statusCode =response.statusCode + //请求成功 + if(statusCode==200){ + if(res.data.code==401||res.data.code==500){ + reject(res.data.msg) + }else { + resolve(res.data) + } + + }else if(statusCode==404){ + //请求失败 + if(res.data.error){ + reject(res.data.error) + }else { + reject(res.errMsg) + } + } + + // const code = res.data.code || 200 + // const msg = errorCode[code] || res.data.msg || errorCode['default'] + + // if(code==200){ + // if(res.data.status==404){ + // // toast(msg) + // reject("404") + // }else {} + // } + + // if (code === 401) { + // showConfirm('登录状态已过期,您可以继续留在该页面,或者重新登录?').then(res => { + // if (res.confirm) { + // store.dispatch('LogOut').then(res => { + // uni.reLaunch({ url: '/pages/login' }) + // }) + // } + // }) + // reject('无效的会话,或者会话已过期,请重新登录。') + // } else if (code === 500) { + // toast(msg) + // reject('500') + // } else if (code !== 200) { + // toast(msg) + // reject(code) + // }else if(code == 200){ + // if(res.data.status==404){ + // // toast(msg) + // reject("404") + // return; + // } + // resolve(res.data) + // } + }) + .catch(error => { + var message = error.errMsg + if (message === 'Network Error') { + message = '后端接口连接异常' + } else if (message.includes('timeout')) { + message = '系统接口请求超时' + } else if (message.includes('Request failed with status code')) { + message = '系统接口' + message.substr(message.length - 3) + '异常' + } + toast(message) + reject(error) + }) + }) +} + +export default request diff --git a/api/index.js b/api/index.js new file mode 100644 index 00000000..0552cfaa --- /dev/null +++ b/api/index.js @@ -0,0 +1,1228 @@ +import request from '@/common/request.js' +import promise from '@/common/promise.js' + +// let printUrl = getApp().globalData.print_url; //打印 +let printUrl = "" //打印 +let devUrl = getApp().globalData.dev_url; //数据请求 + +export function getlogin(params) { // + return request(devUrl + "/api/pda/account/login", { // + data: params, + method: "post" + }) +} + +export function getMenus() { // + return promise(devUrl + "/api/pda/account/menus", { // + data: {}, + method: "get" + }) +} + +export function getUserInfo() { + return request(devUrl + "/api/pda/account/workgroups", { // + data: {}, + method: "get" + }) +} + +export function getUserInfoAsync() { + return promise(devUrl + "/api/pda/account/workgroups", { // + data: {}, + method: "get" + }) +} + + +export function getWorkgroups() { + return promise(devUrl + "/api/pda/account/workgroups", { // + data: {}, + method: "get" + }) +} + +//登出 +export function logout() { + return request(devUrl + "/api/pda/account/logout", { + method: "post" + }); +} + +// export function logout() {// +// return request("/prod/api/pda/account/logout", { +// data: {}, +// method: "post" +// }) +// } + + + + + +//按用户查询菜单列表 +export function menus() { + return request( + devUrl + "/api/pda/account/menus", { + method: 'get', + data: {} + }) +} + +//获取任务数量 +export function getJobCount() { + return request( + devUrl + "/api/pda/job/count", { + method: 'get', + data: {} + }) +} + +//获取任务数量 +export function getJobCountAsync(isToday) { + return promise( + devUrl + "/api/pda/job/count?isToday=" + isToday, { + method: 'get', + data: {} + }) +} + +//按用户查询用户信息 +export function profile(params) { // + return request(devUrl + "/api/pda/account/profile", { // + data: params, + method: "get" + }) +} +//修改用户密码 +export function changePassword(params) { // + return request(devUrl + "/api/pda/account/change-password", { // + data: params, + method: "post" + }) +} +//通用 +//查询库存明细 +export const balances = (params) => request( + devUrl + "/api/pda/inventory/balances", { + method: 'get', + data: params + }); + +//通用 +//查询库存明细 +export const issueBalances = (params) => request( + devUrl + "/api/pda/inventory/balances/by-issue", { + method: 'post', + data: params + }); + +//异步的库存查询方法 +export const issueBalancesAsync = (params) => promise( + devUrl + "/api/pda/inventory/balances/by-issue", { + method: 'post', + data: params + }); + + +//通用 +//查询库存明细 +export const getBalances = (params) => request( + devUrl + "/api/pda/inventory/balances/get-list-by-balance-list-input", { + method: 'post', + data: params + }); + +//异步的库存查询方法 +export const getBalancesAsync = (params) => promise( + devUrl + "/api/pda/inventory/balances/get-list-by-balance-list-input", { + method: 'post', + data: params + }); + + +//根据零件、箱码、托码、批次、库位类型、库存状态查询库存 +export const getBalancesByFilter = (params) => request( + devUrl + "/api/pda/inventory/balances/by-balances-request-many-parameter", { + method: 'post', + data: params + }); + +//根据零件、箱码、托码、批次、库位类型、库存状态查询库存 +export const getBalancesByFilterAsync = (params) => promise( + devUrl + "/api/pda/inventory/balances/by-balances-request-many-parameter", { + method: 'post', + data: params + }); + +//查询是否有预计入和预计出的占用 +export const getBalancesExpectByFilter = (params) => request( + devUrl + "/api/pda/inventory/balances/by-balances-request-many-parameter-not-in-expect-out", { + method: 'post', + data: params + }); + +// + +//根据库位查询库存 +export const getBalancesByStatus = (params) => request( + devUrl + "/api/pda/inventory/balances/get-by-location-type-and-inventory-status", { + method: 'post', + data: params + }); + +//根据库位和零件号查询库存 +export const getBalancesByLocationAndItem = (params) => request( + devUrl + "/api/pda/inventory/balances/get-by-location-and-item?locationCode=" + params.locationCode + + "&itemCode=" + params.itemCode, { + method: 'get', + data: params + }); + + +//根据库位和零件号查询库存 +export const getBalancesByLocationAndItemAsync = (params) => promise( + devUrl + "/api/pda/inventory/balances/get-by-location-and-item?locationCode=" + params.locationCode + + "&itemCode=" + params.itemCode, { + method: 'get', + data: params + }); + +//查询线边库存 +export const getWipListAsync = (params) => promise( + devUrl + "/api/pda/inventory/balances/get-wip-list?itemCode=" + params.itemCode + "&locationCode=" + params + .locationCode, { + method: 'get', + data: params + }); + + +//查询库存汇总 +export const summary = (params) => request( + devUrl + "/api/pda/inventory/balances/summary", { + method: 'get', + data: params + }); + +//零件 +//查询零件信息 +export const getitems = (code) => request( + devUrl + "/api/pda/item/" + code, { + method: 'get', + data: code + }); + +//根据库位查询零件 +export const getItemsByLocation = (params) => promise( + devUrl + "/api/pda/inventory/balances/get-item-by-location", { + method: 'get', + data: params + }); + +//查询已占用库存 +export const expectIn = (params) => request( + devUrl + "/api/pda/inventory/expect-in", { + method: 'get', + data: params + }); + +//根据code获取生产线 +export const getprodlineitem = (code) => request( + devUrl + "/api/pda/production-line/by-code?code=" + code, { + method: 'get', + data: {} + }); + +//异步查询生产线 +export const getprodlineitemAsync = (code) => promise( + devUrl + "/api/pda/production-line/by-code?code=" + code, { + method: 'get', + data: {} + }); + +//查询收货任务列表 +export const getReceiptJobList = (params) => request( + devUrl + `/api/pda/job/purchase-receipt/list`, { + method: 'get', + data: params + }); + +//根据number 获取收货任务列表 +export const getReceiptJobByNumber = (params) => request( + devUrl + "/api/pda/job/purchase-receipt/by-number/" + params.number + "?isToday=" + params.isToday, { + data: {}, + method: "get" + }); + +//根据Asn number 获取收货任务列表 +export const getReceiptJobByAsnNumber = (params) => request( + devUrl + "/api/pda/job/purchase-receipt/list/by-asn/asnNumber=" + params.number + "&isToday=" + params + .isToday, { + data: {}, + method: "get" + }); + +//查询收货任务明细 +export const purchaseReceipts = (id) => request( + devUrl + `/api/pda/job/purchase-receipt/${id}`, { + method: 'get', + data: {} + }); + +//开始收货任务 +export function takeReceiptJob(id) { + return request(devUrl + `/api/pda/job/purchase-receipt/take/${id}`, { // + data: {}, + method: "post" + }) +} +//取消承接任务 +export function cancelTakeReceiptJob(id) { + return request(devUrl + `/api/pda/job/purchase-receipt/cancel-take/${id}`, { // + data: {}, + method: "post" + }) +} +//完成收货任务 +export function finishReceiptJob(id, param) { // + return request(devUrl + `/api/pda/job/purchase-receipt/finish/${id}`, { // + data: param, + method: "post" + }) +} + +//保存目检结果 +export function saveReceiptResult(id, param) { + ///api/pda/job/purchase-receipt/save-detail-inspect/{id} + return request(devUrl + `/api/pda/job/purchase-receipt/save-detail-inspect/${id}`, { // + data: param, + method: "post" + }) +} + +//重置多个目检结果 +export function resetReceiptResult(id, param) { + ///api/pda/job/purchase-receipt/save-detail-inspect/{id} + return request(devUrl + `/api/pda/job/purchase-receipt/reset-many-detail-inspect/${id}`, { // + data: param, + method: "post" + }) +} + + +//重置一个目检结果 +export function resetReceiptDetailResult(id, detailId) { + ///api/pda/job/purchase-receipt/save-detail-inspect/{id} + return request(devUrl + `/api/pda/job/purchase-receipt/reset-detail-inspect/${id}?detailId=${detailId}`, { // + data: {}, + method: "post" + }) +} + +//待检转合格 +export function unInspectToQualified(id) { // + return request(devUrl + `/api/pda/job/purchase-receipt/set-inspect-status-ok-by-inspect/${id}`, { // + data: {}, + method: "post" + }) +} + +//库存 +//提交库存转移 +export function inventoryTransfer(params) { // + return request(devUrl + "/api/pda/store/transfer-note", { // + data: params, + method: "post" + }) +} +//提交计划外入库 +export function unplannedReceipt(params) { // + return request(devUrl + "/api/pda/store/unplanned-receipt", { // + data: params, + method: "post" + }) +} +//提交计划外出库 +export function unplannedIssue(params) { // + return request(devUrl + "/api/pda/store/unplanned-Issue", { // + data: params, + method: "post" + }) +} +//原料 +//原料收货 +export function purchaseReceipt(params) { // + return request(devUrl + "/api/pda/store/purchase-receipt", { // + data: params, + method: "post" + }) +} +//提交FIFO指导发料 +export function issue(params) { // + return request(devUrl + "/api/pda/store/issue", { // + data: params, + method: "post" + }) +} +//生产 +//提交叫料 +export function materialRequest(params) { // + return request(devUrl + "/api/pda/store/material-request", { // + data: params, + method: "post" + }) +} +//提交完工收货(无任务) +export function productreceipt(params) { // + return request(devUrl + "/api/pda/store/product-receipt", { // + data: params, + method: "post" + }) +} + +//完工收货(冲回) +export function productrecycle(params) { // + return request(devUrl + "/api/pda/store/product-recycle", { // + data: params, + method: "post" + }) +} + +//提交完工收货(天津) +export function tjproductreceipt(params) { // + return request(devUrl + "/api/pda/store/l7/create-product-receipt-note-with-l7", { // + data: params, + method: "post" + }) +} + +//完工收货(天津) +export function tjproductrecycle(params) { // + return request(devUrl + "/api/pda/store/l7/create-product-recycle-note-with-l7", { // + data: params, + method: "post" + }) +} + +//库位 +//查询库位信息 根据code +export const locations = (code) => request( + devUrl + "/api/pda/location/" + code, { + method: 'get', + data: code + }); + +//库位 +//查询库位信息 根据code +export const locationsAsync = (code) => promise( + devUrl + "/api/pda/location/" + code, { + method: 'get', + data: code + }); + +//库位 +//查询库位信息 根据type +export const locationByType = (type) => request( + devUrl + "/api/pda/location/by-type/" + type, { + method: 'get', + data: type + }); + +//根据库位查询零件 +export const getLocationByItem = (params) => promise( + devUrl + "/api/pda/inventory/balances/get-location-by-item", { + method: 'get', + data: params + }); + +//消息 +//查询未读消息列表 +export const messageList = (userId) => request( + devUrl + "/api/pda/store/message/list/" + userId, { + method: 'get', + data: {} + }); +//消息 +//查询未读消息列表 +export const unreadList = () => request( + devUrl + "/api/pda/store/message/unread-list", { + method: 'get', + data: {} + }); +//查询未读消息数量 +export const unreadCount = (userId) => request( + devUrl + "/api/pda/store/message/not-read-count/" + userId, { + method: 'get', + data: {} + }); +//变更消息状态 +export function readMessage(id) { // + return request(devUrl + "/api/pda/store/message/read/" + id, { // + data: id, + method: "post" + }) +}; +//查询消息明细 +export const messages = (id) => request( + devUrl + "/api/pda/store/message/" + id, { + method: 'get', + data: id + }); +//器具 +export function palletbind(id) { // + return request(devUrl + "/api/pda/stock/pallet/bind", { // + data: id, + method: "post" + }) +} + +//检验任务列表 +export const getInspectList = (params) => request( + devUrl + "/api/pda/job/inspect/list", { + method: 'get', + data: params + }); + +//检验任务详情 +export const getInspectDetail = (params) => request( + //api/pda/job/inspect/{id} + devUrl + "/api/pda/job/inspect/" + params.id, { // + data: {}, + method: "get" + }); + +//检验任务数量 +export const getInspectCount = (params) => request( + devUrl + "/api/pda/job/inspect/count", { + data: params, + method: "get" + }); + +//承接检验任务 +export const takeInspectJob = (params) => request( + devUrl + "/api/pda/job/inspect/take/" + params.id, { // + data: {}, + method: "post" + }); + +//取消承接检验任务 +export const cancelTakeInspectJob = (id) => request( + devUrl + "/api/pda/job/inspect/cancel-take/" + id, { // + data: {}, + method: "post" + }); + +//开始检验任务 +export const finshInspectJob = (id, params) => request( + devUrl + "/api/pda/job/inspect/finish/" + id, { // + data: params, + method: "post" + }) + +//上架任务列表 +export const getPutawayJobList = (params) => request( + devUrl + "/api/pda/job/put-away/list", { + method: 'get', + data: params + }); + +//上架任务详情 +export const getPutawayJobDetail = (params) => request( + devUrl + "/api/pda/job/put-away/" + params.id, { // + data: {}, + method: "get" + }); + +//上架任务数量 +export const getPutawayJobCount = (params) => request( + devUrl + "/api/pda/job/put-away/count", { + data: params, + method: "get" + }); + +//承接上架任务 +export const takePutawayJob = (params) => request( + devUrl + "/api/pda/job/put-away/take/" + params.id, { // + data: {}, + method: "post" + }); + +//承接上架任务 +export const cancelTakePutawayJob = (id) => request( + devUrl + "/api/pda/job/put-away/cancel-take/" + id, { // + data: {}, + method: "post" + }); + +//开始上架任务 +export const finshPutawayJob = (id, params) => request( + devUrl + "/api/pda/job/put-away/finish/" + id, { // + data: params, + method: "post" + }) + +//根据托标签生成上架任务 +export const byContainercode = (params) => request( + devUrl + "/api/pda/job/put-away/by-containercode/", { // + data: params, + method: "post" + }) + +//根据箱标签生成上架任务 +export const byPackingcode = (params) => request( + devUrl + "/api/pda/job/put-away/by-packingcode", { // + data: params, + method: "post" + }) + +//检查此箱是否存在任务 +export const checkjobbypacking = (params) => request( + devUrl + "/api/pda/job/put-away/check-job-exist-by-packing", { // + data: params, + method: "get" + }) + +//创建叫料申请 +export const materialrequest = (params) => request( + devUrl + "/api/pda/store/material-request", { // + data: params, + method: "post" + }) + +//根据托标签检查是否存在任务 +export const checkjobbycontainer = (params) => request( + devUrl + "/api/pda/job/put-away/check-job-exist-by-container", { // + data: params, + method: "get" + }) + +//发料任务列表 +export const getIssueList = (params) => request( + "http://127.0.0.1:4523/m1/1773588-0-default" + "/api/pda/job/issue/list", { + method: 'get', + data: params + }); + +//检查是否存在发料任务"​/prod/api/pda/job/issue/check-job-exist", +export const checkIssueJobExist = (params) => request( + devUrl + "/api/pda/job/issue/check-job-exist", { + method: 'get', + data: params + }); + +//检查是否存在发料任务"​/prod/api/pda/job/issue/check-job-exist", +export const checkIssueJobExistAsync = (params) => promise( + devUrl + "/api/pda/job/issue/check-job-exist", { + method: 'get', + data: params + }); + +//根据number 获取发料任务列表 +export const getIssueJobByNumber = (jobNumber) => request( + devUrl + "/api/pda/job/issue/by-number/" + jobNumber, { + data: {}, + method: "get" + }); + + +// 根据MaterialRequest number获取收货任务列表 +export const getIssueListByRequest = (requestNumber) => request( + devUrl + "/api/pda/job/issue/list/by-request/" + requestNumber, { // + data: {}, + method: "get" + }); + +//发料任务数量 +export const getIssueCount = (params) => request( + devUrl + "/api/pda/job/issue/count", { + data: params, + method: "get" + }); + +//发料任务详情 +export const getIssueDetail = (params) => request( + devUrl + "/api/pda/job/issue/" + params.id, { // + data: {}, + method: "get" + }); + +//承接发料任务 +export const takeIssueJob = (params) => request( + devUrl + "/api/pda/job/issue/take/" + params.id, { // + data: {}, + method: "post" + }); + +//取消承接发料任务 +export const cancelTakeIssueJob = (id) => request( + devUrl + "/api/pda/job/issue/cancel-take/" + id, { // + data: {}, + method: "post" + }); +//完成发料任务 +export const finshIssueJob = (id, params) => request( + devUrl + "/api/pda/job/issue/finish/" + id, { // + data: params, + method: "post" + }) +//发货任务列表 +export const getDeliverList = (params) => request( + devUrl + "/api/pda/job/deliver/list", { + method: 'get', + data: params + }); + +//根据number 获取发货任务列表 +export const getDeliverJobByNumber = (number) => request( + devUrl + "/api/pda/job/deliver/by-number/" + number, { + data: {}, + method: "get" + }); + +//发货任务数量 +export const getDeliverCount = (params) => request( + devUrl + "/api/pda/job/deliver/count", { + data: params, + method: "get" + }); + +//发货任务详情 +export const getDeliverDetail = (params) => request( + 'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/" + params.id, { // + data: {}, + method: "get" + }); + +//承接发货任务 +export const takeDeliverJob = (params) => request( + 'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/take/" + params.id, { // + data: {}, + method: "post" + }); +//取消承接发货任务 +export const cancelTakeDeliverJob = (id) => request( + 'http://127.0.0.1:4523/m1/1863666-0-default' + "/api/pda/job/deliver/cancel-take/" + id, { // + data: {}, + method: "post" + }); +//开始发货任务 +export const finshDeliverJob = (id, params) => request( + devUrl + "/api/pda/job/deliver/finish/" + id, { // + data: params, + method: "post" + }) + +//盘点任务列表 +export const getCountJobList = (params) => request( + devUrl + "/api/pda/job/count/list", { + method: 'get', + data: params + }); + +//根据number获取盘点任务 +export const getCountJobByNumber = (number) => request( + devUrl + "/api/pda/job/count/by-number/" + number, { + data: {}, + method: "get" + }); + + +//根据库位获取盘点任务 +export const getCountJobByLocation = (locationCode) => request( + devUrl + "/api/pda/job/count/list/by-location/" + locationCode, { + data: {}, + method: "get" + }); + +//根据库位获取盘点任务 +export const getCountJobByLocationAsync = (locationCode) => promise( + devUrl + "/api/pda/job/count/list/by-location/" + locationCode, { + data: {}, + method: "get" + }); + +//盘点任务数量 +export const getCountJobCount = (params) => request( + devUrl + "/api/pda/job/count/count", { + data: params, + method: "get" + }); +//盘点任务详情 +export const getCountJobDetail = (params) => request( + devUrl + "/api/pda/job/count/" + params.id, { // + data: { + params + }, + method: "get" + }); + +//承接上架任务 +export const takeCountJob = (params) => request( + devUrl + "/api/pda/job/count/take/" + params.id, { // + data: {}, + method: "post" + }); + +//取消承接发货任务 +export const cancelTakeCountJob = (id) => request( + devUrl + "/api/pda/job/count/cancel-take/" + id, { // + data: {}, + method: "post" + }); //取消承接发货任务 +//提交盘点任务 +export const finishCountJob = (id, params) => request( + devUrl + "/api/pda/job/count/finish/" + id, { // + data: params, + method: "post" + }); + +//根据条件新增盘点任务 +export const createCountJob = (params) => request( + devUrl + "/api/pda/job/count/create-with-condition/", { // + data: params, + method: "post" + }); + +//退货任务列表 +export const getReturnJobList = (params) => request( + devUrl + "/api/pda/job/purchase-return/list", { + method: 'get', + data: params + }); + +//根据number 获取盘点任务列表 +export const getReturnJobByNumber = (number) => request( + devUrl + "/api/pda/job/purchase-return/by-number/" + number, { + data: {}, + method: "get" + }); + +//退货任务数量 +export const getReturnJobCount = (params) => request( + devUrl + "/api/pda/job/purchase-return/count", { + data: params, + method: "get" + }); + +//退货任务详情 +export const getReturnJobDetail = (id) => request( + devUrl + "/api/pda/job/purchase-return/" + id, { // + data: {}, + method: "get" + }); + +//承接退货任务 +export const takePurchaseReturnJob = (id) => request( + devUrl + "/api/pda/job/purchase-return/take/" + id, { // + data: {}, + method: "post" + }); + +//取消承接退货任务 +export const cancelTakePutchaseReturnJob = (id) => request( + devUrl + "/api/pda/job/purchase-return/cancel-take/" + id, { // + data: {}, + method: "post" + }); + +//完成退货任务 +export const finishReturnJob = (id, returnReason) => request( + devUrl + "/api/pda/job/purchase-return/finish/" + id + "?returnReason=" + returnReason, { // + data: {}, + method: "post" + }); + +//完工收货任务 +export const getProductReceiptList = (params) => request( + devUrl + "/api/pda/job/product-receipt/list", { + method: 'get', + data: params + }); + +//完工收货任务详情 +export const getProductReceiptDetail = (params) => request( + //api/pda/job/inspect/{id} + devUrl + "/api/pda/job/product-receipt/" + params.id, { // + data: {}, + method: "get" + }); + +//承接完工收货任务 +export const takeProductReceiptJob = (params) => request( + devUrl + "/api/pda/job/product-receipt/take/" + params.id, { // + data: {}, + method: "post" + }); +//取消承接完工收货任务 +export const cancelTakeProductReceiptJob = (id) => request( + devUrl + "/api/pda/job/product-receipt/cancel-take/" + id, { // + data: {}, + method: "post" + }); + +//开始完工收货任务 +export const finshProductReceiptJob = (id, params) => request( + devUrl + "/api/pda/job/product-receipt/finish/" + id, { // + data: params, + method: "post" + }); + +//无任务的完工收货 +export const finshProductReceiptNoJob = (id, params) => request( + devUrl + "/api/pda/store/product-receipt", { // + data: params, + method: "post" + }); + +//获取箱标签 +export const getContainerCode = (qty) => request( + devUrl + "/api/pda/stock/pack/add-pallet-code-number?qty=" + qty, { // + data: {}, + method: "post" + }); + +//获取生产线 +export const getProductionLine = (params) => request( + devUrl + "/api/pda/production-line/list", { // + data: params, + method: "get" + }); + +//获取班次 +export const getShift = (params) => request( + devUrl + "/api/pda/shift/list", { // + data: params, + method: "get" + }); + +//获取客户地址 +export const getCustomerAddressByCode = (code) => request( + devUrl + "/api/pda/customer-address/" + code, { // + data: {}, + method: "get" + }); + +//获取客户地址 +export const getCustomerAddressByCodeAsync = (code) => promise( + devUrl + "/api/pda/customer-address/" + code, { // + data: {}, + method: "get" + }); + +//按客户代码获取客户地址 +export const getCustomerAddressBycustomerCode = (customerCode) => request( + devUrl + "/api/pda/customer-address/by-customer?customerCode=" + customerCode, { // + data: {}, + method: "get" + }); + +//按客户代码获取客户地址 +export const getCustomerAddressBycustomerCodeAsync = (customerCode) => promise( + devUrl + "/api/pda/customer-address/by-customer?customerCode=" + customerCode, { // + data: {}, + method: "get" + }); + +export const getItemAsync = (code) => promise( + devUrl + '/api/pda/item/' + code, { // + data: {}, + method: "get" + }); + + +//直接发货 +export const finshDeliver = (params) => request( + devUrl + "/api/pda/store/deliver", { // + data: params, + method: "post" + }); + +//原料直发 +export const rawDeliver = (params) => request( + devUrl + "/api/pda/store/deliver", { // + data: params, + method: "post" + }); + + +//调拨发货 +export const warehouseTransfer = (params) => request( + devUrl + "/api/pda/store/warehouse-transfer", { // + data: params, + method: "post" + }); + +//发货任务列表 +export const getJisDeliverList = (params) => request( + devUrl + "/api/pda/job/jis-deliver/list", { + method: 'get', + data: params + }); +//发货任务数量 +export const getJisDeliverCount = (params) => request( + devUrl + "/api/pda/job/jis-deliver/count", { + data: params, + method: "get" + }); + +// //发货任务详情 +// export const getJisDeliverDetail = (params) => request( +// "/prod/api/pda/job/jis-deliver" , { // +// data: params, +// method: "get" +// }); + +//发货任务详情 +export const getJisDeliverDetail = (params) => request( + devUrl + "/api/pda/job/jis-deliver", { // + data: {}, + method: "get" + }); + +//承接发货任务 +export const takeJisDeliverJob = (params) => request( + devUrl + "/api/pda/job/jis-deliver/take/" + params.id, { // + data: {}, + method: "post" + }); +//取消承接发货任务 +export const cancelTakeJisDeliverJob = (id) => request( + devUrl + "/api/pda/job/jis-deliver/cancel-take/" + id, { // + data: {}, + method: "post" + }); +//开始发货任务 +///api/pda/job/jis-deliver/finish/{id} +export const finshJisDeliverJob = (id, params) => request( + devUrl + "/api/pda/job/jis-deliver/finish/" + id, { // + data: params, + method: "post" + }) + +//查询器具是否存在 +export const getContainer = (code) => request( + devUrl + "/api/pda/inventory/container/" + code, { // + data: {}, + method: "get" + }); + +//查询器具是否存在 +export const getContainerAsync = (code) => promise( + devUrl + "/api/pda/inventory/container/" + code, { // + data: {}, + method: "get" + }); + +//查询器具是否按序 +export const checkContainerOrder = (code) => request( + devUrl + "/api/pda/inventory/container/check-by-code/" + code, { // + data: {}, + method: "get" + }); + +//查询器具是否按序 +export const checkContainerOrderAsync = (code) => promise( + devUrl + "/api/pda/inventory/container/check-by-code/" + code, { // + data: {}, + method: "get" + }); + + +export const PrintServices = (data) => { + return uni.request({ + url: printUrl + '/api/print/PrintServices', + method: 'post', + header: { + 'content-type': 'application/x-www-form-urlencoded' + }, + data + }).then(res => { + if (res != null && res[1] != null) { + if (res[1].statusCode != null) { + //状态码类型 2开头的全是成功 + let code = res[1].statusCode.toString().substring(0, 1); + if (code === '2') { + + return res[1].data; + } else { + let message = res[1].data.error.message; + if (message != null) { + throw res[1].data.error.message; + } else { + throw res[1].statusCode + "错误"; + } + + } + } else { + throw url + "返回的状态码类型为空" + } + } else { + throw url + "返回的res为空" + } + }) +} +// 获取版本号 +export const isNewVersion = () => { + return uni.request({ + url: devUrl + `/static/version.json?t=${new Date().getTime()}`, + method: 'post' + }).then(res => { + console.log(res) + }) +} + +// 东阳新接口 +//报废 +export const scrap = (params) => request( + devUrl + "/api/pda/store/scrap", { // + data: params, + method: "post" + }); + +//上架前退货 +export const returnBeforePutaway = (params) => request( + devUrl + "/api/pda/store/purchase-return-note/before-puton", { // + data: params, + method: "post" + }); + +//获取采购标签信息 +// export const getPurchaseLabel = (code) => request( +// devUrl + "/api/pda/label/purchaselabel/by-code?code=" + code, { // +// data: {}, +// method: "get" +// }); + + +// //获取采购标签信息 +// export const getPurchaseLabelAsync = (code) => promise( +// devUrl + "/api/pda/label/purchaselabel/by-code?code=" + code, { // +// data: {}, +// method: "get" +// }); + +// //获取产品标签信息 +// export const getProductionLabel = (code) => request( +// devUrl + "/api/pda/label/productionlabel/by-code?code=" + code, { // +// data: {}, +// method: "get" +// }); + +// //获取产品标签信息 +// export const getProductionLabelAsync = (code) => promise( +// devUrl + "/api/pda/label/productionlabel/by-code?code=" + code, { // +// data: {}, +// method: "get" +// }); + + +//获取产品标签信息inventorylabel +export const getInventoryLabel = (code) => request( + devUrl + "/api/pda/label/inventorylabel/by-code?code=" + code, { // + data: {}, + method: "get" + }); + +//获取产品标签信息 +export const getInventoryLabelAsync = (code) => promise( + devUrl + "/api/pda/label/inventorylabel/by-code?code=" + code, { // + data: {}, + method: "get" + }); + +//回收料收货 +export const recycledMaterialReceipt = (param) => request( + devUrl + "/api/pda/store/recycled-material-receipt-note", { // + data: param, + method: "post" + }); + +//生产退库列表 +export const getProductionReturnJobList = (params) => request( + devUrl + "/api/pda/job/production-return/list", { + method: 'get', + data: params + }); + +//生产退库数量 +export const getProductionReturnJobCount = (params) => request( + devUrl + "/api/pda/job/production-return/count", { + data: params, + method: "get" + }); + +//生产退库详情 +export const getProductionReturnJobDetail = (id) => request( + devUrl + "/api/pda/job/production-return/" + id, { // + data: {}, + method: "get" + }); + +//承接生产退库 +export const takeProductionReturnJob = (id) => request( + devUrl + "/api/pda/job/production-return/take/" + id, { // + data: {}, + method: "post" + }); + +//取消承接生产退库 +export const cancelTakeProductionReturnJob = (id) => request( + devUrl + "/api/pda/job/production-return/cancel-take/" + id, { // + data: {}, + method: "post" + }); + +//完成生产退库 +export const finishProductionReturnJob = (id, params) => request( + devUrl + "/api/pda/job/production-return/finish/" + id, { // + data: params, + method: "post" + }); + +//直接退库 +export const returnToWarehouse = (params) => request( + devUrl + "/api/pda/store/return-to-warehouse", { // + data: params, + method: "post" + }); + +//采购上架 +export const purchasePutaway = (params) => request( + devUrl + "/api/pda/note/put-away/by-purchase", { // + data: params, + method: "post" + }); + +//半成品上架 +export const semiPutaway = (params) => request( + devUrl + "/api/pda/note/put-away/by-semi", { // + data: params, + method: "post" + }); + +// +export const getPurchaseDetailAsync = (itemCode, packingCode) => promise( + devUrl + "/api/pda/store/purchase-receipt/detail-by-item-and-packing?itemCode=" + itemCode + '&packingCode=' + + packingCode, { // + data: {}, + method: "get" + }); + +export const getFileByCode = (fileCode) => request( + devUrl + "/api/pda/file/filestore/by-code/" + fileCode, { // + data: {}, + method: "post" + }); + +// 根据 code 获取配置字典 +export const getDictByCode = (code) => request( + devUrl + "/api/pda/dict/by-code?code=" + code, { // + data: {}, + method: "get" + }); + +//直接发料 +export const issueDirect = (params) => request( + devUrl + "/api/pda/store/issue", { // + data: params, + method: "post" + }); diff --git a/api/login.js b/api/login.js deleted file mode 100644 index b79fd078..00000000 --- a/api/login.js +++ /dev/null @@ -1,34 +0,0 @@ -import request from '@/utils/request' - -// 登录方法 -export function login(username, password, captchaVerification) { - const data = { - username, - password, - captchaVerification - } - return request({ - url: '/system/auth/login', - headers: { - isToken: false - }, - 'method': 'POST', - 'data': data - }) -} - -// 获取用户详细信息 -export function getInfo() { - return request({ - url: '/system/auth/get-permission-info', - 'method': 'GET' - }) -} - -// 退出方法 -export function logout() { - return request({ - url: '/system/auth/logout', - 'method': 'POST' - }) -} diff --git a/api/request.js b/api/request.js new file mode 100644 index 00000000..5a6d9e33 --- /dev/null +++ b/api/request.js @@ -0,0 +1,957 @@ +import request from '@/api/httpRequest.js' + +// let devUrl = "http://dev.ccwin-in.com:59096" +let devUrl = getApp().globalData.dev_url; +devUrl = "http://dev.ccwin-in.com:23132" + + +export function test(params) { + return request({ + url: "http://www.baidu.com", + method: "get", + data: params, + }); +} + +export function login(params) { + return request({ + url: devUrl + "/system/login", + method: "post", + data: params, + }); +} + +export function logOut() { + return request({ + url: devUrl + "/system/logout", + method: "post", + data: {}, + }); +} + +export function authorize() { + return request({ + url: devUrl + "/system/authorize/permissions", + method: "get", + data: {}, + }); +} + +export function getUserInfo() { + return request({ + url: devUrl + "/organization/user/current/info", + method: "get", + data: {}, + }); +} + + + + + + +/** + * + * @param {*获取业务类型} + * locationCode 获取配置字典 + */ +export function getBusinesstypeList(params) { + return request({ + url: devUrl + "/magic-api/pda/basic/getBusinesstypeList", + method: "get", + data: {}, + }); +} + + + + + + + + + + + + + + + + +/** + * + * @param {*} + * Number 按托码查询库存 + */ +export function getBalanceByContainer(Number) { + return request({ + url: devUrl + "/magic-api/pda/query/getBalanceByContainer?Number=" + Number, + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} + * Number 按托码查询托码明细 + */ +export function getContainerDetailByNumber(Number) { + return request({ + url: devUrl + "/magic-api/pda/basic/query/getContainerDetailByNumber?Number=" + Number, + method: "get", + data: {}, + }); +} + + + +/** + * + * @param {*器具代码} + * ContainerNumber 按器具查询库存明细 + */ +export function getBalanceByContainerNumberGroup(ContainerNumber) { + return request({ + url: devUrl + "/magic-api/pda/query/getBalanceByContainerNumberGroup?ContainerNumber=" + + ContainerNumber, + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} itemcode + * 按数量管理查询库存 + */ +export function getBalanceByItemCode(itemcode) { + return request({ + url: devUrl + "/magic-api/pda/query/getBalanceByItemCode?itemcode=" + itemcode, + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} itemCode + * 按物品查询库存汇总 + */ +export function getBalanceByCodeGroup(itemCode) { + return request({ + url: devUrl + "/magic-api/pda/query/getBalanceByCodeGroup?itemCode=" + itemCode, + method: "get", + data: {}, + }); +} + +/** + * 按物品查询库存明细 + * @param {*} itemCode + * + */ +export function getBalanceByCode(itemCode) { + return request({ + url: devUrl + "/magic-api/pda/query/getBalanceByCode?itemCode=" + itemCode, + method: "get", + data: {}, + }); +} + + + + + + + + +/** + * + * @param {*} code 物品代码 + * 查询管理精度按库位查询接口未完成 + */ +export function getProductionlineByItemcode_copy_copy(code) { + return request({ + url: devUrl + "/magic-api/pda/basic/getProductionlineByItemcode_copy_copy?code=" + code, + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} code 物品代码 + * 查询管理精度按物品查询接口未完成 + */ +export function getProductionlineByItemcode_copy_copy_copy(code) { + return request({ + url: devUrl + "/magic-api/pda/basic/getProductionlineByItemcode_copy_copy_copy?code=" + code, + method: "get", + data: {}, + }); +} + + + +/** + * + * @param {*} code 生产线代码 + * 查询生产线信息接口 + */ +export function getProductionlineByItemcode_copy(code) { + return request({ + url: devUrl + "/magic-api/pda/basic/getProductionlineByItemcode_copy?code=" + code, + method: "get", + data: {}, + }); +} + + +/** + * + * @param {*} number 器具代码 + * 根据器具查询包装信息(无器具号) + */ +// export function getBalanceByContainer(number) { +// return request({ +// url: devUrl + "/magic-api/pda/basic/getBalanceByContainer?number=" + number, +// method: "get", +// data: {}, +// }); +// } + + +/** + * + * @param {*} number ASN编号 + * 按ASN查询任务接口 + */ +export function getPurchaseReturnByAsnNumber(asnNumber) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereturn/getJobByAsnNumber?asnNumber=" + asnNumber, + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} + * 承接任务 + * jobStatusId:任务id + jobStatusTableName:任务主表表名 + jobStatusTableNameDetail:任务子表表名 + jobStatusSchemaCode:工作流模板编号 + jobStatusStatusType:状态类型 1 取消承接 2 承接 3 执行 + */ +export function takeJob(params) { + + return request({ + url: devUrl + "/magic-api/pda/job/public/jobStatusUpdate?jobStatusId=" + +params.jobStatusId + +"&jobStatusTableName="+params.jobStatusTableName + +"&jobStatusTableNameDetail="+params.jobStatusTableNameDetail + +"&jobStatusSchemaCode="+params.jobStatusSchemaCode + +"&jobStatusStatusType="+2, + method: "post", + data: {}, + }); +} + + +/** + * + * @param {*} + * 取消承接任务 + * jobStatusId:任务id + jobStatusTableName:任务主表表名 + jobStatusTableNameDetail:任务子表表名 + jobStatusSchemaCode:工作流模板编号 + jobStatusStatusType:状态类型 1 取消承接 2 承接 3 执行 + */ +export function cancelTakeJob(params) { + return request({ + url: devUrl + "/magic-api/pda/job/public/jobStatusUpdate?jobStatusId=" + +params.jobStatusId + +"&jobStatusTableName="+params.jobStatusTableName + +"&jobStatusTableNameDetail="+params.jobStatusTableNameDetail + +"&jobStatusSchemaCode="+params.jobStatusSchemaCode + +"&jobStatusStatusType="+1, + method: "post", + data: {}, + }); +} + + +/** + * + * @param {*} id 任务id + * 暂存任务 + */ +export function jobStatusToTemporary(id) { + return request({ + url: devUrl + `/magic-api/pda/job/purchasereceipt/jobStatusToTemporary${id}`, + method: "post", + data: {}, + }); +} + +/** + * + * @param {*} id 任务id + * 获取任务明细暂存 + * {masterID,page,size + } + */ +export function getJobDetailStaging(params) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereceipt/getJobDetailStaging", + method: "get", + data: params, + }); +} + + + +/**采购收货 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getPurchaseReceiptJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereceipt/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + +/** + * + * @param {*} number ASN编号 + * 按ASN查询任务接口 + */ +export function getPurchasereceiptByAsnNumber(asnNumber) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereceipt/getJobByAsnNumber?asnNumber=" + asnNumber, + method: "get", + data: {}, + }); +} + + + + +/** + * + * @param {*} + * 获取任务总数量 + */ +export function purchasereceiptGetJobCount() { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereceipt/getJobCount", + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} + * 获取新增任务数量 + */ +export function purchasereceiptNewJobCount() { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereceipt/getNewJobCount", + method: "get", + data: {}, + }); +} + + + + + + + + + +/** + * 到货检验任务 提交 + * @param {*} params + */ +export function submitInspectJob(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereturn/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + +/** + * + * @param {*} packingNumber + * 按唯一码管理查询库存 + */ +export function getBalanceByUniquecode(packingNumber) { + return request({ + url: devUrl + "/magic-api/pda/basic/getBalanceByUniquecode?packingNumber=" + packingNumber, + method: "get", + data: {}, + }); +} + + + + + + + +/** + * + * @param {*} requestTime Creatorld + * 发料任务筛选接口 + */ +export function getIssueJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/issue/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + +/** + * + * @param {*} 任务id + * 提交任务 + */ +export function issueJobSubmit(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/issue/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + + +export function getPurchaseReturnJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/purchasereturn/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + + +/** + * 采购退货 申请列表 + * @param {*} + * 任务状态 + * CreationTimeStart 开始日期 + * CreationTimeEnd 结束日期 + * 获取日期任务列表 + */ +export function getPurchaseReturnRequestList(params) { + return request({ + url: devUrl + "/magic-api/pda/request/purchasereturn/getRequestList", + method: "post", + data: params, + }); +} + + + + + + + +/** + * 原料上架 + * @param {*} + * status 任务状态 + * CreationTimeStart 开始日期 + * CreationTimeEnd 结束日期 + * 获取日期任务列表 + */ +export function getPutawayJobList(params) { + return request({ + url: devUrl + "/magic-api/pda/job/putaway/getJobList", + method: "post", + data: params, + }); +} + + +/** + * + * @param {*} id 任务id + * 原料上架获取任务明细 + */ +export function putawayGetJobDetail(id) { + return request({ + url: devUrl + "/magic-api/pda/job/putaway/getJobDetail?id=" + id, + method: "get", + data: {}, + }); +} + + +/**原料上架 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getPutawayJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/putaway/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + + + + +/**生产收料 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getProductionReceiptJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/productionreceipt/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + + + +/**生产退料 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getProductionreturnJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/productionreturn/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + + + + +/**盘点 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getJobCountByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/count/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + +/** + * + * @param {*} id 任务id + * 制品收货 承接任务 + */ +export function takeProductReceiptJob(id) { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/jobStatusToDoing?id=" + id, + method: "post", + data: {}, + }); +} + +/** + * + * @param {*} id 任务id + * 制品收货 取消承接任务 + */ +export function cancelTakeProductReceiptJob(id) { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/jobStatusToOpen?id=" + id, + method: "post", + data: {}, + }); +} + + +/**制品收货 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getProductReceipJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + +/** + * + * @param {*} 任务id + * 提交制品收货 + */ +export function submitProductReceiptJob(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + +/** + * + * @param {*} + * 获取任务总数量 + */ +export function getProductReceiptJobCount() { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/getJobCount", + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} + * 获取新增任务数量 + */ +export function getProductReceiptJobNewCount() { + return request({ + url: devUrl + "/magic-api/pda/job/productreceipt/getNewJobCount", + method: "get", + data: {}, + }); +} + + +/**制品收货 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getProductPutawayJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/productputaway/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + +/** + * + * @param {*} 任务id + * 提交制品收货 + */ +export function submitProductPutawayJob(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/productputaway/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + +/** + * + * @param {*} + * 获取任务总数量 + */ +export function getProductPutawayJobCount() { + return request({ + url: devUrl + "/magic-api/pda/job/productputaway/getJobCount", + method: "get", + data: {}, + }); +} + +/** + * + * @param {*} + * 获取新增任务数量 + */ +export function getProductPutawayJobNewCount() { + return request({ + url: devUrl + "/magic-api/pda/job/productputaway/getNewJobCount", + method: "get", + data: {}, + }); +} + + +/** + * + * @param {*按编号查询生产线} + * + */ +export function getProductionlineByCode(param) { + return request({ + url: devUrl + "/magic-api/pda/basic/getProductionlineByCode", + method: "get", + data: {}, + }); +} + + + + + + +/**计划外入库 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getJobUnPlannedReceiptByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/unplannedreceipt/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + + + + + + + +/**计划外出库 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getJobUnPlannedIssueByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/unPlannedIssue/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + + + +/**库存转移 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getInventoryMoveJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/inventorymove/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} + + + + + + +/**制品发货 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getDeliverJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/deliver/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} +/** + * 制品发货提交 + * @param {*} params + */ +export function deliverJobSubmit(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/deliver/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + + + + + + + + + + + + + + + + + +/**客户退货 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getCustomerReturnJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/customerreturn/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} +/** + * 客户退货提交 + * @param {*} params + */ +export function customerReturnSubmit(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/customerreturn/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + + + + + + + + + + +/**调拨入库 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getTransferReceiptJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/transferreceipt/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} +/** + * 调拨入库提交 + * @param {*} params + */ +export function transferReceiptSubmit(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/transferreceipt/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + + + + + + + + +/**调拨出库 + * + * @param {*} number 任务编号 + * 按任务编号查询任务 + */ +export function getTransferIssueJobByNumber(number) { + return request({ + url: devUrl + "/magic-api/pda/job/transferissue/getJobByNumber?Number=" + number, + method: "get", + data: {}, + }); +} +/** + * 调拨出库提交 + * @param {*} params + */ +export function transferIssueSubmit(id, params) { + return request({ + url: devUrl + "/magic-api/pda/job/transferissue/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + + + + + diff --git a/api/request2.js b/api/request2.js new file mode 100644 index 00000000..115ebf07 --- /dev/null +++ b/api/request2.js @@ -0,0 +1,2133 @@ +import request from '@/api/httpRequest2.js' +const baseApi = "/api/admin-api" +//公司地址 + // 本地地址 +// const baseApi = "/admin-api" +/** + * 获取验证码 + * @param {*} + */ +export function getCaptchaImage(params) { + return request({ + url: baseApi + "/system/captcha/captchaImage", + method: "get", + data: params, + }); +} +/** + * 登录方法 + */ +export function login(username, password, code, uuid) { + return request({ + url: baseApi + '/system/auth/login', + headers: { + isToken: false + }, + method: 'post', + data: { + username, + password, + code, + uuid + } + }) +} +/** + * 退出 + */ +export function logout() { + return request({ + url: baseApi + "/system/auth/logout", + method: "post", + data: {}, + }); +} +/** + * 获取登录用户的权限信息 + */ +export function getPermissionInfo() { + return request({ + url: baseApi + "/system/auth/get-permission-info", + method: "get", + data: {}, + }); +} +/** + * 获取租户信息 + */ +export function getTenantInfo(name) { + var params = { + name: name, + pageNo: 1, + pageSize: 100, + } + + return request({ + url: baseApi + "/system/tenant/page", + method: "get", + data:params, + }); +} + + + +/** + * 获取登录用户信息 + */ +export function getUserProfile() { + return request({ + url: baseApi + '/system/user/profile/get', + method: 'get' + }) +} +/** + * 修改个人用户密码 + */ +export function updateUserPwd(oldPassword, newPassword) { + const data = { + oldPassword, + newPassword + } + return request({ + url: baseApi + '/system/user/profile/update-password', + method: 'PUT', + params: data + }) +} + +/** + * 获取配置字典 + * @param {*} + * + */ +export function getDictionaryItem(params) { + return request({ + url: baseApi + "/system/dict-type/getDictByTypes", + method: "post", + data: params, + }); +} + +/** + * 查询 客户信息 + * @param {*} 物品代码 + * + */ +export function getBasicCustomerList() { + return request({ + url: baseApi + "/wms/customer/list", + method: "get", + data: {}, + }); +} + +/** + * 根据业务代码查询业务类型 + * @param {*} Code + * + */ +export function getBusinesstypeByCode(code) { + var params ={ + code:code, + pageNo:1, + pageSize:100 + } + return request({ + url: baseApi + "/wms/businesstype/page", + method: "get", + data: params, + }); +} + +/** + * 按物料代码查询库存明细 + * @param {*} itemCode + * + */ + +export function getBalanceByItemCode(params) { + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/** + * 按物品查询预计入 + * @param {*} itemCode + * + */ +export function getExpectinByItemcode(params) { + return request({ + url: baseApi + "/wms/expectin/page", + method: "get", + data: params, + }); +} + +/** + * 按物品查询预计出 + * @param {*} itemCode + * + */ +export function getExpectoutByItemcode(params) { + return request({ + url: baseApi + "/wms/expectout/page", + method: "get", + data: params, + }); +} + +/** + * 按库位查询库存汇总 + * @param {*} + * + */ +export function getBalanceByLocationcodeGroup(params) { + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/** + * 按库位查询库存明细 + * @param {*} + */ +export function getBalanceByLocationcode(params) { + + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/** + * 查询器具信息接口 + * @param {*} number 器具代码 + */ +export function getContainerByNumber(number) { + var params = { + number: number, + pageNo: 1, + pageSize: 100 + } + return request({ + url: baseApi + "/wms/container-main/page", + method: "get", + data: params, + }); +} + +/** + * 按器具查询库存明细 + * @param {*器具代码} + * + */ +export function getBalanceByContainerNumberGroup(params) { + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/** + * 按器具查询库存明细(无器具) + * @param {*器具代码} + * + */ +export function getBalanceByContainerNumber(params) { + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/**标签 + * + * @param {*} header version + * 获取标签设置信息 + */ +export function getLabelByHeader(header, version) { + var params = { + header: header, + version:version, + } + return request({ + url: baseApi + "/wms/labeltype/getDetailsByHeader", + method: "get", + data: params, + }); +} + +/**包装 + * 获取包装信息 + * @param {*} + * + */ +export function getPackageByNumber(number) { + var params = { + number: number, + pageNo: 1, + pageSize: 100 + } + return request({ + url: baseApi + "/wms/package/page", + method: "get", + data: params, + }); +} + + + +/** + * 查询库位信息接口 + * @param {*} code 库位代码 + * + */ +export function getBasicLocationByCode(code) { + var parmas ={ + code:code, + pageNo:1, + pageSize:100 + } + return request({ + url: baseApi + "/wms/location/page", + method: "get", + data: parmas, + }); +} + +/** + * 查询物品信息接口 + * @param {*} code 物品代码 + * + */ +export function getBasicItemByCode(itemCode) { + var params = { + code: itemCode, + pageNo: 1, + pageSize: 100 + } + return request({ + url: baseApi + "/wms/itembasic/page" , + method: "get", + data: params, + }); +} + +/** + * 按物品查询库存汇总 + * @param {*} itemCode + * + */ +export function getBalanceByCodeGroup(params) { + return request({ + url: baseApi + "/wms/balance/page", + method: "get", + data: params, + }); +} + +/** + * 查询包装信息接口 + * @param {*} itemCode 物品代码 + * + */ +export function getItempackagingByItemcode(itemCode) { + return request({ + url: baseApi + "/wms/itempackaging/page?itemCode=" + itemCode, + method: "get", + data: {}, + }); +} + + +/** + * 供应商发货 + * + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getSupplierDeliverRecordList(params) { + return request({ + url: baseApi + "/wms/supplierdeliver-record-main/senior", + method: "post", + data: params, + }); +} +/** + * 供应商发货 详情 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getSupplierDeliverRecordDetail(id) { + return request({ + url: baseApi + "/wms/supplierdeliver-record-main/getSupplierdeliverRecordById?id="+id, + method: "get", + data: {}, + }); +} + + +/** + * 报检单查询 = request_inspect + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getInspectRequestList(params) { + return request({ + url: baseApi + "/wms/inspect-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 检验单查询 详情 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getInspectRequestDetail(id) { + return request({ + url: baseApi + "/wms/inspect-request-main/getInspectRequestById?id="+id, + method: "get", + data: {}, + }); +} + +/** + * 采购收货 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getPurchaseReceiptJobList(params) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 采购收货 任务承接 + * @param {*} id + * + */ +export function takePurchaseReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 采购收货 放弃承接 + * @param {*} id + * + */ +export function cancleTakePurchaseReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 采购收货 获取任务明细 + * @param {*} id 任务id + * + */ +export function getPurchaseReceiptJobDetail(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/getPurchasereceiptJobyId?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 采购收货 任务提交 + * @param {*} 任务id + * + */ +export function purchaseReceiptJobSubmit(params) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/execute", + method: "put", + data: params, + }); +} + + + +/** + * 采购退货 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * 获取任务明细 + */ +export function getPurchaseReturnJobList(params) { + return request({ + url: baseApi + "/wms/purchasereturn-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 采购退货 获取任务明细 + * @param {*} id 任务id + * + */ + +export function getPurchasereturnJobDetail(id) { + return request({ + url: baseApi + "/wms/purchasereturn-job-main/getReturnJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 采购退货 承接任务 + * @param {*} id + * + */ +export function takePurchasereturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereturn-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 采购退货 放弃承接 + * @param {*} id + * + */ +export function cancleTakePurchasereturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereturn-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 采购退货 任务提交 + * @param {*} params + */ +export function purchaseReturnJobsubmit (params) { + return request({ + url: baseApi + "/wms/purchasereturn-job-main/execute", + method: "put", + data: params, + }); +} + +/** + * 创建采购退货记录 + * @param {*} params + */ +export function createPurchaseReturnRecord(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereturn/createRecord", + method: "put", + data: params, + }); +} + +/** + * 采购退货 申请提交 + * @param {*} params + */ +export function createPurchaseReturnRequest(params) { + return request({ + url: baseApi + "/wms/purchasereturn-request-main/submit", + method: "put", + data: params, + }); +} + +/** + * 到货检验 任务 + * + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getInspectJobList(params) { + return request({ + url: baseApi + "/wms/inspect-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 到货检验 获取任务明细 + * @param {*} id 任务id + * + */ +export function getInspectJobDetail(id) { + return request({ + url: baseApi + "/wms/inspect-job-main/getInspectJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 到货检验 任务承接 + * @param {*} id + * + */ +export function takeInspectJob(id) { + return request({ + url: baseApi + "/wms/inspect-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 到货检验 放弃承接 + * @param {*} id + * + */ +export function cancleTakeInspectJob(id) { + return request({ + url: baseApi + "/wms/inspect-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 到货检验 任务提交 + * @param {*} 任务id + * + */ +export function inspectJobSubmit(params) { + return request({ + url: baseApi + "/wms/inspect-job-main/execute", + method: "put", + data: params, + }); +} + + +/** + * 原料上架 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getPutawayJobList(params) { + return request({ + url: baseApi + "/wms/putaway-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 原料上架 获取任务明细 + * @param {*} id 任务id + * + */ +export function getPutawayJobDetail(id) { + return request({ + url: baseApi + "/wms/putaway-job-main/getPutawayJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 原料上架 提交 + * @param {*} params + */ +export function putawayJobSubmit(params) { + return request({ + url: baseApi + "/wms/putaway-job-main/execute", + method: "put", + data: params, + }); +} + +/** + * 原料上架 承接任务 + * @param {*} id + * + */ +export function takePutawayJob(id) { + return request({ + url: baseApi + "/wms/putaway-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 原料上架 放弃承接 + * @param {*} id + * + */ +export function cancleTakePutawayJob(id) { + return request({ + url: baseApi + "/wms/putaway-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 发料任务 列表 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getIssueJobList(params) { + return request({ + url: baseApi + "/wms/issue-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 发料任务明细 + * @param {*} 任务id + * + */ +export function getIssueJobDetail(id) { + return request({ + url: baseApi + "/wms/issue-job-main/getIssueJobById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 发料 任务承接 + * @param {*} id + * + */ +export function takeIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 发料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 生产收料 任务列表 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductionReceiptJobList(params) { + return request({ + url: baseApi + "/wms/productionreceipt-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 生产收料 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductionReceiptJobDetail(id) { + return request({ + url: baseApi + "/wms/productionreceipt-job-main/getProductionreceiptJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 生产收料 任务承接 + * @param {*} id + * + */ +export function takeProductionReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 生产收料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeProductionReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + + +/** + * 生产收料 提交 + * @param {*} params + */ +export function productionReceiptJobSubmit(id, params) { + return request({ + url: baseApi + "/magic-api/pda/job/putaway/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + +/** + * 库存转移 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getInventoryMoveJobList(params) { + return request({ + url: baseApi + "/wms/inventorymove-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 库存转移 获取任务明细 + * @param {*} id 任务id + * + */ + +export function getInventoryMoveJobDetail(id) { + return request({ + url: baseApi + "/wms/inventorymove-job-main/getInventorymoveJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 生产收料 任务承接 + * @param {*} id + * + */ +export function takeInventoryMoveJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 生产收料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeInventoryMoveJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + + +/** + * 库存转移 任务提交 + * @param {*} 任务id + * + */ +export function inventoryMoveSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 盘点 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getCountJobList(params) { + return request({ + url: baseApi + "/wms/count-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 盘点 获取任务明细 + * @param {*} id 任务id + * + */ +export function getCountJobDetail(id) { + return request({ + url: baseApi + "/wms/count-job-main/getCountJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 盘点 任务承接 + * @param {*} id + * + */ +export function takeCountJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 盘点 放弃承接 + * @param {*} id + * + */ +export function cancleTakeCountJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 盘点 任务提交 + * @param {*} 任务id + * + */ +export function countJobSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 计划外入库 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取任务列表 + * @param {*} + */ +export function getUnPlannedReceiptJobList(params) { + return request({ + url: baseApi + "/wms/unplannedreceipt-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 计划外入库 获取任务明细 + * @param {*} id 任务id + * + */ +export function getUnPlannedReceiptJobDetail(id) { + return request({ + url: baseApi + "/wms/unplannedreceipt-job-main/getUnplannedreceiptJobById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 计划外入库 任务承接 + * @param {*} id + * + */ +export function takeUnPlannedReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 计划外入库 放弃承接 + * @param {*} id + * + */ +export function cancleTakeUnPlannedReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 计划外入库 提交 + * @param {*} params + */ +export function unPlannedReceiptJobSubmit(id, params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereturn/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + +/** + * 计划外出库 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取任务列表 + * @param {*} + */ +export function getUnPlannedIssueJobList(params) { + return request({ + url: baseApi + "/wms/unplannedissue-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 计划外出库 获取任务明细 + * @param {*} id 任务id + * + */ +export function getUnPlannedIssueJobDetail(id) { + return request({ + url: baseApi + "/wms/unplannedissue-job-main/getUnplannedissueJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 计划外出库 承接 + * @param {*} id + * + */ +export function takeUnPlannedIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 计划外出库 放弃承接 + * @param {*} id + * + */ +export function cancleTakeUnPlannedIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 计划外出库 提交 + * @param {*} params + */ +export function unPlannedIssueJobSubmit(id, params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereturn/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + +/** + * 制品收货 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductReceiptJobList(params) { + return request({ + url: baseApi + "/wms/productreceipt-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品收货 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductReceiptJobDetail(id) { + return request({ + url: baseApi + "/wms/productreceipt-job-main/getProductreceiptJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 制品上架 承接 + * @param {*} id + * + */ +export function takeProductReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品上架 放弃承接 + * @param {*} id + * + */ +export function cancleTakeProductReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品收货 提交 + * @param {*} params + */ +export function productReceiptJobsubmit(id, params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereturn/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 制品上架 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductPutawayJobList(params) { + return request({ + url: baseApi + "/wms/productputaway-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品上架 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductPutawayJobDetail(id) { + return request({ + url: baseApi + "/wms/productputaway-job-main/getProductputawayJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 制品上架 承接 + * @param {*} id + * + */ +export function takeProductPutawayJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品上架 放弃承接 + * @param {*} id + * + */ +export function cancleTakeProductPutawayJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 制品上架 任务提交 + * @param {*} 任务id + * + */ +export function productPutawayJobSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + + +/** + * 制品拆解 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductDismantleJobList(params) { + return request({ + url: baseApi + "/wms/productdismantle-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品拆解 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductDismantleJobDetail(id) { + return request({ + url: baseApi + "/wms/productdismantle-job-main/getProductdismantleJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 制品拆解 任务承接 + * @param {*} id + * + */ +export function takeProductDismantleJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品拆解 放弃承接 + * @param {*} id + * + */ +export function cancleTakeProductDismantleJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品拆解 任务提交 + * @param {*} 任务id + * + */ +export function productDismantleJobSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 制品发货 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getDeliverJobList(params) { + return request({ + url: baseApi + "/wms/deliver-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品发货 获取任务明细 + * @param {*} id 任务id + * + */ +export function getDeliverDetail(id) { + return request({ + url: baseApi + "/wms/deliver-job-main/getDeliverJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 制品发货 任务承接 + * @param {*} id + * + */ +export function takeDeliverJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 制品发货 放弃承接 + * @param {*} id + * + */ +export function cancleTakeDeliverJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + + +/** + * 制品发货 任务提交 + * @param {*} 任务id + * + */ +export function deliverJobSubmit( params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 客户退货 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getCustomerReturnJobList(params) { + return request({ + url: baseApi + "/wms/customerreturn-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 客户退货 获取任务明细 + * @param {*} id 任务id + * + */ +export function getCustomerReturnJobDetail(id) { + return request({ + url: baseApi + "/wms/customerreturn-job-main/getCustomerreturnJobById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 客户退货 任务承接 + * @param {*} id + * + */ +export function takeCustomerReturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 客户退货 放弃承接 + * @param {*} id + * + */ +export function cancleTakeCustomerReturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 客户退货 任务提交 + * @param {*} 任务id + * + */ +export function customerReturnJobSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 客户退货申请 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getCustomerReturnRequestList(params) { + return request({ + url: baseApi + "/wms/customerreturn-request-main/senior", + method: "post", + data: params, + }); +} + + +/** + * 客户退货申请 任务明细 + * @param {*} id 任务id + * + */ + +export function getCustomerReturnRequestDetail(id) { + return request({ + url: baseApi + "/wms/customerreturn-request-main/getCustomerreturnRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 调拨入库 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getTransferReceiptJobList(params) { + return request({ + url: baseApi + "/wms/transferreceipt-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 调拨入库 获取任务明细 + * @param {*} id 任务id + * + */ +export function getTransferReceiptJobDetail(id) { + return request({ + url: baseApi + "/wms/transferreceipt-job-main/getTransferreceiptJobById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 调拨入库 承接 + * @param {*} id + * + */ +export function takeTransferReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 调拨入库 放弃承接 + * @param {*} id + * + */ +export function cancleTakeTransferReceiptJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + + +/** + * 调拨入库 任务提交 + * @param {*} 任务id + * + */ +export function transferReceiptJobSubmit(params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 调拨出库 任务列表 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getTransferIssueJobList(params) { + return request({ + url: baseApi + "/wms/transferissue-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 调拨出库 获取任务明细 + * @param {*} id 任务id + * + */ +export function getTransferIssueJobDetail(id) { + return request({ + url: baseApi + "/wms/transferissue-job-main/getTransferissueJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 生产退料 承接 + * @param {*} id + * + */ +export function takeTransferIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 生产退料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeTransferIssueJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 调拨出库 任务提交 + * @param {*} 任务id + * + */ +export function transferIssueJobSubmit( params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + +/** + * 制品上架申请 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductPutawayRequestList(params) { + return request({ + url: baseApi + "/wms/productputaway-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品上架申请 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductPutawayRequestDetail(id) { + return request({ + url: baseApi + "/wms/productputaway-request-main/getProductputawayRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 发料申请列表 + * @param {*} params + */ +export function getIssueRequestList(params) { + return request({ + url: baseApi + "/wms/issue-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 发料申请明细 + * @param {*} id + */ +export function getIssueRequestDetail(id) { + return request({ + url: baseApi + "/wms/issue-request-main/getIssueRequestById?id="+id, + method: "get", + data: {}, + }); +} + +/** + * 采购退货 申请列表 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getPurchaseReturnRequestList(params) { + return request({ + url: baseApi + "/wms/purchasereturn-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 采购退货 获取申请任务明细 + * @param {*} id 任务id + * + */ +export function getPurchaseReturnRequestDetail(id) { + return request({ + url: baseApi + "/wms/purchasereturn-request-main/getPurchasereturnRequestById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 原料上架申请 获取任务列表 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getPutawayRequestList(params) { + return request({ + url: baseApi + "/wms/putaway-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 原料上架申请 获取任务明细 + * @param {*} id 任务id + * + */ +export function getPutawayRequestDetail(id) { + return request({ + url: baseApi + "/wms/putaway-request-main/getPutawayRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 生产退料 任务获取任务列表 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductionreturnJobList(params) { + return request({ + url: baseApi + "/wms/productionreturn-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 生产退料任务 获取任务明细 + * @param {*} id 任务id + * + */ +export function getProductionReturnJobDetail(id) { + return request({ + url: baseApi + "/wms/productionreturn-job-main/getProductionreturnJobById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 生产退料 承接 + * @param {*} id + * + */ +export function takeProductionReturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 生产退料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeProductionReturnJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 生产退料申请 获取任务列表 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getProductionReturnRequestList(params) { + return request({ + url: baseApi + "/wms/productionreturn-request-main/senior", + method: "post", + data: params, + }); +} + + +/** + * 生产退料 获取任务明细 + * @param {*} number id 任务id + * + */ +export function getProductionReturnRequestDetail(id) { + return request({ + url: baseApi + "/wms/productionreturn-request-main/getProductionreturnRequestById?id=" + id, + method: "get", + data: {}, + }); +} + + +/** + * 生产退料 任务提交 + * @param {*} 任务id + * + */ +export function productionReturnJobSubmit( params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + + + + +/** + * 计划外出库申请 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取任务列表 + * @param {*} + */ +export function getUnPlannedIssueRequestList(params) { + return request({ + url: baseApi + "/wms/unplannedissue-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 计划外出库申请 获取明细 + * @param {*} id 任务id + * + */ +export function getUnPlannedIssueRequestDetail(id) { + return request({ + url: baseApi + "/wms/unplannedissue-request-main/getUnplannedissueRequestById?id=" + id, + method: "get", + data: {}, + }); +} + + + +/** + * 计划外入库 申请 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取任务列表 + * @param {*} + */ +export function getUnPlannedReceiptRequestList(params) { + return request({ + url: baseApi + "/wms/unplannedreceipt-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 计划外入库申请 获取任务明细 + * @param {*} id 任务id + * + */ +export function getUnPlannedReceiptRequestDetail(id) { + return request({ + url: baseApi + "/wms/unplannedreceipt-request-main/getUnplannedreceiptRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 报废出库 申请 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取任务列表 + * @param {*} + */ +export function getScrapRequestList(params) { + return request({ + url: baseApi + "/wms/scrap-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 报废出库申请 获取申请明细 + * @param {*} id 任务id + * + */ +export function getScrapRequestDetail(id) { + return request({ + url: baseApi + "/wms/scrap-request-main/getScrapRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 制品发货申请 + * 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getDeliverRequestList(params) { + return request({ + url: baseApi + "/wms/deliver-request-main/senior", + method: "post", + data: params, + }); +} + +/** + * 制品发货申请 获取任务明细 + * @param {*} id 任务id + * + */ + +export function getDeliverRequestDetail(id) { + return request({ + url: baseApi + "/wms/deliver-request-main/getDeliverRequestById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 报废出库 任务 + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getScrapJobList(params) { + return request({ + url: baseApi + "/wms/scrap-job-main/senior", + method: "post", + data: params, + }); +} + +/** 报废出库 获取任务明细 + * @param {*} id 任务id + */ +export function getScrapJobDetail(id) { + return request({ + url: baseApi + "/wms/scrap-job-main/getScrapJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 报废出库 任务承接 + * @param {*} id + * + */ +export function takeScrapJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 报废出库 放弃承接 + * @param {*} id + * + */ +export function cancleTakeScrapJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 报废出库 任务提交 + * @param {*} 任务id + * + */ +export function scrapJobSubmit( params) { + return request({ + url: baseApi + "/magic-api/pda/job/purchasereceipt/jobSubmit?id=" + id, + method: "put", + data: params, + }); +} + +/** + * 补料任务 列表 + * + * status 任务状态 + * 开始日期 + * 结束日期 + * 获取日期任务列表 + * @param {*} + */ +export function getRepleinshJobList(params) { + return request({ + url: baseApi + "/wms/repleinsh-job-main/senior", + method: "post", + data: params, + }); +} + +/** + * 补料任务 获取任务明细 + * @param {*} id 任务id + * + */ + +export function getRepleinshJobDetail(id) { + return request({ + url: baseApi + "/wms/repleinsh-job-main/getRepleinshJobById?id=" + id, + method: "get", + data: {}, + }); +} + +/** + * 补料 任务承接 + * @param {*} id + * + */ +export function takeRepleinshJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/accept?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 补料 放弃承接 + * @param {*} id + * + */ +export function cancleTakeRepleinshJob(id) { + return request({ + url: baseApi + "/wms/purchasereceipt-job-main/abandon?id=" + id, + method: "put", + data: {}, + }); +} + +/** + * 补料 提交 + * @param {*} params + */ +export function repleinshJobSubmit(id, params) { + return request({ + url: baseApi + "/magic-api/pda/job/putaway/jobSubmit?id=" + id, + method: "post", + data: params, + }); +} + + + +/** + * "itemCodes": [], + "locationCode":"INSPECT" + 管理精度策略 + * @param {*} + * + */ +export function getManagementPrecision(params) { + return request({ + url: baseApi + "/wms/rule/getPrecisionStrategyByItemCodes", + method: "post", + data: params, + }); +} + + +/** + * 查询库存通过多种条件 高级筛选 + * @param {*} + * + */ +export function getBalanceByFilter(param) { + return request({ + url: baseApi + "/wms/balance/senior", + method: "post", + data: param, + }); +} + + + + + + + diff --git a/api/system/user.js b/api/system/user.js deleted file mode 100644 index 59e9304c..00000000 --- a/api/system/user.js +++ /dev/null @@ -1,42 +0,0 @@ -import upload from '@/utils/upload' -import request from '@/utils/request' - -// 用户密码重置 -export function updateUserPwd(oldPassword, newPassword) { - const data = { - oldPassword, - newPassword - } - return request({ - url: '/system/user/profile/update-password', - method: 'PUT', - params: data - }) -} - -// 查询用户个人信息 -export function getUserProfile() { - return request({ - url: '/system/user/profile/get', - method: 'GET' - }) -} - -// 修改用户个人信息 -export function updateUserProfile(data) { - return request({ - url: '/system/user/profile/update', - method: 'PUT', - data: data - }) -} - -// 用户头像上传 -export function uploadAvatar(data) { - return upload({ - url: '/system/user/profile/update-avatar', - method: 'PUT', - name: data.name, - filePath: data.filePath - }) -} diff --git a/api/test.js b/api/test.js new file mode 100644 index 00000000..ad2eae61 --- /dev/null +++ b/api/test.js @@ -0,0 +1,22 @@ +// import request from '@/common/request.js' +// import promise from '@/common/promise.js' +import request from '@/common/request_test.js' +// let devUrl = this.$dev_url; + +let devUrl = "http://dev.ccwin-in.com:59096" +export function getlogin(params) { + return request({ + url: devUrl + "/api/pda/account/login", + method: "post", + data: params, + }); +} + +//修改用户密码 +export function changePassword(params) { // + return request({ + url:devUrl + "/api/pda/account/change-password",// + data: params, + method: "post" + }) +} diff --git a/api/test_2.js b/api/test_2.js new file mode 100644 index 00000000..8b712bf9 --- /dev/null +++ b/api/test_2.js @@ -0,0 +1,22 @@ +// // import request from '@/common/request.js' +// // import promise from '@/common/promise.js' +// import request from '@/common/request_test.js' +// // let devUrl = this.$dev_url; + +// let devUrl = "http://dev.ccwin-in.com:59096" +// export function getlogin(params) { +// return request({ +// url: devUrl + "/api/pda/account/login", +// method: "post", +// data: params, +// }); +// } + +// //修改用户密码 +// export function changePassword(params) { // +// return request({ +// url:devUrl + "/api/pda/account/change-password",// +// data: params, +// method: "post" +// }) +// } diff --git a/changelog.md b/changelog.md new file mode 100644 index 00000000..4f33931d --- /dev/null +++ b/changelog.md @@ -0,0 +1,171 @@ +## 3.4.4(2022-07-25) +- 新增 同步 uni-ui@1.4.20 + - uni-forms 【重要】组件逻辑重构,部分用法旧版本不兼容,请注意兼容问题 + - uni-section 新增组件 +## 3.4.3(2022-07-14) +- 修复 HBuilderX 拉取 hello uni-app 项目直接运行提示无服务空间关联的bug +## 3.4.2(2022-07-06) +- 新增 同步 uni-ui@1.4.18 + - uni-forms 【重要】组件逻辑重构,部分用法旧版本不兼容,请注意兼容问题 + - uni-forms 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力 + - uni-forms 新增 更多表单示例 + - uni-forms 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃 + - uni-forms 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效 + - uni-forms 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法 + - uni-forms 新增 子表单的 setRules 方法,配合自定义校验函数使用 + - uni-forms 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则 + - uni-forms 修复 由 1.4.0 引发的 label 插槽不生效的bug + - uni-forms 修复 子组件找不到 setValue 报错的bug + - uni-forms 修复 uni-data-picker 在 uni-forms-item 中报错的bug + - uni-forms 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug + - uni-forms 修复 表单校验顺序无序问题 + - uni-forms 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式 + - uni-forms 优化 动态表单校验方式,废弃拼接name的方式 + - uni-breadcrumb 修复 微信小程序 separator 不显示问题 + - uni-data-checkbox 优化 在 uni-forms 中的依赖注入方式 + - uni-data-picker 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug + - uni-data-picker 优化 显示样式 + - uni-data-select 优化 显示样式 + - uni-datetime-picker 修复 日历顶部年月及底部确认未国际化 bug + - uni-datetime-picker 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致 + - uni-easyinput 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容 + - uni-easyinput 新增 clear 事件,点击右侧叉号图标触发 + - uni-easyinput 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发 + - uni-easyinput 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等 + - uni-easyinput 优化 clearable 显示策略 + - uni-file-picker 修复 在uni-forms下样式不生效的bug + - uni-nav-bar 修复 组件示例中插槽用法无法显示内容的bug + - uni-swipe-action 修复 vue3 下使用组件不能正常运行的Bug + - uni-swipe-action 修复 h5端点击click触发两次的Bug + - uni-table 修复 微信小程序存在无使用组件的问题 +## 3.4.1(2022-06-30) +- 新增 支持 ios 安全区 +## 3.3.8(2022-05-08) +- 新增 同步 uni-ui@1.4.15 + - uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug + - uni-data-select 新增 记住上次的选项(仅 collection 存在时有效) + - uni-search-bar 修复 vue3 input 事件不生效的bug + - uni-search-bar 修复 多余代码导致的bug + - uni-tooltip 更新 text 属性变更为 content + - uni-tooltip 更新 移除 width 属性 + - uni-tooltip 修复 组件根 text 嵌套组件 warning +## 3.3.7(2022-04-06) +- 新增 更新扩展组件 uni-nav-bar、uni-list 的展示页面 +## 3.3.6(2022-03-31) +- 更新 uni-ui 组件及示例 +## 3.3.5(2022-03-30) +- 修复 插槽兼容 vue3, slot -> v-slot +- 新增 更新 uni-ui +## 3.3.4(2022-02-25) +- 修复 编译到 App 平台的控制台报错 +## 3.3.3(2022-02-23) +- 修复 模板城市选择 vue3 报错的bug +- 修复 删除 map.nvue 中多余的 enableOverlooking 变量 +- 修复 swipe-dot.nvue 中条件编译媒体查询 +## 3.3.2(2022-01-26) +- 修复 默认运行到 vue2 +## 3.3.1(2022-01-26) +- 新增 同步 uni-ui@1.4.11 + - uni-collapse 修复 微信小程序resize后组件收起的bug + - uni-countdown 修复 在微信小程序中样式不生效的bug + - uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 + - uni-load-more 新增 showText属性 ,是否显示文本 + - uni-load-more 修复 nvue 平台下不显示文本的bug + - uni-load-more 修复 微信小程序平台样式选择器报警告的问题 + - uni-nav-bar 修复 在vue下,标题不垂直居中的bug + - uni-nav-bar 修复 height 属性类型错误 + - uni-nav-bar 新增 height 属性,可修改组件高度 + - uni-nav-bar 新增 dark 属性可可开启暗黑模式 + - uni-nav-bar 优化 标题字数过多显示省略号 + - uni-nav-bar 优化 插槽,插入内容可完全覆盖 + - uni-popup 修复 isMaskClick 失效的bug + - uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 + - uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 + - uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 +## 3.3.0(2022-01-04) +- 修复 开发时在 vue3 下由 pc 端切换到手机端,不能返回上一级页面的 bug +- 优化 去掉 pc 端 topwindow 右上角用于演示的 url 导航 +## 3.2.12(2021-12-20) +- 新增 适配京东小程序 +## 3.2.11(2021-12-07) +- 修复 uni-ui 在 hello-uniapp 中丢失图标、ui 受到公共样式影响等问题 +- 修复 微信登录取值报错的问题 +## 3.2.10(2021-11-30) +- 修复 map 组件示例不显示的 bug +## 3.2.9(2021-11-19) +- 新增 uni-ui 以 uni_modules 方式引入,方便开发者从 hello-uniapp 中 copy 组件及示例 +- 优化 uni-ui 示例页面,完善组件示例 +## 3.2.8(2021-11-10) +- 新增 适配飞书平台(lark) +## 3.2.7(2021-10-26) +- 修复 uni-popup 示例的 button 文字在 iPhone 5 上换行的 bug +- 修复 uni-table 示例,页面顶部距离不对的 bug +- 修复 GlobalData示例,在vue3是无效的 bug +- 优化 删除无用的 project.swan.json 文件 +## 3.2.6(2021-10-08) +- 由于体验问题,暂时撤销 uni-ui 以 uni_modules 方式引入的修改 + +## 3.2.4(2021-09-07) +- 修复 vue3 在 H5 编译报错的 bug +- 新增 同步 uni-ui + - 新增 uni-ui 组件支持国际化 i18n + - uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 + - uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 + - uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 + - uni-datetime-picker 优化 调整字号大小,美化日历界面 + - uni-datetime-picker 修复 因国际化导致的 placeholder 失效的 bug + - uni-file-picker 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug + - uni-file-picker 新增 参数中返回 fileID 字段 + - uni-file-picker 修复 腾讯云传入fileID 不能回显的bug + - uni-file-picker 修复 选择图片后,不能放大的问题 + - uni-link 修复 在 nvue 下不显示的 bug + - uni-list 修复 在vue3中to属性在发行应用的时候报错的bug + - uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug + - uni-swipe-action 优化 close-all 方法 + - uni-collapse 优化 show-arrow 属性默认为true + - uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 + - uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 + - uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug + - uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug + - uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 + - uni-file-picker 修复 v-model 值设为 null 报错的Bug + - uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 + - uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 + - uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 + - uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 + + +## 3.2.3(2021-08-27) +- 优化 tabbar 页面移除 vuex 相关代码 +- 新增 适配 vue3 (app) +## 3.2.2(2021-08-10) +- 新增 适配快手小程序 +- 新增 同步 uni-ui + - uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 + - uni-file-picker 修复 fileExtname属性不指定值报错的Bug + - uni-file-picker 修复 在某种场景下图片不回显的Bug + - uni-link 支持自定义插槽 + - uni-calendar 修复 弹出层被 tabbar 遮盖 bug + - uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 + - uni-datetime-picker 新增 适配 vue3 + - uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 + - uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug + - uni-datetime-picker 修复 type 属性动态赋值无效的 bug + - uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug + - uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug + - uni-datetime-picker 修复 范围选未正确显示当前值的 bug + - uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug + - uni-file-picker 修复 auto-upload 属性失效的Bug +## 3.2.1(2021-07-31) +- 新增 同步 uni-ui@1.3.8 +## 3.2.0(2021-07-30) +- 新增 同时兼容 vue2 & vue3 +## 3.1.20(2021-07-30) +- 新增 同时兼容 vue2 & vue3 +## 3.1.17(2021-05-26) +- 修复 3.1.16 依赖 sass 的问题 +- 条件编译 nuve 不支持 css 属性 +## 3.1.16(2021-05-26) +- 修复 uni-data-checkbox 不关联服务空间的情况下组件报错的 Bug +## 3.1.12(2021-05-07) +- hello-uniapp 发布插件市场 diff --git a/common/airport.js b/common/airport.js new file mode 100644 index 00000000..445b6aa4 --- /dev/null +++ b/common/airport.js @@ -0,0 +1,262 @@ +export default { + "list": [{ + "letter": "A", + "data": [ + "阿克苏机场", + "阿拉山口机场", + "阿勒泰机场", + "阿里昆莎机场", + "安庆天柱山机场", + "澳门国际机场" + ] + }, { + "letter": "B", + "data": [ + "保山机场", + "包头机场", + "北海福成机场", + "北京南苑机场", + "北京首都国际机场" + ] + }, { + "letter": "C", + "data": [ + "长白山机场", + "长春龙嘉国际机场", + "常德桃花源机场", + "昌都邦达机场", + "长沙黄花国际机场", + "长治王村机场", + "常州奔牛机场", + "成都双流国际机场", + "赤峰机场" + ] + }, { + "letter": "D", + "data": [ + "大理机场", + "大连周水子国际机场", + "大庆萨尔图机场", + "大同东王庄机场", + "达州河市机场", + "丹东浪头机场", + "德宏芒市机场", + "迪庆香格里拉机场", + "东营机场", + "敦煌机场" + ] + }, { + "letter": "E", + "data": [ + "鄂尔多斯机场", + "恩施许家坪机场", + "二连浩特赛乌苏国际机场" + ] + }, { + "letter": "F", + "data": [ + "阜阳西关机场", + "福州长乐国际机场" + ] + }, { + "letter": "G", + "data": [ + "赣州黄金机场", + "格尔木机场", + "固原六盘山机场", + "广元盘龙机场", + "广州白云国际机场", + "桂林两江国际机场", + "贵阳龙洞堡国际机场" + ] + }, { + "letter": "H", + "data": [ + "哈尔滨太平国际机场", + "哈密机场", + "海口美兰国际机场", + "海拉尔东山国际机场", + "邯郸机场", + "汉中机场", + "杭州萧山国际机场", + "合肥骆岗国际机场", + "和田机场", + "黑河机场", + "呼和浩特白塔国际机场", + "淮安涟水机场", + "黄山屯溪国际机场" + ] + }, { + "letter": "I", + "data": [] + }, { + "letter": "J", + "data": [ + "济南遥墙国际机场", + "济宁曲阜机场", + "鸡西兴凯湖机场", + "佳木斯东郊机场", + "嘉峪关机场", + "锦州小岭子机场", + "景德镇机场", + "井冈山机场", + "九江庐山机场", + "九寨黄龙机场" + ] + }, { + "letter": "K", + "data": [ + "喀什机场", + "克拉玛依机场", + "库车龟兹机场", + "库尔勒机场", + "昆明巫家坝国际机场" + ] + }, { + "letter": "L", + "data": [ + "拉萨贡嘎机场", + "兰州中川机场", + "丽江三义机场", + "黎平机场", + "连云港白塔埠机场", + "临沧机场", + "临沂机场", + "林芝米林机场", + "柳州白莲机场", + "龙岩冠豸山机场", + "泸州蓝田机场", + "洛阳北郊机场" + ] + }, { + "letter": "M", + "data": [ + "满洲里西郊机场", + "绵阳南郊机场", + "漠河古莲机场", + "牡丹江海浪机场" + ] + }, { + "letter": "N", + "data": [ + "南昌昌北国际机场", + "南充高坪机场", + "南京禄口国际机场", + "南宁吴圩机场", + "南通兴东机场", + "南阳姜营机场", + "宁波栎社国际机场" + ] + }, { + "letter": "O", + "data": [] + }, { + "letter": "P", + "data": [ + "普洱思茅机场" + ] + }, { + "letter": "Q", + "data": [ + "齐齐哈尔三家子机场", + "秦皇岛山海关机场", + "青岛流亭国际机场", + "衢州机场", + "泉州晋江机场" + ] + }, { + "letter": "R", + "data": [ + "日喀则和平机场" + ] + }, { + "letter": "S", + "data": [ + "三亚凤凰国际机场", + "汕头外砂机场", + "上海虹桥国际机场", + "上海浦东国际机场", + "深圳宝安国际机场", + "沈阳桃仙国际机场", + "石家庄正定国际机场", + "苏南硕放国际机场" + ] + }, { + "letter": "T", + "data": [ + "塔城机场", + "太原武宿国际机场", + "台州路桥机场 (黄岩机场)", + "唐山三女河机场", + "腾冲驼峰机场", + "天津滨海国际机场", + "通辽机场", + "铜仁凤凰机场" + ] + }, { + "letter": "U", + "data": [] + }, { + "letter": "V", + "data": [] + }, { + "letter": "W", + "data": [ + "万州五桥机场", + "潍坊机场", + "威海大水泊机场", + "文山普者黑机场", + "温州永强国际机场", + "乌海机场", + "武汉天河国际机场", + "乌兰浩特机场", + "乌鲁木齐地窝堡国际机场", + "武夷山机场", + "梧州长洲岛机场" + ] + }, { + "letter": "X", + "data": [ + "西安咸阳国际机场", + "西昌青山机场", + "锡林浩特机场", + "西宁曹家堡机场", + "西双版纳嘎洒机场", + "厦门高崎国际机场", + "香港国际机场", + "襄阳刘集机场", + "兴义机场", + "徐州观音机场" + ] + }, { + "letter": "Y", + "data": [ + "延安二十里堡机场", + "盐城机场", + "延吉朝阳川机场", + "烟台莱山国际机场", + "宜宾菜坝机场", + "宜昌三峡机场", + "伊春林都机场", + "伊宁机场", + "义乌机场", + "银川河东机场", + "永州零陵机场", + "榆林榆阳机场", + "玉树巴塘机场", + "运城张孝机场" + ] + }, { + "letter": "Z", + "data": [ + "湛江机场", + "昭通机场", + "郑州新郑国际机场", + "芷江机场", + "重庆江北国际机场", + "中卫香山机场", + "舟山朱家尖机场", + "珠海三灶机场" + ] + }] +} diff --git a/common/api/httpRequest.js b/common/api/httpRequest.js new file mode 100644 index 00000000..97f1ce26 --- /dev/null +++ b/common/api/httpRequest.js @@ -0,0 +1,41 @@ + +function service(options = {}) { + let contentType = localStorage.token_type ? "application/json" : "application/x-www-form-urlencoded"; + // contentType ="application/x-www-form-urlencoded"; + contentType ="application/json"; + localStorage.setItem('token', "f6350745-d4ac-4e1a-82f2-7e1a6efd8a3f") + + let token= localStorage.getItem("token") + options.header = { + "content-type": contentType, + "Authorization": "Bearer "+token + // 'withCredentials': true, + // 'Blade-Auth':'bearer '+store.state.token, + // 'token_type': localStorage.token_type + }; + return new Promise((resolve, reject) => { + options.success = (res) => { + if (res ) { + if(res.statusCode == 200){ + if(res.data.code==0){ + resolve(res.data); + }else { + reject(options.url + res.data.msg) + } + + }else { + reject(options.url + res.data.msg) + } + + } else { + reject(options.url + res.data.msg) + } + }; + options.fail = (err) => { + reject(err); + }; + uni.request(options); + }); + } + + export default service; diff --git a/common/array.js b/common/array.js new file mode 100644 index 00000000..bb92003e --- /dev/null +++ b/common/array.js @@ -0,0 +1,281 @@ +// 详情和审批 +export function getDetailAndApproveOption() { + let option_detail = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '审批', + style: { + backgroundColor: '#00CC33' + } + } + ]; + return option_detail; +} +//详情、审批通过、审批驳回 +export function getDetailAndApprovePassAndApproveNoOption() { + let option_detail = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '审批\n通过', + style: { + backgroundColor: '#00CC33' + } + }, + { + text: '审批\n驳回', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_detail; +} +//详情、处理、审批不通过 +export function getDetailAndHandleOption() { + let option_detail = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '处理', + style: { + backgroundColor: '#00CC33' + } + } + ]; + return option_detail; +} +//详情、关闭 +export function getDetailAndCloseOption() { + let option_detail = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '关闭', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_detail; +} +// 采购退货返回侧滑按钮 详情 、编辑、库位、移除 +export function getPurchaseReceiptOption(allowModifyQty,allowModifyLocation) { + var option = [] + option.push(...getDetailOption()) + if (allowModifyQty == "TRUE") { + option.push(...getEditOption()) + } + if (allowModifyLocation == "TRUE") { + option.push(...getLocationOption()) + } + option.push(...getRemoveOption()) + return option; +} + +//详情 +export function getDetailOption() { + let option_detail = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }]; + return option_detail; +} + +//详情移除(扫描后不允许修改数量) +export function getDetailRemoveOption() { + let option_detail_edit_remove = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '移除', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_detail_edit_remove; +} + +export function getRemoveOption() { + let option_detail_remove = [{ + text: '移除', + style: { + backgroundColor: '#F56C6C' + } + }]; + return option_detail_remove; +} + + + +export function getEditOption() { + let option_detail_edit = [{ + text: '编辑', + style: { + backgroundColor: '#F1A532' + } + }]; + return option_detail_edit; +} +export function getLocationOption() { + let option_detail_location = [{ + text: '库位', + style: { + backgroundColor: '#00A3FF' + } + }]; + return option_detail_location; +} + + +//清空 +export function getClearOption() { + let option_detail_edit_remove = [{ + text: '清空', + style: { + backgroundColor: '#F56C6C' + } + }]; + return option_detail_edit_remove; +} + + +//详情编辑移除 +export function getDetailEditRemoveOption() { + let option_detail_edit_remove = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '编辑', + style: { + backgroundColor: '#F1A532' + } + }, + { + text: '移除', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_detail_edit_remove; +} + + +//详情编辑放弃 +export function getDetailGiveupOption() { + let option_detail_giveup = [{ + text: '详情', + style: { + backgroundColor: '#3C9CFF' + } + }, + { + text: '放弃', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_detail_giveup; +} + + + +//详情编辑移除 +export function getEditRemoveOption() { + let option_edit_remove = [{ + text: '编辑', + style: { + backgroundColor: '#F1A532' + } + }, + { + text: '移除', + style: { + backgroundColor: '#F56C6C' + } + } + ]; + return option_edit_remove; +} + + +// 库存状态字典项 +export function getInventoryStatusArray() { + let array = [{ + text: '待检', + value: "kcztINSP" + }, { + text: '合格', + value: "kcztOK" + }, { + text: '不合格', + value: "kcztNOK" + }, { + text: '隔离', + value: "kcztHOLD" + }, { + text: '报废', + value: "kcztSCRAP" + }] + return array; +} + +// 业务类型字典项 +export function getBusinessTypeArray() { + let array = [{ + text: '供应商发货', + value: "SupplierDeliver" + }, { + text: '采购收货', + value: "PurchaseReceipt" + }, { + text: '采购退货', + value: "PurchaseReturn" + }, { + text: '采购上架', + value: "PurchasePutaway" + }] + return array; +} + +export function getLocationTypeArray(data) { + var list = [] + if (data == undefined || data == null || data == "") { + return list + } + + if (data.indexOf(',') < 0) { + list.push(data) + } else { + var arrayItems = data.split(',') + arrayItems.forEach(res => { + list.push(res) + }) + } + + return list +} diff --git a/common/balance.js b/common/balance.js new file mode 100644 index 00000000..6e72e2cf --- /dev/null +++ b/common/balance.js @@ -0,0 +1,336 @@ + +import { + getManagementPrecision, + getBalanceByFilter +} from '@/api/request2.js'; + +/** + * "itemCode": [], + "locationCode":"INSPECT" + 管理精度策略 + * @param {*} + * + */ +export function getManagementPrecisions(itemCodes, locationCode, callback) { + // let jsonParem = JSON.stringify(param) + let result = { + list: [], + success: true, + message: '' + }; + + var params = { + itemCodes: itemCodes, + locationCode: locationCode + } + getManagementPrecision(params).then(res => { + if (res.data == null) { + result.success = false + result.message = '未查询到管理精度信息' + } else { + result.list = res.data; + } + callback(result); + }).catch(error => { + result.success = false; + result.message = error; + callback(result); + }) +} + +export function getBalanceByManagementPrecision(label, locationCode, callback) { + let result = { + list: [], + success: true, + message: '' + }; + let params = { + itemCodes: [label.itemCode], + locationCode: locationCode + }; + // let jsonParem = JSON.stringify(param) + getManagementPrecision(params).then(res => { + let managementPrecision = res.data[0].ManagementPrecision; + switch (managementPrecision) { + case 'BY_PACKAGING': + byPacking(label, locationCode, res => { + res.managementPrecision = managementPrecision; + callback(res); + }); + break; + case 'BY_BATCH': + byBatch(label, locationCode, res => { + res.managementPrecision = managementPrecision; + callback(res); + }); + break; + case 'BY_QUANTITY': + byQuantity(label, locationCode, res => { + res.managementPrecision = managementPrecision; + callback(res); + }); + break; + case 'BY_UNIQUEID': + byUniqueId(label, res => { + res.managementPrecision = managementPrecision; + callback(res); + }); + break; + } + }).catch(error => { + let result = { + success: false, + message: error + }; + callback(result); + }) +} +/** 按包装管理查询库存 + * @param {Object} label + * @param {Object} locationCode + * @param {Object} callback + */ +export function byPacking(label, locationCode, callback) { + let result = { + success: true, + message: '', + data: {} + }; + var filters = [] + filters.push({ + column: "packing_number", + action: "==", + value: label.packingNumber + }) + filters.push({ + column: "item_code", + action: "==", + value: label.itemCode + }) + filters.push({ + column: "batch", + action: "==", + value: label.batch + }) + filters.push({ + column: "location_code", + action: "==", + value: locationCode + }) + + var params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + getBalanceByFilter(params).then(res => { + if (res.data == null) { + result.success = false; + result.message = + "按包装管理查询、未查询到物料号[" + label.itemCode + "]" + + "到箱码[" + label.packingNumber + "]" + + "批次[" + label.batch + "]" + + "库位[" + label.locationCode + "]的信息" + } else { + result.success = true; + result.data = res.data; + } + + callback(result) + }).catch(err => { + result.success = false; + result.data = null; + result.message = err; + callback(result) + }) +} +/** 按批次管理查询库存 + * @param {Object} label + * @param {Object} locationCode + * @param {Object} callback + */ +export function byBatch(label, locationCode, callback) { + var filters = [] + filters.push({ + column: "item_code", + action: "==", + value: label.itemCode + }) + filters.push({ + column: "batch", + action: "==", + value: label.batch + }) + filters.push({ + column: "location_code", + action: "==", + value: locationCode + }) + + var params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + + let result = { + success: true, + message: '', + data: {} + }; + getBalanceByFilter(params).then(res => { + if (res.data == null) { + result.success = false; + result.message = + "按批次管理查询、未查询到物料号[" + label.itemCode + "]" + + "批次[" + label.batch + "]" + + "库位[" + label.locationCode + "]的信息" + } else { + result.success = true; + result.data = res.data; + } + callback(result) + }).catch(err => { + result.success = false; + result.data = null; + result.message = err.message; + callback(result) + }) +} +/** 按数量管理查询库存 + * @param {Object} label + * @param {Object} locationCode + * @param {Object} callback + */ +export function byQuantity(label, locationCode, callback) { + let result = { + success: true, + message: '', + data: {} + }; + + var filters = [] + filters.push({ + column: "item_code", + action: "==", + value: label.itemCode + }) + filters.push({ + column: "location_code", + action: "==", + value: locationCode + }) + + var params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + + getBalanceByFilter(params).then(res => { + if (res.data == null) { + result.success = false; + result.message = + "按数量管理查询、未查询到物料号[" + label.itemCode + "]" + + "库位[" + label.locationCode + "]的信息" + } else { + result.success = true; + result.data = res.data; + } + callback(result) + }).catch(err => { + result.success = false; + result.data = null; + result.message = err.message; + callback(result) + }) +} +/** 按唯一码管理查询库存 + * @param {Object} label + * @param {Object} locationCode + * @param {Object} callback + */ +export function byUniqueId(label, locationCode, callback) { + let param = { + packingNumber: label.packingNumber + }; + let result = { + success: true, + message: '', + data: {} + }; + + var filters = [] + filters.push({ + column: "packing_number", + action: "==", + value: label.packingNumber + }) + + var params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + + getBalanceByFilter(params).then(res => { + if (res.data == null) { + result.success = false; + result.message = + "按唯一码管理查询、未查询到箱码[" + label.packingNumber + "]" + + "的信息" + } else { + result.success = true; + result.data = res.data; + } + callback(result) + }).catch(err => { + result.success = false; + result.data = null; + result.message = err.message; + callback(result) + }) +} +/** + * 查询指定库位下的库存 + * @param {*} param + * @param {*} callback + */ +export function balanceByLocation(locationCode, callback) { + let result = { + success: true, + message: '', + data: {} + }; + + var filters = [] + filters.push({ + column: "location_code", + action: "==", + value: locationCode + }) + + var params = { + filters: filters, + pageNo: 1, + pageSize: 100, + } + + getBalanceByFilter(params).then(res => { + if (res.data == null) { + result.success = false; + result.message = + "按唯一码管理查询、未查询到库位[" + label.locationCode + "]" + + "的信息" + } else { + result.success = true; + result.data = res.data; + } + callback(result) + }).catch(err => { + result.success = false; + result.data = null; + result.message = err.message; + callback(result) + }) +} diff --git a/common/basic.js b/common/basic.js new file mode 100644 index 00000000..4133ed10 --- /dev/null +++ b/common/basic.js @@ -0,0 +1,871 @@ +let maxPageSize = 1000; +export { + maxPageSize +} + +let jobStatusList = []; +let itemStatusList =[]; +let locationTypeList = []; +let uomList = []; +let inventoryStatusList = []; +let containerTypeList = []; +let packUnitList = []; +let requestStatusList = []; +let unplannedReceiptReasonList = []; +let unplannedIissueReason = []; +let scrapReasonList = []; +let inspectFailedReasonList = []; + + + +//获取字典信息 +export function clearCacheData() { + jobStatusList = []; + itemStatusList = []; + locationTypeList = []; + uomList = []; + inventoryStatusList = []; + containerTypeList = []; + packUnitList = []; + requestStatusList = []; + unplannedReceiptReasonList = []; + unplannedIissueReason = []; + scrapReasonList = []; + inspectFailedReasonList = []; + +} + +//获取字典信息 +export function getDirectoryInfo(type) { + var result = []; + var list = uni.getStorageSync("dictionary") + if (list != undefined && list.length > 0) { + for (let item of list) { + if (item.type == type) { + result = item.subList + break; + } + } + } + + return result +} + + + +//将字典项转为数组 +export function getDirectoryItemArray(data) { + var array = [] + if (data == undefined || data == null || data == "") { + return array + } + + if (data.indexOf(',') < 0) { + array.push(data) + } else { + var arrayItems = data.split(',') + arrayItems.forEach(res => { + array.push(res) + }) + } + return array +} + +//查询字典项是否在列表中 +export function checkDirectoryItemExist(list, type) { + let exist = false; + if (list == null || list.length == 0) { + exist = true; + } else { + var temp = list.filter(res => { + if (res == type) { + return res + } + }) + if (temp != undefined && temp.length > 0) { + exist = true + } + } + return exist +} + +//获取任务状态 +export function getJobStateInfo(value) { + var resultInfo = ""; + if (jobStatusList.length == 0) { + jobStatusList = getDirectoryInfo("job_status") + } + if (jobStatusList.length > 0) { + for (let item of jobStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取任务状态样式 +export function getJobStateStyle(value) { + let item = getJobStateInfo(value); + if (item == null || item == '') { + return 'other' + } else { + if (item.remark == '') { + return 'other' + } else { + return item.remark; + } + } +} + +//获取库位描述 +export function getListLocationTypeDesc(lst) { + let desc = ''; + lst.forEach(res => { + desc += getLocationTypeInfo(res).label + "," + }) + desc = desc.slice(0, -1); + return desc; +} + +//获取物品状态 +export function getItemStateInfo(value) { + var resultInfo = ""; + if (itemStatusList.length == 0) { + itemStatusList = getDirectoryInfo("item_status") + } + if (itemStatusList.length > 0) { + for (let item of itemStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库位类型 +export function getLocationTypeInfo(value) { + var resultInfo = ""; + if (locationTypeList.length == 0) { + locationTypeList = getDirectoryInfo("location_type") + } + if (locationTypeList.length > 0) { + for (let item of locationTypeList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库位类型名称 +export function getLocationTypeName(value) { + let location = getLocationTypeInfo(value); + + return location == '' ? value : location.label; +} + +//获取计量单位 +export function getUnitInfo(value) { + var resultInfo = ""; + if (uomList.length == 0) { + uomList = getDirectoryInfo("uom") + } + if (uomList.length > 0) { + for (let item of uomList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取包装单位 +export function getStdPackUnitInfo(value) { + var resultInfo = ""; + if (packUnitList.length == 0) { + packUnitList = getDirectoryInfo("pack_unit") + } + if (packUnitList.length > 0) { + for (let item of packUnitList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取申请状态 +export function getRequestStateInfo(value) { + var resultInfo = ""; + if (requestStatusList.length == 0) { + requestStatusList = getDirectoryInfo("request_status") + } + if (requestStatusList.length > 0) { + for (let item of requestStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库存状态 +export function getInventoryStatusInfo(value) { + var resultInfo = ""; + if (inventoryStatusList.length == 0) { + inventoryStatusList = getDirectoryInfo("inventory_status") + } + if (inventoryStatusList.length > 0) { + for (let item of inventoryStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库存样式 +export function getInventoryStatusStyle(value) { + let item = getInventoryStatusInfo(value); + if (item == null || item == '') { + return 'other' + } else { + if (item.remark == '') { + return 'other' + } else { + return item.remark; + } + } +} + +//获取库存状态 +export function getInventoryStatusName(value) { + let item = getInventoryStatusInfo(value); + if (item == null || item == '') { + return value + } else { + if (item.label == '') { + return value + } else { + return item.label; + } + } +} + + +//获取状态描述 +export function getInventoryStatusDesc(lst) { + let desc = ''; + lst.forEach(res => { + desc += getInventoryStatusInfo(res).label + "," + }) + desc = desc.slice(0, -1); + return desc; +} + + +//获取器具状态 +export function getContainerStatusInfo(value) { + var resultInfo = ""; + if (containerTypeList.length == 0) { + containerTypeList = getDirectoryInfo("container_type") + } + if (containerTypeList.length > 0) { + for (let item of containerTypeList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取计划外入库原因 +export function getUnPlannedReceiptReasonList(value) { + if (unplannedReceiptReasonList.length == 0) { + unplannedReceiptReasonList = getDirectoryInfo("unplanned_receipt_reason") + } + unplannedReceiptReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return unplannedReceiptReasonList +} + +//获取计划外出库原因 +export function getUnPlannedIssuseReasonList(value) { + if (unplannedIissueReason.length == 0) { + unplannedIissueReason = getDirectoryInfo("unplanned_issue_reason") + } + unplannedIissueReason.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return unplannedIissueReason +} + +//获取报废出库原因 +export function getScarpReasonList(value) { + if (scrapReasonList.length == 0) { + scrapReasonList = getDirectoryInfo("scrap_reason") + } + scrapReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return scrapReasonList +} + +//获取检验不合格原因 +export function getInspectReasonList(value) { + if (inspectFailedReasonList.length == 0) { + inspectFailedReasonList = getDirectoryInfo("inspect_failed_reason") + } + inspectFailedReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return inspectFailedReasonList +} + + +// //数量状态 +// export function getCoutJobStatuStyle(val) { +// if (val == 1) return 'state_inspect' +// else if (val == 2) return 'state_ok' +// else if (val == 3) return 'state_nook' +// else return 'other' +// } + +// export function getCountJobStatuDesc(val) { +// if (val == 1) return '待检' +// else if (val == 2) return '合格' +// else if (val == 3) return '不合格' +// else return "未知" +// } + +// export function getPartCodeState(val) { +// if (val == 0) return '可用' +// else if (val == 1) return '新增' +// else if (val == 2) return '隔离' +// else if (val == 3) return '未知' +// else return '未知' +// } + +// export function getLocationState(val) { +// if (val == 'kwlxINSP') return '待检库' +// else if (val == 'kwlxRAW') return '原料库' +// else if (val == 'kwlxSEMI') return '半成品库' +// else if (val == 'kwlxFG') return '成品库' +// else if (val == 'kwlxWIP') return '线边库' +// else if (val == 'kwlxHOLD') return '隔离库' +// else if (val == 'kwlxSCRAP') return '报废库' +// else if (val == 'kwlxNOK') return '不合格品库' +// else if (val == 'kwxOVERFLOW') return '溢出库' +// else if (val == 'kwlxCUsT') return '客户寄售库' +// else if (val == 'kwlxOUTSIDE') return '外库' +// else if (val == 'kwlxDIFF') return '盘点差异库' +// else if (val == 'kwxTRANSPORT') return '在途库' +// else return '未知' + +// } + +// export function getLocationStyle(val) { +// if (val == 'kwlxRAW') return 'state_raw' +// else if (val == 'kwlxFG') return 'state_fg' +// else if (val == 'kwlxSEMI') return 'state_semi' +// else if (val == 'kwlxHOLD') return 'state_hold' +// else if (val == 4) return 'state_unk' +// } + +// //任务状态 +// export function getJobStatuStyle(val) { +// if (val == 'JOB_PENDING') return 'job_state_un-doing' +// else if (val == '1') return 'job_state_doing' +// else if (val == 'reztDONE') return 'job_state_completed' +// else if (val == 'rwztCLOSED') return 'job_state_close' +// else if (val == 'rwztCANCELLED') return 'job_state_cancelled' +// else return 'unk' +// } +// //任务状态 +// //open pending completed close +// export function getJobStatuDesc(val) { +// if (val == 'JOB_PENDING') return '待处理' +// else if (val == '1') return '执行中' +// else if (val == 'reztDONE') return '完成' +// else if (val == 'rwztCLOSED') return '关闭' +// else if (val == 'rwztCANCELLED') return '作废' +// else return '其他' +// } + +// //检验任务状态 +// export function getInspectTypeStyle(val) { +// if (val == 0) return 'unk' +// else if (val == 1) return 'exempt' +// else if (val == 2) return 'full' +// else if (val == 3) return 'sampling' +// else if (val == 4) return 'pick' +// else return 'other' +// } +// //open pending completed close +// export function getInspectTypeDesc(val) { +// if (val == 0) return '未知' +// else if (val == 1) return '免检' +// else if (val == 2) return '全检' +// else if (val == 3) return '抽检' +// else if (val == 4) return '挑选' +// else return '其他' +// } + + +// //库存状态 +// export function getInventoryStatusStyle(val) { +// if (val == 'kcztUNK') return 'unk' +// else if (val == 'kcztINSP') return 'inventory_status_insp' +// else if (val == 'kcztOK') return 'inventory_status_ok' +// else if (val == 'kcztNOK') return 'inventory_status_nok' +// else if (val == 'kcztHOLD') return 'inventory_status_hold' +// else if (val == 'kcztSCRAP') return 'inventory_status_scarp' +// else return 'other' +// } + + +// //库存状态 +// export function getInventoryStatusDesc(val) { +// if (val == 'kcztUNK') return '未知' +// else if (val == 'kcztINSP') return '待检' +// else if (val == 'kcztOK') return '合格' +// else if (val == 'kcztNOK') return '不合格' +// else if (val == 'kcztHOLD') return '隔离' +// else if (val == 'kcztSCRAP') return '报废' +// else return '其他' +// } + +// //库存状态 +// export function getInventoryStatusStyle(val) { +// if (val == 0) return 'unk' +// else if (val == 1) return 'insp' +// else if (val == 2) return 'ok' +// else if (val == 3) return 'nok' +// else if (val == 4) return 'hold' +// else if (val == 5) return 'scarp' +// else if (val == 6) return 'frozen' +// else if (val == 31) return 'nok' +// else return 'other' +// } + + +// //库存状态kcztINSP +// export function getInventoryStatusDesc(val) { +// if (val == 0) return '未知' +// else if (val == 1) return '待检' +// else if (val == 2) return '合格' +// else if (val == 3) return '不合格' +// else if (val == 4) return '隔离' +// else if (val == 5) return '报废' +// else if (val == 6) return '冻结' +// else if (val == 31) return '不合格' +// // else if (val == 31) return '目检不合格' +// else return '其他' +// } + +// //零件状态 +// export function getItemStatusStyle(val) { +// if (val == "wpztUNK") return 'item_unk' +// else if (val == "wpztENABLE") return 'item_active' +// else if (val == "wpztHOLD") return 'item_hold' +// else if (val == "wpztNEW") return 'item_new' +// else if (val == "wpztPLAN") return 'item_plan' +// else if (val == "wpztDISABLE") return 'item_disable' +// else return 'other' +// } + +// export function getItemStatusStyle(val) { +// if (val == 0) return 'unk_item' +// else if (val == 1) return 'active_item' +// else if (val == 2) return 'hold_item' +// else if (val == 3) return 'new_item' +// else if (val == 4) return 'plan_item' +// else if (val == 5) return 'disable_item' +// else return 'other' +// } + + +// //零件状态描述 +// export function getItemStatusDesc(val) { +// if (val == "wpztUNK") return '未知' +// else if (val == "wpztENABLE") return '可用' +// else if (val == "wpztHOLD") return '隔离' +// else if (val == "wpztNEW") return '新增' +// else if (val == "wpztPLAN") return '规划' +// else if (val == "wpztDISABLE") return '禁用' +// else return '其他' +// } + +// //盘点状态 +// export function getCountStageTypeStyle(val) { +// if (val == 0) return 'unk' +// else if (val == 1) return 'initial' +// else if (val == 2) return 'afresh' +// else if (val == 3) return 'supervision' +// else return 'other' +// } + + +// //盘点状态 +// export function getCountStageDesc(val) { +// if (val == 0) return '未知' +// else if (val == 1) return '初盘' +// else if (val == 2) return '重盘' +// else if (val == 3) return '监盘' +// else return '其他' +// } + +// //盘点计划类型 +// export function getCheckTypeDesc(val) { +// if (val == 0) return '未知' +// else if (val == 1) return '周期盘点' +// else if (val == 2) return '物理盘点' +// else return '其他' +// } + +// //盘点方式 +// export function getCountMethodDesc(val) { +// if (val == 0) return '未知' +// else if (val == 1) return '库位盘点' +// else if (val == 2) return '物品盘点' +// else if (val == 3) return '库位零件盘点' +// else return '其他' +// } + +// //获取库位类型 +// export function getLocationType(val) { +// if (val == 'kwlxINSP') return 'location_inspect' +// else if (val == 'kwlxRAW') return 'location_raw' +// else if (val == 'kwlxSEMI') return 'location_semi' +// else if (val == 'kwlxFG') return 'location_fg' +// else if (val == 'kwlxWIP') return 'location_wip' +// else if (val == 'kwlxHOLD') return 'location_hold' +// else if (val == 'kwlxSCRAP') return 'location_scrap' +// else if (val == 'kwlxNOK') return 'location_nok' +// else if (val == 'kwxOVERFLOW') return 'location_overflow' +// else if (val == 'kwlxCUsT') return 'location_cust' +// else if (val == 'kwlxOUTSIDE') return 'location_outside' +// else if (val == 'kwlxDIFF') return 'location_diff' +// else if (val == 'kwxTRANSPORT') return 'location_transport' +// else return 'location_other' +// } + +// //获取库位类型描述 +// export function getLocationTypeDesc(val) { +// if (val == 'kwlxINSP') return '待检库' +// else if (val == 'kwlxRAW') return '原料库' +// else if (val == 'kwlxSEMI') return '半成品库' +// else if (val == 'kwlxFG') return '成品库' +// else if (val == 'kwlxWIP') return '线边库' +// else if (val == 'kwlxHOLD') return '隔离库' +// else if (val == 'kwlxSCRAP') return '报废库' +// else if (val == 'kwlxNOK') return '不合格品库' +// else if (val == 'kwxOVERFLOW') return '溢出库' +// else if (val == 'kwlxCUsT') return '客户寄售库' +// else if (val == 'kwlxOUTSIDE') return '外库' +// else if (val == 'kwlxDIFF') return '盘点差异库' +// else if (val == 'kwxTRANSPORT') return '在途库' +// else return '其他' + +// } + +// //获取任务类型描述 +// export function getJobType(val) { +// if (val == 0) return 'uno' +// else if (val == 1) return 'PurchaseReceiptJob' //采购收货 +// else if (val == 2) return 'PurchaseReturnJob' //采购退货任务 +// else if (val == 3) return 'InspectJob' //检验任务 +// else if (val == 4) return 'PutawayJob' //上架任务 +// else if (val == 5) return 'ProductReceiveJob' //完工收货任务 +// else if (val == 6) return 'IssueJob' //发料任务 +// else if (val == 7) return 'DeliverJob' //发货任务 +// else if (val == 8) return 'CheckJob' //校验任务 +// else if (val == 9) return 'CountJob' //盘点任务 +// else return 'Other' +// } + + +// 获取业务类型字典项 +export function getBusinessTypeDesc(type) { + if (type == "SupplierDeliver") { + return "供应商发货" + } else if (type = "PurchaseReceipt") { + return "采购收货"; + } else if (type = "PurchaseReturn") { + return "采购退货"; + } else if (type = "PurchasePutaway") { + return "采购上架"; + } +} + + +export function queryManageModel(managementList, itemCode) { + var result = managementList.filter(res => { + if (res.itemCode == itemCode) { + return res.ManagementPrecision + } + }) + + if (result != undefined) { + return result[0].ManagementPrecision + } else { + return "" + } +} + +export function getPackingNumberAndBatch(managementList, itemCode,packingNumber,batch) { + var itemInfo = { + packingNumber: "", + batch: "" + } + + var manageType = queryManageModel(managementList, itemCode) + if (manageType == "BY_QUANTITY") { + itemInfo.packingNumber = "" + itemInfo.batch = "" + } else if (manageType == "BY_BATCH") { + itemInfo.packingNumber = "" + itemInfo.batch = batch + } else if (manageType == "BY_PACKAGING") { + itemInfo.packingNumber = packingNumber + itemInfo.batch = batch + } else if (manageType == "BY_UNIQUE_ID") { + itemInfo.packingNumber = packingNumber + itemInfo.batch = batch + } + return itemInfo; + +} + +// //提示是否消息 +// export function showConfirmMsg(content, callback) { +// uni.showModal({ +// title: '提示', +// cancelText: '否', +// confirmText: '是', +// content: content, +// success: function(res) { +// if (res.confirm) { +// callback(true); +// } else { +// callback(false); +// } +// }, +// }) +// scanErrorAudio(); +// } + +export function compare(key) { + return function(a, b) { + var val1 = a[key]; + var val2 = b[key]; + return val2 - val1; + } +} + +export function compareDesc(key) { + return function(a, b) { + var val1 = a[key]; + var val2 = b[key]; + return val1 - val2; + } +} + +export function goHome() { + uni.reLaunch({ + url: '/pages/index/index' + }).catch((e) => {}); + +} +/** + * 获取当天时间2023-11-07 00:00:00-->2023-11-07 23:59:59 + */ +export function getTodayDate() { + var startTime = new Date(new Date().toLocaleDateString()).getTime(); + var endTime = startTime+24*60*60*1000-1 + console.log("获取时间",startTime+","+endTime) + return startTime+","+endTime; +} + +export function getCurrDate() { + var date = new Date(); + return getDate(date); +} + +export function getCurrDateTime() { + var date = new Date(); + return getDate(date) + " " + getTime(date); +} + +export function getISODateTime() { + var date = new Date(); + return getDate(date) + "T" + getTime(date) + "Z"; +} + +//格式化处理 +export function dateFormat(time) { + let date = new Date(time); + return getDate(date) + " " + getTime(date); +} + +//获取日期部分 +export function getDate(date) { + var year = date.getFullYear(); //年 + var month = date.getMonth() + 1; //月 + var day = date.getDate(); //日 + + month = month < 10 ? "0" + month : month; + day = day < 10 ? "0" + day : day; + return year + "-" + month + "-" + day; +} + +//获取时间部分 +export function getTime(date) { + let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); + let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); + let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); + // 拼接 + return hours + ":" + minutes + ":" + seconds; +} + +//将20220713转成2022-07-13 +export function toYYYY_MM_DD(value) { + return value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8) +} + +export function getRootFontSize() { + const self = this; + var fontSize = getApp().globalData.rootFontSize; + if (fontSize) { + return fontSize; + } else { + fontSize = uni.getStorageSync('root_font_size'); + if (fontSize) { + getApp().globalData.rootFontSize = fontSize; + } else { + fontSize = '20px'; //默认字体大小 + self.setRootFontSize(fontSize); + } + return fontSize; + + } +} + +export function getRemoveOption() { + let options = [{ + text: '移除', + style: { + backgroundColor: '#F56C6C' + } + }] + return options; +} + +export function setRootFontSize(fontSize) { + uni.setStorageSync('root_font_size', fontSize); + getApp().globalData.rootFontSize = fontSize; +} + + +export function scanErrorAudio() { + var music = null; + music = uni.createInnerAudioContext(); //创建播放器对象 + music.src = "../../static/video/error.wav"; + music.volume = 1; + music.play(); //执行播放 + music.onEnded(() => { + //播放结束 + music = null; + }); +} + + +export function newMessageAudio() { + var music = null; + music = uni.createInnerAudioContext(); //创建播放器对象 + music.src = "../../static/video/error.wav"; + music.volume = 1; + music.play(); //执行播放 + music.onEnded(() => { + //播放结束 + music = null; + }); +} + + +export function vibrate() { + uni.vibrateLong({ + success: function() { + + } + }) +} + + +export function getDataSource(details) { + let items = []; + details.forEach(detail => { + var item = items.find(r => + r.itemCode == detail.itemCode) + if (item == undefined) { + item = createItemInfo(detail); + let newDetail = createDetailInfo(detail); // + item.details.push(newDetail); + items.push(item) + } else { + item.qty += Number(detail.qty) + let newDetail = createDetailInfo(detail); // + item.details.push(newDetail); + } + }) + return items; +} + +export function createItemInfo(res) { + let item = { + itemCode: res.itemCode, + itemName: res.itemName, + stdPackQty: Number(res.stdPackQty), + stdPackUnit: res.stdPackUnit, + qty: Number(res.qty), + handleQty: 0, + uom: res.uom, + details: [] + } + return item; +} + +export function createDetailInfo(data) { + data.scaned = false; + // data.record = {}; + let detail = data; + return detail; +} + +export function updateTitle(title) { + uni.setNavigationBarTitle({ + title: title + }) +} diff --git a/common/cache.js b/common/cache.js new file mode 100644 index 00000000..e69de29b diff --git a/common/classify.data.js b/common/classify.data.js new file mode 100644 index 00000000..857a59e6 --- /dev/null +++ b/common/classify.data.js @@ -0,0 +1,371 @@ +export default [{ + "name": "库存查询", + "children": [{ + "name": "按零件查询库存", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "pages/query/item", + "index": 1, + }, + { + "name": "按库位查询库存", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/query/location", + "index": 2, + }, + { + "name": "按器具查询库存", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/query/container", + "index": 3, + }, + { + "name": "单据查询", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/query/number", + "index": 3, + } + + ] + }, + { + "name": "原料管理", + "children": [{ + "name": "采购收货任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/purchaseReceipt/job/receiptJob", + "index": 1, + }, + { + "name": "到货检验任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/inspect/job/inspectJob", + "index": 1, + }, + { + "name": "采购退货任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/purchaseReturn/job/returnJob", + "index": 2, + }, + { + "name": "采购退货记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/purchaseReturn/record/returnRecord", + "index": 3, + }, + + { + "name": "原料上架任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/putaway/job/putawayJob", + "index": 3, + }, + { + "name": "原料上架记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/putaway/record/putawayRecord", + "index": 3, + }, + { + "name": "发料任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/issue/job/issueJob", + "index": 4, + }, + { + "name": "直接发料", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/issue/record/issueRecord", + "index": 5, + }, + { + "name": "生产收料任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReceipt/job/productionReceiptJob", + "index": 5, + }, + { + "name": "生产收料记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReceipt/record/productionReceiptRecord", + "index": 5, + }, + { + "name": "生产退料任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReturn/job/returnJob", + "index": 6, + }, + { + "name": "生产合格退料", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReturn/record/returnToStore", + "index": 7, + }, + { + "name": "生产隔离退料", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReturn/record/returnToHold", + "index": 8, + }, + + ] + }, + { + "name": "库存管理", + "children": [{ + "name": "库存转移任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/inventoryMove/job/inventoryMoveJob", + "index": 8, + }, { + "name": "库存转移", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/inventoryMove/record/moveFree", + "index": 8, + }, + { + "name": "合格转隔离", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/inventoryMove/record/moveOkToHold", + "index": 8, + }, + { + "name": "隔离转合格", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/inventoryMove/record/moveHoldToOk", + "index": 8, + }, + + { + "name": "盘点任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/count/job/countJob", + "index": 8, + }, + { + "name": "库位盘点", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/count/record/countRecord", + "index": 8, + }, + { + "name": "计划外入库任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/job/receiptJob", + "index": 8, + }, + { + "name": "计划外出库任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/job/issueJob", + "index": 8, + }, + { + "name": "计划外入库记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/record/receiptRecord", + "index": 8, + }, + { + "name": "计划外出库记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/record/issueRecord", + "index": 8, + }, + { + "name": "报废出库\n(记录)", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/scrap/record/scrapRecord", + "index": 8, + }, + ] + }, + { + "name": "制品管理", + "children": [{ + "name": "制品收货任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/productReceipt/job/productReceiptJob', + "index": 1, + }, + { + "name": "制品收货记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/productReceipt/record/productReceiptRecord', + "index": 1, + }, + { + "name": "制品上架任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/productPutaway/job/productPutawayJob', + "index": 1, + }, + { + "name": "制品上架记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/productPutaway/record/productPutawayRecord', + "index": 1, + }, + { + "name": "制品发货任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/deliver/job/deliverJob', + "index": 1, + }, + { + "name": "制品发货记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/deliver/record/deliverRecord', + "index": 1, + }, + { + "name": "客户退货任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/customerReturn/job/returnJob', + "index": 1, + }, + { + "name": "客户退货记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": '/pages/customerReturn/record/returnRecord', + "index": 1, + }, + { + "name": "调拨接收任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/transfer/job/receiptJob", + "index": 8, + }, + { + "name": "调拨接收记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/transfer/record/receiptRecord", + "index": 8, + }, + { + "name": "调拨发出任务", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/transfer/job/issueJob", + "index": 8, + }, + { + "name": "调拨发出记录", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/transfer/record/issueRecord", + "index": 8, + }, + + ] + }, + { + "name": "器具管理", + "children": [{ + "name": "托盘绑定", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/pallet/record/bindPalletRecord", + "index": 8, + }, + { + "name": "托盘解绑", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/pallet/record/unBindPalletRecord", + "index": 8, + }, + { + "name": "拆包", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/package/record/splitPackageRecord", + "index": 8, + }, + { + "name": "合包", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/package/record/mergePackageRecord", + "index": 8, + }, + { + "name": "翻包", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/package/record/overPackageRecord", + "index": 8, + }, + + + ] + }, + { + "name": "申请(原料)", + "children": [{ + "name": "发料申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/issue/request/issueRequest", + "index": 8, + }, + { + "name": "采购退货申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/purchaseReturn/request/returnRequest", + "index": 8, + }, + { + "name": "原料上架申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/putaway/request/putawayRequest", + "index": 8, + }, + { + "name": "生产退料合格申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReturn/request/returnToStoreRequest", + "index": 8, + }, + { + "name": "生产退料隔离申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productionReturn/request/returnToHoldRequest", + "index": 8, + }, + + { + "name": "制品上架申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/productPutaway/request/putawayRequest", + "index": 8, + }, + { + "name": "成品发货申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/deliver/request/deliverRequest", + "index": 8, + }, + { + "name": "客户退货申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/customerReturn/request/customerReturnRequest", + "index": 8, + }, + { + "name": "计划外入库申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/request/receiptRequest", + "index": 8, + }, + { + "name": "计划外出库申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/unPlanned/request/issueRequest", + "index": 8, + }, + { + "name": "报废出库申请", + "icon": "/static/menus/dy_menu/menu_search_lj.svg", + "url": "/pages/scrap/request/scrapRrequest", + "index": 8, + } + + + ] + } + +] diff --git a/common/commit.js b/common/commit.js new file mode 100644 index 00000000..9e64c027 --- /dev/null +++ b/common/commit.js @@ -0,0 +1,42 @@ +import utils from '@/common/utils.js'; +export default { + commitTask(scanCount,total){ + var isCommit=false; + if(scanCount==0){ + isCommit = false; + // this.openScanPopup(); + uni.showToast({ + title: "请先扫描" + }) + return isCommit; + } + if (this.scanCount==total) { + //提交 + isCommit =true; + // uni.showToast({ + // title: "可以提交" + // }) + + } else { + //判断是否可以部分提交,可以提交,提交数据, + let receipt_isPartCommit = getApp().globalData.recepit_configList.filter( + res => { + if (res.name == 'receipt_isPartCommit') { + return res; + } + }); + if (receipt_isPartCommit[0].value) { + isCommit = true; + uni.showToast({ + title: "可以部分提交" + }) + //提交 + } else { + isCommit = false; + + } + } + + return isCommit; + } +} \ No newline at end of file diff --git a/common/common.js b/common/common.js new file mode 100644 index 00000000..dc2377ed --- /dev/null +++ b/common/common.js @@ -0,0 +1,33 @@ +export default { + created() { + const self = this; + + }, + mounted() { + const self = this; + }, + methods: { + //设置字体 + getRootFontSize(){ + const self = this; + var fontSize = getApp().globalData.rootFontSize; + if(fontSize){ + return fontSize; + }else{ + fontSize = uni.getStorageSync('root_font_size'); + if(fontSize){ + getApp().globalData.rootFontSize=fontSize; + }else{ + fontSize='20px';//默认字体大小 + self.setRootFontSize(fontSize); + } + return fontSize; + } + }, + setRootFontSize(fontSize){ + uni.setStorageSync('root_font_size',fontSize); + getApp().globalData.rootFontSize=fontSize; + }, + + } +} \ No newline at end of file diff --git a/common/config.js b/common/config.js new file mode 100644 index 00000000..262a770c --- /dev/null +++ b/common/config.js @@ -0,0 +1,26 @@ +let url_config = "" + +let jsApiList = [ + 'biz.cspace.saveFile', //钉盘保存文件 + 'biz.map.search', //位置搜索 + 'device.geolocation.get', //定位 + 'biz.ding.create', //创建ding消息 + 'device.base.getUUID', //uuid + 'biz.contact.choose', //联系人 + 'biz.contact.complexPicker', //选人和部门 + 'biz.contact.departmentsPicker', //选部门 + 'biz.chat.chooseConversationByCorpId', //会话选择 + "biz.contact.chooseMobileContacts", //手机联系人 +]; + +let option = { + corpId: '', //企业ID + agentId: '', //微应用ID + serverPath: url_config, //接口基础地址 + jsApiList: jsApiList, //鉴权列表 + isDebug: false //判断是否alert +}; +export default { + url_config, + option +} diff --git a/common/detail.js b/common/detail.js new file mode 100644 index 00000000..f2c5d88d --- /dev/null +++ b/common/detail.js @@ -0,0 +1,76 @@ +export function getDataSource(details) { + let items = []; + details.forEach(detail => { + var item = items.find(r => + r.itemCode == detail.itemCode) + if (item == undefined) { + item = createItemInfo(detail); + let newDetail = createDetailInfo(detail); // + item.details.push(newDetail); + items.push(item) + } else { + item.qty += detail.qty + let newDetail = createDetailInfo(detail); // + item.details.push(newDetail); + } + }) + return items; +} + +export function createItemInfo(detail) { + let item = { + itemCode: detail.itemCode, + itemName: detail.itemName, + stdPackQty: Number(detail.stdPackQty)||undefined, + stdPackUnit: detail.stdPackUnit, + qty: Number(detail.qty), + handleQty: 0, + uom: detail.uom, + details: [] + } + return item; +} + +export function createDetailInfo(data) { + data.scaned = false; + // data.record = {}; + let detail = data; + return detail; +} + +//根据明细创建记录 +export function createRecordInfo(detail, balance) { + var record = {} + // let record = JSON.parse(JSON.stringify(detail)); + //克隆对象,深度克隆,防止双向绑定同一个变量 + Object.assign(record, detail) + detail.scaned = true; + detail.balance = balance; + detail.recommendInventoryStatus = detail.inventoryStatus; + detail.inventoryStatus = balance.inventoryStatus; + record.qty = Number(balance.qty); + return record; +} + +//计算实际数量 +export function calcHandleQty(detailSource) { + for (let item of detailSource) { + item.handleTotalQty = 0; + for (let detail of item.details) { + if (detail != undefined && detail.scaned) { + item.handleTotalQty += Number(detail.handleQty) + } + } + } +} + + +export function getScanCount(detailList) { + let items = detailList.filter(r => { + if (r.scaned) { + return r; + } + }) + let scanCount = items != null ? items.length : 0; + return scanCount; +} diff --git a/common/directory.js b/common/directory.js new file mode 100644 index 00000000..af8e4037 --- /dev/null +++ b/common/directory.js @@ -0,0 +1,388 @@ + + +let jobStatusList = []; +let itemStatusList =[]; +let locationTypeList = []; +let uomList = []; +let inventoryStatusList = []; +let containerTypeList = []; +let packUnitList = []; +let requestStatusList = []; +let unplannedReceiptReasonList = []; +let unplannedIissueReason = []; +let scrapReasonList = []; +let inspectFailedReasonList = []; +let nextActionList = []; +let inspectTypeList = []; + + +// 获取业务类型字典项 +export function getBusinessTypeDesc(type) { + if (type == "SupplierDeliver") { + return "供应商发货" + } else if (type = "PurchaseReceipt") { + return "采购收货"; + } else if (type = "PurchaseReturn") { + return "采购退货"; + } else if (type = "PurchasePutaway") { + return "采购上架"; + } +} + +//获取字典信息 +export function clearCacheData() { + jobStatusList = []; + itemStatusList =[]; + locationTypeList = []; + uomList = []; + inventoryStatusList = []; + containerTypeList = []; + packUnitList = []; + requestStatusList = []; + unplannedReceiptReasonList = []; + unplannedIissueReason = []; + scrapReasonList = []; + inspectFailedReasonList = []; + nextActionList = []; + inspectTypeList = []; +} + +//获取字典信息 +export function getDirectoryInfo(type) { + + var result = []; + var list = uni.getStorageSync("dictionary") + if (list != undefined && list.length > 0) { + for (let item of list) { + if (item.type == type) { + result = item.subList + break; + } + } + } + + return result +} + +//将字典项转为数组 +export function getDirectoryItemArray(data) { + var array = [] + if (data == undefined || data == null || data == "") { + return array + } + + if (data.indexOf(',') < 0) { + array.push(data) + } else { + var arrayItems = data.split(',') + arrayItems.forEach(res => { + array.push(res) + }) + } + return array +} + +//查询字典项是否在列表中 +export function checkDirectoryItemExist(list, type) { + let exist = false; + if (list == null || list.length == 0) { + exist = true; + } else { + var temp = list.filter(res => { + if (res == type) { + return res + } + }) + if (temp != undefined && temp.length > 0) { + exist = true + } + } + return exist +} + + +//获取任务状态 +export function getJobStateInfo(value) { + var resultInfo = ""; + if (jobStatusList.length == 0) { + jobStatusList = getDirectoryInfo("job_status") + } + if (jobStatusList.length > 0) { + for (let item of jobStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取任务状态样式 +export function getJobStateStyle(value) { + let item = getJobStateInfo(value); + if (item == null || item == '') { + return 'other' + } else { + if (item.remark == '') { + return 'other' + } else { + return item.remark; + } + } +} + +//获取库位描述 +export function getListLocationTypeDesc(lst) { + let desc = ''; + lst.forEach(res => { + desc += getLocationTypeInfo(res).label + "," + }) + desc = desc.slice(0, -1); + return desc; +} + +//获取物品状态 +export function getItemStateInfo(value) { + var resultInfo = ""; + if (itemStatusList.length == 0) { + itemStatusList = getDirectoryInfo("item_status") + } + if (itemStatusList.length > 0) { + for (let item of itemStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库位类型 +export function getLocationTypeInfo(value) { + var resultInfo = ""; + if (locationTypeList.length == 0) { + locationTypeList = getDirectoryInfo("location_type") + } + if (locationTypeList.length > 0) { + for (let item of locationTypeList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库位类型名称 +export function getLocationTypeName(value) { + let location = getLocationTypeInfo(value); + + return location == '' ? value : location.label; +} + +//获取计量单位 +export function getUnitInfo(value) { + var resultInfo = ""; + if (uomList.length == 0) { + uomList = getDirectoryInfo("uom") + } + if (uomList.length > 0) { + for (let item of uomList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取包装单位 +export function getStdPackUnitInfo(value) { + var resultInfo = ""; + if (packUnitList.length == 0) { + packUnitList = getDirectoryInfo("pack_unit") + } + if (packUnitList.length > 0) { + for (let item of packUnitList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取申请状态 +export function getRequestStateInfo(value) { + var resultInfo = ""; + if (requestStatusList.length == 0) { + requestStatusList = getDirectoryInfo("request_status") + } + if (requestStatusList.length > 0) { + for (let item of requestStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + + +//获取库存状态 +export function getInventoryStatusInfo(value) { + var resultInfo = ""; + if (inventoryStatusList.length == 0) { + inventoryStatusList = getDirectoryInfo("inventory_status") + } + if (inventoryStatusList.length > 0) { + for (let item of inventoryStatusList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取库存样式 +export function getInventoryStatusStyle(value) { + let item = getInventoryStatusInfo(value); + if (item == null || item == '') { + return 'other' + } else { + if (item.remark == '') { + return 'other' + } else { + return item.remark; + } + } +} + +//获取库存样式 +export function getInventoryStatusName(value) { + let item = getInventoryStatusInfo(value); + if (item == null || item == '') { + return value + } else { + if (item.label == '') { + return value + } else { + return item.label; + } + } +} + +//获取状态描述 +export function getInventoryStatusDesc(lst) { + let desc = ''; + lst.forEach(res => { + desc += getInventoryStatusInfo(res).label + "," + }) + desc = desc.slice(0, -1); + return desc; +} + +//获取器具状态 +export function getContainerStatusInfo(value) { + var resultInfo = ""; + if (containerTypeList.length == 0) { + containerTypeList = getDirectoryInfo("container_type") + } + if (containerTypeList.length > 0) { + for (let item of containerTypeList) { + if (item.value == value) { + resultInfo = item + break; + } + } + } + return resultInfo +} + +//获取计划外入库原因 +export function getUnPlannedReceiptReasonList(value) { + if (unplannedReceiptReasonList.length == 0) { + unplannedReceiptReasonList = getDirectoryInfo("unplanned_receipt_reason") + } + unplannedReceiptReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return unplannedReceiptReasonList +} + +//获取计划外出库原因 +export function getUnPlannedIssuseReasonList(value) { + if (unplannedIssueReasonList.length == 0) { + unplannedIssueReasonList = getDirectoryInfo("unplanned_issue_reason") + } + unplannedIssueReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return unplannedIssueReasonList +} + +//获取报废出库原因 +export function getScarpReasonList(value) { + if (scrapReasonList.length == 0) { + scrapReasonList = getDirectoryInfo("scrap_reason") + } + scrapReasonList.forEach(res => { + res.text = res.label; + res.value = res.code + }) + return scrapReasonList +} + +//获取检验失败原因 +export function getInspectFailedReasonList(value) { + if (inspectFailedReasonList.length == 0) { + inspectFailedReasonList = getDirectoryInfo("inspect_failed_reason") + } + inspectFailedReasonList.forEach(res => { + res.text = res.label; + res.value = res.value + }) + return inspectFailedReasonList +} + +//获取下一步动作 +export function getNextActionList(value) { + if (nextActionList.length == 0) { + nextActionList = getDirectoryInfo("next_action") + } + nextActionList.forEach(res => { + res.text = res.label; + res.value = res.value + }) + return nextActionList +} + + + +//获取检验类型 +export function getInspectType(value) { + var resultInfo = ""; + if (inspectTypeList.length == 0) { + inspectTypeList = getDirectoryInfo("inspect_type") + } + if (inspectTypeList.length > 0) { + for (let item of inspectTypeList) { + if (item.value == value) { + resultInfo = item.label + break; + } + } + } + return resultInfo +} + diff --git a/common/graceChecker.js b/common/graceChecker.js new file mode 100644 index 00000000..b3db2d75 --- /dev/null +++ b/common/graceChecker.js @@ -0,0 +1,97 @@ +/** +数据验证(表单验证) +来自 grace.hcoder.net +作者 hcoder 深海 +*/ +export default { + error:'', + check : function (data, rule){ + for(var i = 0; i < rule.length; i++){ + if (!rule[i].checkType){return true;} + if (!rule[i].name) {return true;} + if (!rule[i].errorMsg) {return true;} + if (!data[rule[i].name]) {this.error = rule[i].errorMsg; return false;} + switch (rule[i].checkType){ + case 'string': + var reg = new RegExp('^.{' + rule[i].checkRule + '}$'); + if(!reg.test(data[rule[i].name])) {this.error = rule[i].errorMsg; return false;} + break; + case 'int': + var reg = new RegExp('^(-[1-9]|[1-9])[0-9]{' + rule[i].checkRule + '}$'); + if(!reg.test(data[rule[i].name])) {this.error = rule[i].errorMsg; return false;} + break; + break; + case 'between': + if (!this.isNumber(data[rule[i].name])){ + this.error = rule[i].errorMsg; + return false; + } + var minMax = rule[i].checkRule.split(','); + minMax[0] = Number(minMax[0]); + minMax[1] = Number(minMax[1]); + if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) { + this.error = rule[i].errorMsg; + return false; + } + break; + case 'betweenD': + var reg = /^-?[1-9][0-9]?$/; + if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; } + var minMax = rule[i].checkRule.split(','); + minMax[0] = Number(minMax[0]); + minMax[1] = Number(minMax[1]); + if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) { + this.error = rule[i].errorMsg; + return false; + } + break; + case 'betweenF': + var reg = /^-?[0-9][0-9]?.+[0-9]+$/; + if (!reg.test(data[rule[i].name])){this.error = rule[i].errorMsg; return false;} + var minMax = rule[i].checkRule.split(','); + minMax[0] = Number(minMax[0]); + minMax[1] = Number(minMax[1]); + if (data[rule[i].name] > minMax[1] || data[rule[i].name] < minMax[0]) { + this.error = rule[i].errorMsg; + return false; + } + break; + case 'same': + if (data[rule[i].name] != rule[i].checkRule) { this.error = rule[i].errorMsg; return false;} + break; + case 'notsame': + if (data[rule[i].name] == rule[i].checkRule) { this.error = rule[i].errorMsg; return false; } + break; + case 'email': + var reg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; + if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; } + break; + case 'phoneno': + var reg = /^1[0-9]{10,10}$/; + if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; } + break; + case 'zipcode': + var reg = /^[0-9]{6}$/; + if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; } + break; + case 'reg': + var reg = new RegExp(rule[i].checkRule); + if (!reg.test(data[rule[i].name])) { this.error = rule[i].errorMsg; return false; } + break; + case 'in': + if(rule[i].checkRule.indexOf(data[rule[i].name]) == -1){ + this.error = rule[i].errorMsg; return false; + } + break; + case 'notnull': + if(data[rule[i].name] == null || data[rule[i].name].length < 1){this.error = rule[i].errorMsg; return false;} + break; + } + } + return true; + }, + isNumber : function (checkVal){ + var reg = /^-?[1-9][0-9]?.?[0-9]*$/; + return reg.test(checkVal); + } +} \ No newline at end of file diff --git a/common/html-parser.js b/common/html-parser.js new file mode 100644 index 00000000..20a89b28 --- /dev/null +++ b/common/html-parser.js @@ -0,0 +1,352 @@ +/* + * HTML5 Parser By Sam Blowes + * + * Designed for HTML5 documents + * + * Original code by John Resig (ejohn.org) + * http://ejohn.org/blog/pure-javascript-html-parser/ + * Original code by Erik Arvidsson, Mozilla Public License + * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js + * + * ---------------------------------------------------------------------------- + * License + * ---------------------------------------------------------------------------- + * + * This code is triple licensed using Apache Software License 2.0, + * Mozilla Public License or GNU Public License + * + * //////////////////////////////////////////////////////////////////////////// + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy + * of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * //////////////////////////////////////////////////////////////////////////// + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the + * License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Simple HTML Parser. + * + * The Initial Developer of the Original Code is Erik Arvidsson. + * Portions created by Erik Arvidssson are Copyright (C) 2004. All Rights + * Reserved. + * + * //////////////////////////////////////////////////////////////////////////// + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * ---------------------------------------------------------------------------- + * Usage + * ---------------------------------------------------------------------------- + * + * // Use like so: + * HTMLParser(htmlString, { + * start: function(tag, attrs, unary) {}, + * end: function(tag) {}, + * chars: function(text) {}, + * comment: function(text) {} + * }); + * + * // or to get an XML string: + * HTMLtoXML(htmlString); + * + * // or to get an XML DOM Document + * HTMLtoDOM(htmlString); + * + * // or to inject into an existing document/DOM node + * HTMLtoDOM(htmlString, document); + * HTMLtoDOM(htmlString, document.body); + * + */ +// Regular Expressions for parsing tags and attributes +var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/; +var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/; +var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; // Empty Elements - HTML 5 + +var empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr'); // Block Elements - HTML 5 +// fixed by xxx 将 ins 标签从块级名单中移除 + +var block = makeMap('a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); // Inline Elements - HTML 5 + +var inline = makeMap('abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); // Elements that you can, intentionally, leave open +// (and which close themselves) + +var closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); // Attributes that have their values filled in disabled="disabled" + +var fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'); // Special Elements (can contain anything) + +var special = makeMap('script,style'); +function HTMLParser(html, handler) { + var index; + var chars; + var match; + var stack = []; + var last = html; + + stack.last = function () { + return this[this.length - 1]; + }; + + while (html) { + chars = true; // Make sure we're not in a script or style element + + if (!stack.last() || !special[stack.last()]) { + // Comment + if (html.indexOf(''); + + if (index >= 0) { + if (handler.comment) { + handler.comment(html.substring(4, index)); + } + + html = html.substring(index + 3); + chars = false; + } // end tag + + } else if (html.indexOf(']*>'), function (all, text) { + text = text.replace(/|/g, '$1$2'); + + if (handler.chars) { + handler.chars(text); + } + + return ''; + }); + parseEndTag('', stack.last()); + } + + if (html == last) { + throw 'Parse Error: ' + html; + } + + last = html; + } // Clean up any remaining tags + + + parseEndTag(); + + function parseStartTag(tag, tagName, rest, unary) { + tagName = tagName.toLowerCase(); + + if (block[tagName]) { + while (stack.last() && inline[stack.last()]) { + parseEndTag('', stack.last()); + } + } + + if (closeSelf[tagName] && stack.last() == tagName) { + parseEndTag('', tagName); + } + + unary = empty[tagName] || !!unary; + + if (!unary) { + stack.push(tagName); + } + + if (handler.start) { + var attrs = []; + rest.replace(attr, function (match, name) { + var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : ''; + attrs.push({ + name: name, + value: value, + escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') // " + + }); + }); + + if (handler.start) { + handler.start(tagName, attrs, unary); + } + } + } + + function parseEndTag(tag, tagName) { + // If no tag name is provided, clean shop + if (!tagName) { + var pos = 0; + } // Find the closest opened tag of the same type + else { + for (var pos = stack.length - 1; pos >= 0; pos--) { + if (stack[pos] == tagName) { + break; + } + } + } + + if (pos >= 0) { + // Close all the open elements, up the stack + for (var i = stack.length - 1; i >= pos; i--) { + if (handler.end) { + handler.end(stack[i]); + } + } // Remove the open elements from the stack + + + stack.length = pos; + } + } +} + +function makeMap(str) { + var obj = {}; + var items = str.split(','); + + for (var i = 0; i < items.length; i++) { + obj[items[i]] = true; + } + + return obj; +} + +function removeDOCTYPE(html) { + return html.replace(/<\?xml.*\?>\n/, '').replace(/\n/, '').replace(/\n/, ''); +} + +function parseAttrs(attrs) { + return attrs.reduce(function (pre, attr) { + var value = attr.value; + var name = attr.name; + + if (pre[name]) { + pre[name] = pre[name] + " " + value; + } else { + pre[name] = value; + } + + return pre; + }, {}); +} + +function parseHtml(html) { + html = removeDOCTYPE(html); + var stacks = []; + var results = { + node: 'root', + children: [] + }; + HTMLParser(html, { + start: function start(tag, attrs, unary) { + var node = { + name: tag + }; + + if (attrs.length !== 0) { + node.attrs = parseAttrs(attrs); + } + + if (unary) { + var parent = stacks[0] || results; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } else { + stacks.unshift(node); + } + }, + end: function end(tag) { + var node = stacks.shift(); + if (node.name !== tag) console.error('invalid state: mismatch end tag'); + + if (stacks.length === 0) { + results.children.push(node); + } else { + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }, + chars: function chars(text) { + var node = { + type: 'text', + text: text + }; + + if (stacks.length === 0) { + results.children.push(node); + } else { + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }, + comment: function comment(text) { + var node = { + node: 'comment', + text: text + }; + var parent = stacks[0]; + + if (!parent.children) { + parent.children = []; + } + + parent.children.push(node); + } + }); + return results.children; +} + +export default parseHtml; diff --git a/common/initModal.js b/common/initModal.js new file mode 100644 index 00000000..90a1356b --- /dev/null +++ b/common/initModal.js @@ -0,0 +1,58 @@ +import Vuex from 'vuex' +// 自定义弹窗 +export default function initModal(v) { + // 挂在store到全局Vue原型上 + v.prototype.$modalStore = new Vuex.Store({ + state: { + show: false, + title: "标题", + content: '内容', + showCancel: true, + cancelText: "取消", + cancelColor: "#333333", + cancelBackgroundColor: "rgba(236, 236, 236, 0.39)", + confirmText: "确定", + confirmColor: "#333333", + confirmBackgroundColor: "#FFBB24", + success: null, + }, + mutations: { + hideModal(state) { + // 小程序导航条页面控制 + // #ifndef H5 + if (state.hideTabBar) { + wx.showTabBar(); + } + // #endif + state.show = false + }, + showModal(state, data) { + state = Object.assign(state, data) + console.log(state); + state.show = true + }, + success(state, res) { + let cb = state.success + let resObj = { + cancel: false, + confirm: false + } + res == "confirm" ? resObj.confirm = true : resObj.cancel = true + cb && cb(resObj) + } + } + }) + v.prototype.$showModal = function(option) { + if (typeof option === 'object') { + // #ifndef H5 + if (option.hideTabBar) { + wx.hideTabBar(); + } + // #endif + + v.prototype.$modalStore.commit('showModal', option) + } else { + throw "配置项必须为对象传入的值为:" + typeof option; + } + } +} diff --git a/common/label.js b/common/label.js new file mode 100644 index 00000000..60824ee0 --- /dev/null +++ b/common/label.js @@ -0,0 +1,160 @@ +let labelDic = []; + +import { + getLabelByHeader, + getPackageByNumber +} from '@/api/request2.js'; + + +export function getLabelInfo(scanMsg, callBack) { + console.log('扫描信息:', scanMsg); + if (scanMsg.length == 0) { + return null + } + let items = scanMsg.split(';'); + let header = items[0]; + let version = items[1]; + if (header != '' && version != '') { + //解析扫描的是一维码还是二维码 + let type = header.substring(header.length - 1, header.length); + if (type == 'Q') //qrcode + { + getQRCodeInfo(header, version, scanMsg, callBack); + } else if (type == 'B') //barcode + { + getBarCodeInfo(header, version, items[2], callBack); + } else { //直接输入文本 + getBarCodeInfo('text', 'V1.0', scanMsg, callBack); + } + } +} + +export function getQRCodeInfo(header, version, scanMsg, callBack) { + //获取包装信息 + let labelItem = labelDic.find(r => r.header == header && r.version == version); + if (labelItem == undefined) { + let labelResult = { + label: { + barType: 'QRCode', + }, + package: {}, + sucess: true, + message: '' + } + getLabelByHeader(header, version).then(res => { + if (res.data==null) { + labelResult.sucess = false; + labelResult.message = '未查找到标签头为[' + header + ']的标签类型'; + callBack(labelResult); + } else { + let newItem = { + header: header, + version: version, + label: res.data, + }; + + labelDic.push(newItem); + getLabelItems(newItem, scanMsg, callBack); + } + }).catch(err => { + labelResult.sucess = false; + labelResult.message = err; + callBack(err); + }) + } else { + getLabelItems(labelItem, scanMsg, callBack); + } +} + +export function getLabelItems(labelItem, scanMsg, callBack) { + let labelResult = analysisQRCodeLabel(labelItem, scanMsg); + if (labelResult.label.labelType == 'PurchaseLabel' || labelResult.label.labelType == 'MakeLabel') { + //查询包装信息 + let packingNumber = labelResult.label.packingNumber + if (packingNumber != undefined) { + getPackageByNumber(packingNumber).then(pack => { + if (pack.data.list.length == 0) { + labelResult.sucess = false; + labelResult.message = '包装号[' + packingNumber + ']没有包装信息'; + } else { + labelResult.package = pack.data.list[0]; + console.log('包装信息', JSON.stringify(labelResult.package)) + } + callBack(labelResult); + }).catch(err => { + labelResult.sucess = false; + labelResult.message = err; + callBack(labelResult); + }) + } else { + labelResult.sucess = false; + labelResult.message = '在条码中未解析到箱码'; + callBack(labelResult); + } + } else { + callBack(labelResult); + } +} + +export function analysisQRCodeLabel(labelItem, scanMsg) { + let labelResult = { + label: { + labelType: labelItem.label.labelType, + barType: 'QRCode', + }, + package: {}, + sucess: true, + message: '' + } + + let separators = labelItem.label.separators; + if (separators == undefined || separators == null) { + labelResult.message = "未读取到分隔符"; + } else { + if (scanMsg.indexOf(separators) < 0) { + labelResult.sucess = false; + labelResult.message = "标签格式不正确"; + } else { + try { + let scanItems = scanMsg.split(separators); + if (scanItems.length > 0) { + scanItems.forEach((item, index) => { + let type = item.substring(0, 1); + let value = item.substring(1, item.length); + if (type == 'H') { + labelResult.label.header = item; + } else if (type == 'V') { + labelResult.label.version = item; + } else { + let barcode = labelItem.label.subList.find(code => code.prefixChar.toUpperCase() == + type + .toUpperCase()); + if (barcode != undefined) { + labelResult.label[barcode.code] = value; + } + } + }) + } + } catch (e) { + labelResult.message = e.message; + } + + } + } + // console.log('标签', labelResult.label) + return labelResult; +} + +export function getBarCodeInfo(header, version, value, callBack) { + let labelResult = { + label: { + labelType: header, + barType: 'BarCode', + code:value + }, + package: null, + sucess: true, + message: '', + } + callBack(labelResult); +} diff --git a/common/message.js b/common/message.js new file mode 100644 index 00000000..0dd5280d --- /dev/null +++ b/common/message.js @@ -0,0 +1,112 @@ +import * as dd from 'dingtalk-jsapi'; +import store from '@/store/index' + +let showAlert=true + +let message = { + error: function (msg) { //进入项目初始化配置 + uni.showToast({ + title: msg, + icon: "none" + }); + }, + alert:function (message) { + return new Promise((resolve, reject) => { + if (showAlert){ + dd.device.notification.alert({ + message: message, + title: "提示", + buttonName: "收到", + onSuccess : function(res) { + // 调用成功时回调 + console.log(res) + }, + onFail : function(err) { + // 调用失败时回调 + console.log(err) + } + }); + } + }) + } +} +let selectD = { + selectPeo: function (option) { + return new Promise((resolve, reject) => { + dd.biz.contact.complexPicker({ + title: option.title ? option.title : "选择人员", //标题 + corpId: store.state.corpId, //企业的corpId + multiple: option.multiple ? option.multiple : true, //是否多选 + limitTips: option.limitTips ? option.limitTips : "超出了", //超过限定人数返回提示 + maxUsers: option.maxUsers ? option.maxUsers : 100, //最大可选人数 + pickedUsers: option.pickedUsers ? option.pickedUsers : [], //已选用户 + pickedDepartments: option.pickedDepartments ? option.pickedDepartments :[], //已选部门 + disabledUsers: option.disabledUsers ? option.disabledUsers :[], //不可选用户 + disabledDepartments: option.disabledDepartments ? option.disabledDepartments :[], //不可选部门 + requiredUsers: option.requiredUsers ? option.requiredUsers :[], //必选用户(不可取消选中状态) + requiredDepartments: option.requiredDepartments ? option.requiredDepartments :[], //必选部门(不可取消选中状态) + appId: store.state.agentId, //微应用Id,企业内部应用查看AgentId + permissionType: "GLOBAL", //可添加权限校验,选人权限,目前只有GLOBAL这个参数 + responseUserOnly: true, //返回人,或者返回人和部门 + startWithDepartmentId: 0, //仅支持0和-1 + onSuccess: function (result) { + // alert(JSON.stringify(result)) + resolve(result); +/** + { + selectedCount:1, //选择人数 + users:[{"name":"","avatar":"","emplId ":""}],//返回选人的列表,列表中的对象包含name(用户名),avatar(用户头像),emplId(用户工号)三个字段 + departments:[{"id":,"name":"","number":}]//返回已选部门列表,列表中每个对象包含id(部门id)、name(部门名称)、number(部门人数) +} + */ + }, + onFail: function (err) { + alert("唤起联系人失败"); + reject(err) + } + }); + }) + }, + selectDept: function (option) { + return new Promise((resolve, reject) => { + dd.biz.contact.departmentsPicker({ + title: option.title ? option.title : "选择部门", //标题 + corpId: store.state.corpId, //企业的corpId + multiple: option.multiple ? option.multiple : true, //是否多选 + limitTips: option.limitTips ? option.limitTips : "超出了", //超过限定人数返回提示 + maxDepartments: option.maxDepartments ? option.maxDepartments : 100, //最大可选部门 + pickedDepartments: option.pickedDepartments ? option.pickedDepartments :[], //已选部门 + disabledDepartments: option.disabledDepartments ? option.disabledDepartments :[], //不可选部门 + requiredDepartments: option.requiredDepartments ? option.requiredDepartments :[], //必选部门(不可取消选中状态) + appId: store.state.agentId, //微应用Id,企业内部应用查看AgentId + permissionType: "GLOBAL", //可添加权限校验,选人权限,目前只有GLOBAL这个参数 + onSuccess: function (result) { + + resolve(result); + /** + { + "userCount":10, //选择人数。 + "departments":[ + { + "number":10, + "name":"班车2", + "id":405921063 + } + ], //返回已选部门列表,列表中每个对象包含id (部门id)、name (部门名称)、number (部门人数)。 + "departmentsCount":1 //选择的部门数。 + } + */ + }, + onFail: function (err) { + alert("唤起部门失败"); + reject(err) + } + }); + }) + }, +} + +export default { + message, + selectD +} diff --git a/common/modelConfig.js b/common/modelConfig.js new file mode 100644 index 00000000..b0826b49 --- /dev/null +++ b/common/modelConfig.js @@ -0,0 +1,5 @@ +let maxPageSize = 10; + +export default{ + maxPageSize +} \ No newline at end of file diff --git a/common/permission.js b/common/permission.js new file mode 100644 index 00000000..d9249d99 --- /dev/null +++ b/common/permission.js @@ -0,0 +1,245 @@ +/// null = 未请求,1 = 已允许,0 = 拒绝|受限, 2 = 系统未开启 + +var isIOS + +function album() { + var result = 0; + var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary"); + var authStatus = PHPhotoLibrary.authorizationStatus(); + if (authStatus === 0) { + result = null; + } else if (authStatus == 3) { + result = 1; + } else { + result = 0; + } + plus.ios.deleteObject(PHPhotoLibrary); + return result; +} + +function camera() { + var result = 0; + var AVCaptureDevice = plus.ios.import("AVCaptureDevice"); + var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide'); + if (authStatus === 0) { + result = null; + } else if (authStatus == 3) { + result = 1; + } else { + result = 0; + } + plus.ios.deleteObject(AVCaptureDevice); + return result; +} + +function location() { + var result = 0; + var cllocationManger = plus.ios.import("CLLocationManager"); + var enable = cllocationManger.locationServicesEnabled(); + var status = cllocationManger.authorizationStatus(); + if (!enable) { + result = 2; + } else if (status === 0) { + result = null; + } else if (status === 3 || status === 4) { + result = 1; + } else { + result = 0; + } + plus.ios.deleteObject(cllocationManger); + return result; +} + +function push() { + var result = 0; + var UIApplication = plus.ios.import("UIApplication"); + var app = UIApplication.sharedApplication(); + var enabledTypes = 0; + if (app.currentUserNotificationSettings) { + var settings = app.currentUserNotificationSettings(); + enabledTypes = settings.plusGetAttribute("types"); + if (enabledTypes == 0) { + result = 0; + console.log("推送权限没有开启"); + } else { + result = 1; + console.log("已经开启推送功能!") + } + plus.ios.deleteObject(settings); + } else { + enabledTypes = app.enabledRemoteNotificationTypes(); + if (enabledTypes == 0) { + result = 3; + console.log("推送权限没有开启!"); + } else { + result = 4; + console.log("已经开启推送功能!") + } + } + plus.ios.deleteObject(app); + plus.ios.deleteObject(UIApplication); + return result; +} + +function contact() { + var result = 0; + var CNContactStore = plus.ios.import("CNContactStore"); + var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0); + if (cnAuthStatus === 0) { + result = null; + } else if (cnAuthStatus == 3) { + result = 1; + } else { + result = 0; + } + plus.ios.deleteObject(CNContactStore); + return result; +} + +function record() { + var result = null; + var avaudiosession = plus.ios.import("AVAudioSession"); + var avaudio = avaudiosession.sharedInstance(); + var status = avaudio.recordPermission(); + console.log("permissionStatus:" + status); + if (status === 1970168948) { + result = null; + } else if (status === 1735552628) { + result = 1; + } else { + result = 0; + } + plus.ios.deleteObject(avaudiosession); + return result; +} + +function calendar() { + var result = null; + var EKEventStore = plus.ios.import("EKEventStore"); + var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0); + if (ekAuthStatus == 3) { + result = 1; + console.log("日历权限已经开启"); + } else { + console.log("日历权限没有开启"); + } + plus.ios.deleteObject(EKEventStore); + return result; +} + +function memo() { + var result = null; + var EKEventStore = plus.ios.import("EKEventStore"); + var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1); + if (ekAuthStatus == 3) { + result = 1; + console.log("备忘录权限已经开启"); + } else { + console.log("备忘录权限没有开启"); + } + plus.ios.deleteObject(EKEventStore); + return result; +} + + +function requestIOS(permissionID) { + return new Promise((resolve, reject) => { + switch (permissionID) { + case "push": + resolve(push()); + break; + case "location": + resolve(location()); + break; + case "record": + resolve(record()); + break; + case "camera": + resolve(camera()); + break; + case "album": + resolve(album()); + break; + case "contact": + resolve(contact()); + break; + case "calendar": + resolve(calendar()); + break; + case "memo": + resolve(memo()); + break; + default: + resolve(0); + break; + } + }); +} + +function requestAndroid(permissionID) { + return new Promise((resolve, reject) => { + plus.android.requestPermissions( + [permissionID], + function(resultObj) { + var result = 0; + for (var i = 0; i < resultObj.granted.length; i++) { + var grantedPermission = resultObj.granted[i]; + console.log('已获取的权限:' + grantedPermission); + result = 1 + } + for (var i = 0; i < resultObj.deniedPresent.length; i++) { + var deniedPresentPermission = resultObj.deniedPresent[i]; + console.log('拒绝本次申请的权限:' + deniedPresentPermission); + result = 0 + } + for (var i = 0; i < resultObj.deniedAlways.length; i++) { + var deniedAlwaysPermission = resultObj.deniedAlways[i]; + console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); + result = -1 + } + resolve(result); + }, + function(error) { + console.log('result error: ' + error.message) + resolve({ + code: error.code, + message: error.message + }); + } + ); + }); +} + +function gotoAppPermissionSetting() { + if (permission.isIOS) { + var UIApplication = plus.ios.import("UIApplication"); + var application2 = UIApplication.sharedApplication(); + var NSURL2 = plus.ios.import("NSURL"); + var setting2 = NSURL2.URLWithString("app-settings:"); + application2.openURL(setting2); + plus.ios.deleteObject(setting2); + plus.ios.deleteObject(NSURL2); + plus.ios.deleteObject(application2); + } else { + var Intent = plus.android.importClass("android.content.Intent"); + var Settings = plus.android.importClass("android.provider.Settings"); + var Uri = plus.android.importClass("android.net.Uri"); + var mainActivity = plus.android.runtimeMainActivity(); + var intent = new Intent(); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + var uri = Uri.fromParts("package", mainActivity.getPackageName(), null); + intent.setData(uri); + mainActivity.startActivity(intent); + } +} + +const permission = { + get isIOS(){ + return typeof isIOS === 'boolean' ? isIOS : (isIOS = uni.getSystemInfoSync().platform === 'ios') + }, + requestIOS: requestIOS, + requestAndroid: requestAndroid, + gotoAppSetting: gotoAppPermissionSetting +} + +export default permission diff --git a/common/promise.js b/common/promise.js new file mode 100644 index 00000000..79398dcf --- /dev/null +++ b/common/promise.js @@ -0,0 +1,26 @@ +import urlConfig from './config.js' +const promise = {} + +promise.asyncRequest = (url, options = {}, power) => { + return new Promise((resolve, reject) => { + uni.request({ + url: url, + ...options, //data,method... + header: { + "content-type": "application/json", + 'withCredentials': true, + 'Authorization': localStorage.token_type, + // 'Authorization': localStorage.token_type, + ...options.header, + }, + success: (res) => { + resolve(res.data); + }, + fail: (err) => { + reject(err) + } + }); + }) +} + +export default promise.asyncRequest diff --git a/common/record.js b/common/record.js new file mode 100644 index 00000000..a8358538 --- /dev/null +++ b/common/record.js @@ -0,0 +1,68 @@ +import { + getBusinesstypeByCode +} from '@/api/request2.js'; + +import { + getDirectoryItemArray, +} from '@/common/directory.js'; + +export function createItemInfo(balance, pack) { + let item = { + itemCode: pack.itemCode, + itemName: pack.itemName, + stdPackQty: pack.stdPackQty, + stdPackUnit: pack.stdPackUnit, + qty: Number(balance.qty), + handleQty: 0, + uom: pack.uom, + details: [] + } + return item; +} +export function createDetailInfo(data, pack) { + data.scaned = true; + // data.toInventoryStatus = this.toInventoryStatus == "" ? data.inventoryStatus : this.toInventoryStatus; + let detail = {}; + Object.assign(detail, data) + detail.balanceQty = Number(detail.qty) + detail.package = pack; + return detail; +} + +//计算实际数量 +export function calcHandleQty(detailSource) { + for (let item of detailSource) { + item.qty = 0; + for (let detail of item.details) { + if (detail != undefined && detail.scaned) { + item.qty = item.qty + Number(detail.qty) + } + } + } +} + +export function getBusinessType(typeCode, callback) { + let result = { + success: true, + businessType: '', + fromlocationTypeList: '', + tolocationTypeList: '', + message: '' + }; + getBusinesstypeByCode(typeCode).then(res => { + if (res.data.total > 0) { + result.businessType = res.data.list[0]; + result.fromlocationTypeList = getDirectoryItemArray(res.data.list[0].outLocationTypes) + result.tolocationTypeList = getDirectoryItemArray(res.data.list[0].inLocationTypes) + callback(result) + } else { + result.success = false; + result.message = '业务类型[' + typeCode + ']获取失败'; + callback(result) + } + }).catch(error => { + result.success = false; + result.message = error; + callback(result) + }) +} diff --git a/common/request.js b/common/request.js new file mode 100644 index 00000000..aa357e47 --- /dev/null +++ b/common/request.js @@ -0,0 +1,123 @@ +import urlConfig from './config.js' +// import store from '@/store/index' +const request = {} + +request.globalRequest = (url, options = {}, power) => { + /* 权限判断 因为有的接口请求头可能需要添加的参数不一样,所以这里做了区分 + 1 == 不通过access_token校验的接口 + 2 == 文件下载接口列表 + 3 == 验证码登录 */ + + let contentType = localStorage.token_type ? "application/json" : "application/x-www-form-urlencoded"; + + return new Promise((resolve, reject) => { + uni.request({ + url: url, + ...options, //data,method... + header: { + "content-type": contentType, + "Authorization": localStorage.token_type, + 'withCredentials': true, + // 'Blade-Auth':'bearer '+store.state.token, + 'token_type': localStorage.token_type, + ...options.header, + }, + success: (res) => { + if (res != null) { + if (res.statusCode != null) { + let statusCode = res.statusCode.toString(); + // 状态码类型 2开头的全是成功 + let code = statusCode.substring(0, 1); + if (statusCode == '200') { + resolve(res.data); + } else if (statusCode == '204') { + if (options.method == 'get') { + reject("没查到") + } else { + resolve(res.data) + } + } else if (statusCode == '400') { + if (res.data.error) { + if (res.data.error.message) { + reject(res.data.error.message); + } + } else if (res.data.errors) { + let errors = res.data.errors; + let errorMsg = '请求参数错误:\n'; + let keys = Object.keys(errors); + for (var i = 0; i < keys.length; i++) { + let key = keys[i]; + let value = errors[key]; + errorMsg += i + 1 + ':' + value + '\n'; + } + reject(errorMsg); + } + } else if (statusCode == '404') { + if (res.data === '') { + reject('未找到接口'); + } else { + reject(res.data); + } + } else if (statusCode == '403') { + let message = res.data.error.message; + if (message) { + let temp; + try { + temp = JSON.parse(message) + } catch (err) { + reject(message); + } + if (temp) { + var hintError = temp.error; + var hintErrorDes = temp.error_description; + if (hintError == 'invalid_grant') { + if (hintErrorDes.includes( + 'Invalid username or password!')) { + reject('用户名或密码错误'); + } else if (hintErrorDes.includes( + 'The user account has been locked out due to invalid login attempts' + )) { + reject("账号已被锁定,请稍后再试"); + } + } else { + reject(message) + } + } + } else { + reject(res.statusCode + "错误") + } + } else { + let message = res.data.error.message; + if (message != undefined) { + reject(res.data.error.message) + } else { + reject(res.statusCode + "错误") + } + } + } else { + reject('options.url' + "返回的状态码类型为空") + } + } else { + reject('options.url' + "返回的res为空") + } + }, + fail: (eror) => { + reject(eror) + } + }) + }) + // .catch(params => { + // reject(params); + // }) +} + + + + +export default request.globalRequest + +// 最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。转换规则如下: + +// 对于 GET 方法,会将数据转换为 query string。例如 { name: 'name', age: 18 } 转换后的结果是 name=name&age=18。 +// 对于 POST 方法且 header['content-type'] 为 application/json 的数据,会进行 JSON 序列化。 +// 对于 POST 方法且 header['content-type'] 为 application/x-www-form-urlencoded 的数据,会将数据转换为 query string。 diff --git a/common/request_test.js b/common/request_test.js new file mode 100644 index 00000000..ab93d5ff --- /dev/null +++ b/common/request_test.js @@ -0,0 +1,103 @@ +import urlConfig from './config.js' +// import store from '@/store/index' + +function service(options = {}) { + let contentType = localStorage.token_type ? "application/json" : "application/x-www-form-urlencoded"; + options.header = { + "content-type": contentType, + "Authorization": localStorage.token_type, + 'withCredentials': true, + // 'Blade-Auth':'bearer '+store.state.token, + 'token_type': localStorage.token_type + }; + return new Promise((resolve, reject) => { + options.success = (res) => { + console.log("请求成功", res); + // 如果请求回来的状态码不是200则执行以下操作 + if (res != null ) { + if (res.statusCode != null) { + let statusCode = res.statusCode.toString(); + // 状态码类型 2开头的全是成功 + let code = statusCode.substring(0, 1); + if (statusCode == '200') { + resolve(res.data); + } else if (statusCode == '204') { + if (options.method == 'get') { + return null; + } else { + reject(res.data) + } + } else if (statusCode == '400') { + if (res.data.error) { + if (res.data.error.message) { + reject(res.data.error.message); + } + } else if (res.data.errors) { + let errors = res.data.errors; + let errorMsg = '请求参数错误:\n'; + let keys = Object.keys(errors); + for (var i = 0; i < keys.length; i++) { + let key = keys[i]; + let value = errors[key]; + errorMsg += i + 1 + ':' + value + '\n'; + } + reject(errorMsg); + } + } else if (statusCode == '404') { + if (res.data === '') { + reject('未找到接口'); + } else { + reject(res.data); + } + } + else if (statusCode == '403') { + let message = res.data.error.message; + if (message) { + let temp; + try { + temp = JSON.parse(message) + } catch (err) { + reject(message) ; + } + if (temp) { + var hintError = temp.error; + var hintErrorDes = temp.error_description; + if (hintError == 'invalid_grant') { + if (hintErrorDes.includes('Invalid username or password!')) { + reject('用户名或密码错误'); + } else if (hintErrorDes.includes( + 'The user account has been locked out due to invalid login attempts' + )) { + reject("账号已被锁定,请稍后再试"); + } + } else { + reject(message) + } + } + } else { + reject(res.statusCode + "错误") + } + } + else { + let message = res.data.error.message; + if (message != undefined) { + reject(res.data.error.message) + } else { + reject(res.statusCode + "错误") + } + } + } else { + reject('options.url' + "返回的状态码类型为空") + } + } else { + reject('options.url' + "返回的res为空") + } + }; + options.fail = (err) => { + reject(err); + }; + uni.request(options); + }); + } + + export default service; diff --git a/common/scan.js b/common/scan.js new file mode 100644 index 00000000..93a3e8c5 --- /dev/null +++ b/common/scan.js @@ -0,0 +1,309 @@ +//解析扫描信息 +//P2251076NAA;L220325;Q2000;N0205183222000006;SS0000066;V02051832;OPO1072;C15; +//解析规则 +//P:itemCode 物料号 +//L:lot批次 +//Q:qty 数量 +//N:asn 供应商商发货单 ASN +//S:packingCode 箱码 +//T:containerCode托盘 +//V:supplierCode 供应商代码 +//O: order订单号 +//C: poLine订单行 +//B:supplierBatch 供应商批次 + +//返回结果 +//sucess true:成功 false:失败 +//scanType barcode:条码 qrcode:二维码 +//isPack true:箱码 false:托码 +export function analyseScanInfo(scanMsg) { + let scanResult = { + sucess: false, + message: "", + data: { + isPack: null, + scanType: null, + itemCode: null, + batch: null, + qty: null, + asn: null, + packingNumber: null, + supplierBatch: null, + order: null, + poLine: null, + code: null, + } + }; + if (scanMsg === "") { + scanResult.message = "扫描到的内容为空"; + } else { + try { + console.log('1.扫描到的内容:', scanMsg); + //条码 + if (scanMsg.indexOf(';') < 0) { + scanResult.sucess = true; + scanResult.data.code = scanMsg; + scanResult.data.scanType = 'barcode'; //条码 + } else { + let arrayItems = scanMsg.split(';'); + if (arrayItems.length > 0) { + scanResult.data.scanType = 'qrcode'; //二维码 + scanResult.data["test"] = 'test'; + arrayItems.forEach((item, index) => { + if (item != "") { + let type = item.substring(0, 1); + let value = item.substring(1, item.length); + if (type != "") { + scanResult.data.scanType = 'qrcode'; + switch (type) { + case "P": //物料号 + case "p": + scanResult.data.itemCode = value; + break; + case "L": //批次 + case "l": + scanResult.data.lot = value; + break; + case "Q": //数量 + case "q": + scanResult.data.qty = value; + break; + case "N": //供应商商发货单 ASN + case "n": + scanResult.data.asn = value; + break; + case "S": //箱码 + case "s": + scanResult.data.packingNumber = value; + scanResult.data.isPack = true; + break; + case "T": //托盘 + case "t": + scanResult.data.containerCode = value; + scanResult.data.isPack = false; + break; + case "V": //供应商批次 + case "v": + scanResult.data.supplierCode = value; + break; + case "O": //订单号 + case "o": + scanResult.data.order = value; + break; + case "C": //订单行 + case "c": + scanResult.data.poLine = value; + break; + case "B": //供应商批次 + case "b": + scanResult.data.supplierBatch = value; + break; + // default: //条码 + // scanResult.data.code = item; + // scanResult.data.scanType = 'barcode'; + // break; + } + } + } + }) + + scanResult.sucess = true; + } else { //扫描的是条码,直接返回接收到的内容 + scanResult.sucess = true; + scanResult.data.code = scanMsg; + scanResult.data.scanType = 'barcode'; + } + } + } catch (ex) { + scanResult.sucess = false; + scanResult.message = "解析遇到异常" + ex.message; + } + } + + return scanResult; +} + +//解析完工收货标签 +//P2250229RAA;L220408;Q100;N62840610;SB0000107;UEA;DU571LS;FA;E2022-4-8 +//P零件号,L批次,Q数量,N生产计划号,S箱码,U计量单位,D生产线,F班次,E日期,M零件名称(待添加) +//解析规则 +//P:itemCode 物料号 +//L:lot批次 +//Q:qty 数量 +//N:pnumber productionPlanNumber生产计划号 +//S:packingCode 箱码 +//U:uom 计量单位 +//D:prodLine 生产线 +//F:shift 班次 +//E:produceDate日期 + +//返回结果 +//sucess true:成功 false:失败 +//scanType barcode:条码 qrcode:二维码 +//isPack true:箱码 false:托码 +export function analyseProductLabelInfo(scanMsg) { + let scanResult = { + sucess: false, + message: "", + data: { + itemCode: null, + lot: null, + qty: null, + pnumber: null, + packingCode: null, + uom: null, + prodLine: null, + shift: null, + produceDate: null + } + }; + if (scanMsg == "") { + scanResult.message = "扫描到的内容为空"; + } else { + try { + //条码 + if (scanMsg.indexOf(';') < 0) { + scanResult.sucess = false; + scanResult.message = "标签格式不正确"; + } else { + let arrayItems = scanMsg.split(';'); + if (arrayItems.length > 0) { + arrayItems.forEach((item, index) => { + if (item != "") { + let type = item.substring(0, 1); + let value = item.substring(1, item.length); + if (type != "") { + switch (type) { + case "P": //物料号 + case "p": + scanResult.data.itemCode = value; + break; + case "L": //批次 + case "l": + scanResult.data.lot = value; + break; + case "Q": //数量 + case "q": + scanResult.data.qty = value; + break; + case "N": //生产计划号 ASN + case "n": + scanResult.data.pnumber = value; + break; + case "S": //箱码 + case "s": + scanResult.data.packingCode = value; + break; + case "U": //计量单位 + case "u": + scanResult.data.uom = value; + break; + case "D": //生产线 + case "d": + scanResult.data.prodLine = value; + break; + case "F": //班次 + case "f": + scanResult.data.shift = value; + break; + case "E": //日期 + case "e": + scanResult.data.produceDate = value; + break; + default: + scanResult.sucess = false; + scanResult.message = "无法识别的前缀" + type; + break; + } + scanResult.sucess = true; + } else { + scanResult.sucess = false; + scanResult.message = "标签信息不能为空" + type; + } + } + }) + + + } else { //扫描的是条码,直接返回接收到的内容 + scanResult.sucess = false; + scanResult.message = "标签分隔符错误"; + } + } + } catch (ex) { + scanResult.sucess = false; + scanResult.message = "解析遇到异常" + ex.message; + } + } + return scanResult; +} + + +//解析天津mes标签 +//1#2546319FL#254FL003#202207110009: +//1.序号1,2.生产号2546311FL,3.零件号254FL004,4.批序号202207110009 +export function analyseTJMesQRCode(scanMsg) { + let scanResult = { + sucess: false, + message: "", + items: [] + }; + if (scanMsg == "") { + scanResult.message = "扫描到的内容为空"; + } else { + try { + if (scanMsg.indexOf(':') < 0) { + scanResult.sucess = false; + scanResult.message = "标签格式不正确"; + } else { + let arrayItems = scanMsg.split(':'); + if (arrayItems.length > 0) { + arrayItems.forEach((item, index) => { + if (item != "") { + if (item.includes('#')) { + let datas = item.split('#'); + //为空时是:2N + if (datas.length > 1) { + let itemCode = datas[2]; + let location = itemCode.substring(3, 5); + let data = { + seq: datas[0], //序号 + produceNo: datas[1], //生产号 + // projectNo: datas[2], //项目号 + itemCode: itemCode, //配置码(零件号) + lot: datas[3], //批次 + position: location //上层、下层 + } + scanResult.items.push(data) + } + } else { + if (item.includes('N')) { + let seq = item.substring(0, item.length - 1); + let data = { + seq: seq, //序号 + produceNo: 'N', //生产号 + projectNo: 'N', //项目号 + itemCode: 'N', //配置码(零件号) + lot: 'N', //批次 + position: '' + } + scanResult.items.push(data) + } + } + } else { + scanResult.sucess = false; + scanResult.message = "标签信息不能为空"; + } + }) + scanResult.sucess = true; + } else { //扫描的是条码,直接返回接收到的内容 + scanResult.sucess = false; + scanResult.message = "标签分隔符错误"; + } + } + } catch (ex) { + scanResult.sucess = false; + scanResult.message = "解析遇到异常" + ex.message; + } + } + return scanResult; +} diff --git a/common/storage.js b/common/storage.js new file mode 100644 index 00000000..e69de29b diff --git a/common/style/PDA_style.css b/common/style/PDA_style.css new file mode 100644 index 00000000..47edd46a --- /dev/null +++ b/common/style/PDA_style.css @@ -0,0 +1,221 @@ + +@media screen and (min-width:400px) { + uni-app, uni-page-head{ + height: 60px; + } + uni-page-head .uni-page-head{ + height: 60px !important; + } + uni-page-head[uni-page-head-type=default]~uni-page-wrapper{ + height: calc(100% - 70px) !important; + } + uni-page-head .uni-page-head__title{ + font-size: 1.125rem !important; + line-height: 40px !important; + font-weight: normal !important; + } + uni-page-head .uni-btn-icon{ + font-size: 1.725rem !important; + } + .font_xs{ + font-size: 0.825rem !important; + } + .font_xl{ + font-size: 1.325rem !important; + } + .mini-type-style{ + font-size: 0.8rem !important; + } + .cen_card .label_box .label_info uni-text{ + line-height: 1.725 !important; + /* font-size: 1rem !important; */ + color: #333; + } + .cen_card .label_box .label_info{ + background-color: #eee !important; + } + .popup_box .detail-list{ + box-shadow: none !important; + } + .detail-list,.device-detail{ + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15) !important; + } + .list_form .uni-table-tr{ + background-color: #f0f0f0 !important; + } + .list_form .uni-table-th{ + border-bottom: 1px solid #cfcfcf !important; + } + /* yuanswitch + .require_wrap{ + padding-top: 0 !important; + } + .require_wrap .require_cell{ + line-height: 1.75 !important; + } + .ljh_box .tit_ljh{ + font-size: 1.25rem !important; + } + .cen_card .label_box .label_info { + background-color: #eee !important; + } + .cen_card .label_box .label_info uni-image{ + width: 48rpx !important; + height: 48rpx !important; + } + + .cen_card .label_box .label_info uni-text{ + line-height: 1.5 !important; + font-size: 1rem !important; + color: #333; + } + .ljh_box .tit_ljh .state-style, .top_card .state-style{ + font-size: 0.8rem !important; + } + .card_task .ljh_box{ + margin-bottom: 0 !important; + } + .task_num uni-image{ + width: 56rpx !important; + height: 56rpx !important; + } + .task_num uni-text{ + font-size: 1rem !important; + } + .pda_receipt_label .label_order uni-text{ + font-size: 1rem; + color: #434556; + } + .pda_receipt_label .icon_normal{ + width: 56rpx; + height: 56rpx; + } + .pda_receipt_bot .icon_normal{ + width: 56rpx; + height: 56rpx; + float: left; + } + .pda_receipt_bot .text_darkblue{ + float: left; + font-size: 1rem; + margin-top: 8rpx; + display: inline-block; + }*/ + .top_card .text_lightblue{ + font-size: 1rem !important; + } + .top_card .cell_box .cell_info{ + margin-bottom: 0; + } + .uni-tab-item-title{ + font-size: 1.125rem !important; + } + .cell_box .cell_info uni-view{ + font-size: 1rem !important; + color: #101010 !important; + } + .cell_box .cell_info .text_lightblue{ + font-size: 0.875rem !important; + color: #6A6E7A !important; + } + .cell_box .cell_info .text_black{ + font-size: 1.125rem !important; + + } + .scan_float uni-image{ + margin-top: 18rpx !important; + } + .scan_float uni-view{ + font-size: 0.875rem !important; + letter-spacing: 1px; + } + .new_btn_bot .new_save_btn,.popup_box .pop_title uni-text{ + font-size: 1rem !important; + } + .bot_card{ + background-color: #eee !important; + } + .bot_card_item uni-text{ + font-size: 0.8rem !important; + font-weight: 600; + } + .summary_state .state_point{ + font-size: 1rem !important; + } + .summary_item label{ + float: left; + } + .summary_item uni-text{ + font-size: 1.125rem !important; + font-weight: normal !important; + float: left; + } + /* popup */ + .popup_box{ + box-sizing: border-box; + } + .popup_box .uni-steps{ + width:100%; + overflow-x: hidden; + } + .popup_box .uni-steps__row-line-item{ + height: 60rpx !important; + } + .popup_box .uni-steps__row-text-container{ + margin-top: 0 !important; + } + .popup_box,.uni-popup .uni-scroll-view-content{ + border-top-left-radius:30rpx !important; + border-top-right-radius:30rpx !important; + } + .popup_box .pop_title{ + font-size: 1.125rem !important; + letter-spacing: 1px; + } + .popup_box .pop_tab .tab_tit{ + font-size: 0.875rem !important; + } + .popup_box .pop_tab .tab_tit_active{ + font-size: 1rem !important; + } + .popup_box .pop_tab .tab_info{ + min-height: 200rpx !important; + } + .popup_box .pop_tab .tab_info uni-textarea{ + height: 200rpx; + } + .popup_box .pop_tab .tab_info uni-button{ + font-size: 0.875rem !important; + letter-spacing: 1px; + } + /*底部按钮*/ + .new_btn_bot .new_save_btn{ + background-color: #E4EAFF !important; + height: 50px; + line-height: 50px; + } + .new_btn_bot .new_clear_btn{ + font-size: 1rem !important; + line-height: 50px; + } + .scroll-detail{ + padding-bottom: 70px !important; + } + .count_shadow,.device-detail{ + box-shadow: 0 0 20rpx rgba(0,0,0,0.2); + } + .list_info { + padding: 0 20rpx 20rpx; + margin-top: 0; + } + .uni-scroll-view-content .creattp_list{ + width: 100% !important; + } + .creattp_list .uni-list .list_cell uni-text{ + font-weight: bold; + } + .popup_box .scan_scroll{ + max-height: 44vh !important; + + } +} diff --git a/common/style/new_style.css b/common/style/new_style.css new file mode 100644 index 00000000..4db40b76 --- /dev/null +++ b/common/style/new_style.css @@ -0,0 +1,2663 @@ +/*WMY 20220818 cssv1.0*/ +/*公共*/ +uni-page-head .uni-page-head { + z-index: 98 !important; + background-color: #fff !important; +} + +uni-page-head .uni-page-head__title { + font-weight: normal; +} + +.whole { + width: 100%; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.tc { + text-align: center; +} + +.text_bold { + font-weight: bold; +} + +.text_black { + color: #101010; +} + +.text_packingCode { + color: #101010; + word-break: break-all; +} + +.text_lightblue { + color: #6A6E7A; +} + +.text_darkblue { + color: #434556; +} + +.text_blue { + color: #5A7CF3; +} + +.font_xs { + font-size: 0.775rem; +} + +.font_sm { + font-size: 0.825rem; +} + +.font_xl { + font-size: 1.125rem; +} + +.margin_top { + margin-top: 20rpx; +} + +.margin_bottom { + margin-bottom: 20rpx; +} + +.margin_xs_top { + margin-top: 10rpx; +} + +.margin_xs_bottom { + margin-bottom: 10rpx; +} + +.margin_right { + margin-right: 20rpx; +} + +.margin { + margin: 20rpx; +} + +.padding_10 { + padding: 10rpx; +} + +.padding_15 { + padding: 15rpx; +} + +.padding_20 { + padding: 20rpx; +} + +.padding { + padding: 20rpx; +} + +.padding_bottom { + padding-bottom: 20rpx; +} + +.nopad { + padding: 0 !important; +} + +.nopad_bot { + padding-bottom: 0 !important; +} + +/* +零件状态 +未知,可用,隔离,新增,规划,禁用 +*/ + +.item_active { + background-color: #5FCB94; + color: #FFFFFF; +} + +.item_hold { + background-color: #FF4206; + color: #FFFFFF; +} + +.item_new { + background-color: #E6A23C; + color: #FFFFFF; +} + +.item_plan { + background-color: #2677F9; + color: #FFFFFF; +} + +.item_disable { + background-color: #666; + color: #FFFFFF; +} + +/* 器具状态 */ +.container_empty { + background-color: #FF4206; + color: #FFFFFF; +} + +.container_useing { + background-color: #5FCB94; + color: #FFFFFF; +} + + +.container_repair { + background-color: #666; + color: #FFFFFF; +} + +.container_scrap { + background-color: #E6A23C; + color: #FFFFFF; +} + + + +.scan_float { + position: fixed; + z-index: 10; + right: 20rpx; + bottom: 20%; + width: 110rpx; + height: 110rpx; + background-color: #5A7CF3; + border-radius: 50%; + text-align: center; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2); +} + +.scan_float image { + width: 40rpx; + height: 40rpx; + margin-top: 10rpx; +} + +.scan_float view { + color: #fff; + font-size: .725rem; + margin-top: -8rpx; +} + +.top_card { + background-color: #5A7CF3; + overflow: hidden; + /* padding: 20rpx 0; */ +} + +.top_card .device-detail { + /* margin-top: 0 !important; */ +} + +.top_card .mini-type-style { + color: #fff !important; + font-weight: normal; + height: 46rpx; +} + +.cen_card { + padding: 0 0rpx; + width: 100%; + box-sizing: border-box; + float: left; +} + +.cell_box { + width: 100%; +} + +.cell_box .cell_info { + position: relative; + /* width: 25%; */ + padding: 0 20rpx; + margin: 0 0 20rpx; + text-align: center; +} + +.cell_box .cell_long { + /* width: 33%; */ +} + +.cell_box .cell_info view { + font-size: 0.825rem; + margin-bottom: 10rpx; + color: #7B8195; +} + +.cell_box .cell_info .text_black { + font-size: .875rem; + color: #101010; +} + +.cell_box .cell_info .text_lightblue { + color: #949CB6; + font-size: 0.8rem; +} + +.cell_box .cell_info::after { + position: absolute; + content: ""; + right: 0; + top: 50%; + transform: translateY(-50%); + width: 1px; + height: 20px; + background-color: #ddd; +} + +.cell_box .cell_info:last-child::after { + width: 0; +} + +.cen_card .label_box { + margin-bottom: 20rpx; +} + +.cen_card .label_box .label_info { + background-color: #eee; + color: #434556; + font-size: 0.875rem; + padding: 8rpx; + border-radius: 8rpx; + margin-right: 10rpx; + vertical-align: middle; +} + +.cen_card .label_box .label_info image { + /* float: left; */ + vertical-align: middle; +} + +.cen_card .label_box .label_info text { + /* line-height: 1.25; */ + /* float: left; */ + vertical-align: middle; +} + +.photo_btn { + background-color: #ececec; + color: #5A7CF3; + font-size: 0.875rem; + padding: 8rpx 10rpx; + border-radius: 8rpx; +} + +.photo_btn text { + line-height: 1.5; +} + +.cen_card .cell_box .text_black { + font-size: 0.875rem; +} + +.cen_card .cell_box .cell_info .text_lightblue { + font-size: 0.725rem; +} + +.bot_card { + background-color: #f8f8f8; + padding: 16rpx; + overflow: hidden; +} + +.bot_card_item { + width: 50%; + text-align: left; + height: 60rpx; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/* .item_long{ + width: 32% !important; +} +*/ +.item_short { + width: 20%; +} + +.bot_card_item uni-text { + font-size: .725rem; + margin-left: 4rpx; + color: #333333; + background-color: transparent; +} + +.bot_card_item .icon_state { + float: left; + margin-top: 22rpx; +} + +.summary_wrap { + padding: 20rpx; + padding-top: 0; +} + +.summary_state .state_point { + font-size: 0.825rem; +} + +.summary_item uni-text { + font-size: 0.825rem; +} + +.bot_card_item uni-text.state_point { + background-color: transparent; +} + +.bot_card_item label { + vertical-align: middle; +} + +.icon_normal { + width: 58rpx; + height: 58rpx; + vertical-align: middle +} + +.bot_card_item .icon_normal { + float: left; + width: 46rpx; + height: 46rpx; +} + +.icon_bg { + display: inline-block; + width: 46rpx; + height: 46rpx; + border-radius: 4rpx; +} + +.icon_bg_xm { + background-color: #45B5F3; +} + +.icon_bg_kw { + background-color: #5A7CF3; +} + +.icon_bg_pc { + background-color: #BF94EB; +} + +.icon_state { + display: inline-block; + width: 20rpx; + height: 20rpx; + border-radius: 50%; +} + +.state_point { + background: none; +} + +.title_tab { + display: flex; + justify-content: center; + height: 100rpx; +} + +.bottom { + padding: 0 !important; +} + +.uni-popup .uni-scroll-view { + overflow: visible !important; +} + +.uni-popup .uni-scroll-view-content { + overflow-y: scroll; + max-height: 94vh; + background-color: #fff; + border-top-left-radius: 20rpx; + border-top-right-radius: 20rpx; +} + +.uni-popup .scroll-Y { + padding-bottom: 0; +} + +.popup_box { + position: relative; + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; + background: #fff url(@/static/icons_ui/popup_bot_bg.png) no-repeat left top; + background-size: 100%; + max-height: 93vh; +} + +.popup_box .pop_title { + font-size: 0.9rem; + font-weight: bold; + color: #fff; + padding: 20rpx 20rpx; + font-size: 35rpx; +} + +.popup_box .pop_title text { + font-size: 0.9rem; + font-weight: normal; +} + +.popup_box .uni-steps { + width: 98%; +} + +.popup_box .top_bg { + width: 100%; + height: inherit; +} + +.popup_box .pop_tab { + padding: 20rpx; + box-sizing: border-box; + width: 100%; +} + +.popup_box .pop_tab .tab_tit { + font-size: .825rem; + text-align: center; + color: #333; + background-color: #fff; + /* width: 30%; */ + box-sizing: border-box; + padding: 10rpx 16rpx; + border-top-left-radius: 8rpx; + border-top-right-radius: 8rpx; + margin-right: 6rpx; +} + +.popup_box .pop_tab .tab_tit_active { + color: #5A7CF3; + font-weight: bold; + /* font-size: 0.875rem; */ +} + +.popup_box .pop_tab .tab_info { + position: relative; + background-color: #fff; + border-radius: 8rpx; + box-shadow: 0 6rpx 20rpx rgba(90, 124, 143, 0.1); + min-height: 100rpx; +} + +.popup_box .pop_tab .tab_info textarea { + height: 280rpx; +} + +.popup_box .pop_tab .tab_info .uni-textarea-placeholder { + font-size: 0.825rem; +} + +.popup_box .scan_scroll { + max-height: 41vh; + width: 100%; + overflow-x: hidden; + overflow-y: scroll; +} + +.popup_box .scan_scroll .uni-scroll-view-content { + /* width: 104%; */ + overflow-x: hidden; + background-color: transparent; +} + +.popup_box .pop_tab .next_info { + box-shadow: 0 0 20rpx rgba(90, 124, 143, 0.1); +} + +.popup_box .pop_tab .tab_notitle { + border-radius: 8rpx; +} + +.popup_box .pop_tab .tab_info button { + position: absolute; + bottom: 10rpx; + right: 20rpx; + background: #3C9CFF; + color: #fff; + border: 0; + border-radius: 8rpx; + width: 130rpx; + float: right; + font-size: .725rem; +} + +.popup_box .pop_tab .tab_info textarea { + padding-top: 20rpx; +} + +.list_wrap { + margin: 20rpx; +} + +.ljh_box { + padding: 20rpx; + z-index: 10; + width: 100%; + float: left; + box-sizing: border-box; +} + +.ljh_left { + margin-top: 10rpx; +} + +/* .ljh_right{ + float: right; +} */ +.ljh_right uni-text { + line-height: 1.5; +} + +.ljh_right .tnum .num_edit { + background-color: #FFF9DB; + width: 150rpx; +} + +.ljh_right .tnum { + font-size: 1.25rem; + color: #EC5B28; + font-weight: bold; + margin-right: 4rpx; +} + +.ljh_right .tunit { + font-size: 0.875rem; + color: #F5AB91; +} + +.ljh_box .tit_ljh { + line-height: 1.5; + font-size: 0.875rem; + color: #101010; + font-weight: bold; + word-break: break-all; +} + +.ljh_box .tit_ljh .mini-type-style { + float: left; + margin-top: 10rpx; + padding: 0 8rpx; + font-size: 0.725rem; +} + +.ljh_box .tit_ljh .state-style, +.top_card .state-style { + font-size: .625rem; + padding: 4rpx 6rpx; + margin-right: 8rpx; + vertical-align: middle; + font-weight: normal; + border-radius: 4rpx; + color: #fff; +} + +.ljh_box .tit_ljh .state-style { + /* padding: 6rpx; */ +} + +.ljh_box .tit_ljh text { + float: left; +} + +.ljh_box .desc_ljh { + line-height: 1.5; +} + +.label_normal { + margin-top: 20rpx; +} + +.label_normal .label_col image { + float: left; + vertical-align: middle; +} + +.label_normal .label_col text { + font-size: 0.825rem; + line-height: 1.25; + float: left; + color: #434556; +} + +.lo_cellbox { + margin-top: 20rpx; +} + +.lo_cellbox .cell_info { + margin-bottom: 0; +} + +/*提交按钮*/ +.new_btn_bot { + position: fixed; + bottom: 0; + left: 0; + box-sizing: border-box; + width: 100%; + background-color: #fff; + padding: 20rpx; + z-index: 10; + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.2); +} + +.bot_pos { + position: initial; +} + +.new_btn_bot .new_save_btn { + background-color: #E7ECFF; + color: #5A7CF3; + font-size: .875rem; +} + +.new_btn_bot .new_clear_btn { + background-color: #FFDADD; + color: #f00; + font-size: .875rem; + margin-right: 20rpx; +} + +.new_btn_bot .new_cancel_btn { + background-color: #eee; + color: #333; + font-size: .875rem; + margin-right: 20rpx; +} + +.new_btn_bot .btn_double { + width: 50%; +} + +.new_btn_bot uni-button:after { + border: 0; +} + +.choose_main { + position: relative; + z-index: 2; +} + +.choose_layout { + position: relative; + width: 100%; + height: 130rpx; + background-color: #fff; + +} + +.choose_icon_layout { + position: absolute; + right: 160rpx; + top: 10rpx; + bottom: 0rpx; + /* width: 100rpx; + height:100rpx; */ +} + +.choose_icon { + margin-top: 5rpx; + margin-bottom: 10rpx; + width: 100rpx; + height: 100rpx; +} + +.choose_marked { + position: absolute; + width: 100%; + /* height: 100%; */ + top: 0; + left: 0; + bottom: 0; + right: 0; + border-top: 6rpx solid #5FCB94; + background-image: linear-gradient(rgba(95, 203, 148, 0.5), rgba(95, 203, 148, 0)); + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; +} + +.choose_marked_faild { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-top: 6rpx solid #FF0000; + background-image: linear-gradient(rgba(255, 100, 97, 0.3), rgba(255, 100, 97, 0)); + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; +} + +.nodeliver_tag { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; + border-top: 6rpx solid #F54D4D; + background-image: linear-gradient(rgba(245, 77, 77, 0.1), rgba(245, 77, 77, 0)); + +} + +.choose_marked image { + float: right; + margin-right: 28%; + margin-top: 20rpx; + width: 120rpx; + height: 120rpx; +} + +.choose_marked_faild image { + float: right; + margin-right: 28%; + margin-top: 20rpx; + width: 120rpx; + height: 120rpx; +} + +.pop_list { + background-color: #fff; + /* padding: 20rpx; */ + padding-top: 0; + margin-top: 20rpx; +} + +.uni-scroll-view-content .creattp_list { + padding: 6rpx 20rpx 0; + box-sizing: border-box; + width: 96%; +} + +.list_info .uni-scroll-view-content { + max-height: 10vh; +} + +.pop_list .detail-content { + margin-bottom: 20rpx; + border-radius: 16rpx; + overflow: hidden; + box-shadow: 0 0 14rpx rgba(0, 0, 0, 0.1); +} + +.pop_btn { + padding: 20rpx; + padding-top: 0; +} + +.pop_btn button { + width: 49%; + height: 90rpx; + line-height: 90rpx; + font-size: 0.875rem; + margin: 0; + color: #333; +} + +.pop_btn button::after { + border: 0; +} + +.pop_btn .cancel { + background-color: #eee; +} + +.pop_btn .save { + background-color: #5A7CF3; + color: #fff; +} + +.popinpop { + margin: 10px 1%; + border-radius: 8px; + background-color: #fff; + color: #666666; + line-height: 1.5; + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); + width: 98%; + +} + +.scan_btn:after { + border: 8rpx; +} + +.popup_box .pop_tab .tab_info .clean_scan_btn { + background-color: #eee; + color: #333; + margin-right: 140rpx; + border-radius: 8rpx; +} + +.popup_box .pop_tab .tab_info .clean_scan_btn::after { + border: 0; +} + +/*检验任务-topline*/ +.card_task { + padding: 20rpx; + padding-bottom: 0; +} + +.task_num { + border-bottom: 1px solid #eee; + padding-bottom: 10rpx; + margin-bottom: 10rpx; + overflow: hidden; +} + +.top_card .task_num { + border: 0; +} + +.task_num image { + vertical-align: middle; + margin-right: 10rpx; +} + +.task_num text { + color: #333; + vertical-align: middle; +} + +.label_order image { + /* vertical-align: text-bottom; */ + vertical-align: middle; +} + +.label_order text { + font-size: .825rem; + vertical-align: middle; +} + +.tit_jxs { + font-size: 1rem !important; + margin-bottom: 10rpx; +} + +.tit_jxs .state-style { + vertical-align: middle; + margin-top: 6rpx; +} + +/* 为按序发货添加 */ +/* .state-style{ + background-color: #ececec; +} */ +.receipt_bot { + justify-content: space-between; + border-top: 1px solid #eee; + padding-top: 10rpx; +} + +/*收货列表*/ +.require_wrap { + background-color: #fff; + padding: 20rpx; +} + +.require_wrap uni-button:after { + border: 0; +} + +.require_wrap .require_cell { + background: #f5f5f5; + font-size: .825rem; + padding: 10rpx 20rpx; + margin-right: 20rpx; + border-radius: 50rpx; + line-height: 1.5; + margin-left: 0; + border: 1px solid #f5f5f5; +} + +.require_wrap .require_active { + border: 1px solid #5A7CF3; + background-color: #EFF6FF; + color: #5A7CF3; +} + +.require_wrap .require_active text { + display: inline-block; + width: 20rpx; + height: 20rpx; + background-color: #5A7CF3; + border-radius: 50%; + float: left; + margin: 12rpx 10rpx 12rpx 0; +} + +.list_inspect .uni-input-input { + color: #f00; +} + +.list_form { + padding: 20rpx; + padding-top: 0; +} + +.list_form .uni-table-tr { + background-color: #f8f8f8; + color: red; +} + +.list_form .uni-table-th { + padding: 10rpx !important; + border-bottom: 1px solid #ececec; + font-weight: normal !important; + font-size: 0.775rem; + color: red; +} + +.list_form .uni-easyinput { + background-color: #FFF9DB; +} + +.list_form .uni-easyinput__content { + min-height: 50rpx !important; + text-align: center; +} + +.count_shadow { + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); +} + +.count_list { + font-size: 0.8rem; + color: #0F5EFF; + padding: 10rpx 0; +} + +.count_list text:first-child { + margin-left: 0; +} + +.count_list text { + margin: 10rpx; +} + +.popuni_list::after { + height: 0 !important; +} + +.uni-list .list_cell { + margin-bottom: 20rpx; + height: 100rpx; + align-items: center; + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); +} + +.uni-list .list_cell:last-child { + margin-bottom: 0; +} + +.uni-list .list_cell .is-input-border { + border: 0; +} + +.uni-list .list_cell .title { + padding-left: 20rpx; + font-size: 0.875rem; +} + +.uni-list .list_cell .info { + padding-right: 20rpx; + color: #333; + font-size: 0.875rem; +} + +.popuni_list .list_cell { + background-color: #fff; + border-radius: 8rpx; + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); +} + +.popuni_list .list_cell .uni-data-tree-input { + padding-left: 0; +} + +.popuni_list .list_cell .input-value-border { + border: 0; + padding: 0; +} + +.popuni_list .list_cell .selected-list { + padding-left: 0; +} + +/* .uni-list .list_cell .necessary_tag{ + padding-right: 0; + color: #f00; +} */ +.uni-list .list_cell .uni-easyinput { + padding-right: 20rpx; + text-align: right; + box-sizing: border-box; + border: 0; +} + +.uni-list .list_cell .uni-input-input { + font-size: 0.875rem; +} + +.list_card { + margin-top: 20rpx; + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); +} + +.list_card:first-child { + margin-top: 10rpx; +} + +.inspect_form .uni-label { + font-size: 0.875rem; +} + +.pda-list-cell-db .is-input-border, +.pda-list-cell-db .input-value-border { + border: 0 !important; +} + +.list_locode { + padding: 20rpx; + padding-top: 0; +} + +.inspect_card { + background-color: #fff; + margin: 20rpx; + border-radius: 16rpx; +} + +.inspect_card .ljh_box text { + line-height: 1.75; +} + +.inspect_list_locode { + border-bottom: 1px solid #eee; + padding-bottom: 20rpx; +} + +.inspect_list_locode image { + vertical-align: middle; +} + +.default_nodata { + position: relative; + left: 50%; + transform: translateX(-50%); + margin-top: 100rpx; + width: 390rpx; + height: 300rpx; + +} + + +.default_goscan { + width: 100%; +} + +.default_goscan .img_goscan { + position: relative; + width: 500rpx; + height: 500rpx; + left: 50%; + transform: translateX(-50%); +} + +.default_goscan button { + width: 60%; + height: 100rpx; + background-color: #5A7CF3; + color: #fff; + border-radius: 50rpx; + text-align: center; + line-height: 100rpx; +} + +.default_goscan button image { + width: 30rpx; + height: 30rpx; + margin-right: 20rpx; + vertical-align: middle; + margin-top: -8rpx; + +} + +.new_bot_box { + position: fixed; + width: 100%; + left: 0; + bottom: 0; + background-color: transparent; + z-index: 10; +} + +.new_bot_box .uni-collapse { + background-color: transparent !important; +} + +.new_bot_box .uni-collapse-item__title.uni-collapse-item-border { + width: 96%; + margin: 0 2%; + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; + overflow: hidden; + text-align: center; +} + +.new_bot_box .uni-collapse-item__title-text { + padding-left: 40rpx; +} + +.new_bot_box .uni-collapse-item__title.uni-collapse-item-border, +.new_bot_box .uni-collapse-item__title-box { + background-color: #7B8195 !important; + color: #fff !important; +} + +.new_bot_box .uni-collapse-item__title-box { + height: 80rpx !important; + line-height: 80rpx !important; +} + +.new_bot_box .content { + background-color: #fff !important; +} + +.new_bot_box .content .uni-easyinput { + box-sizing: border-box; +} + +.new_bot_box .content .uni-data-picker, +.new_bot_box .input-value, +.new_bot_box .uni-input-input, +.new_bot_box .selected-item, +.new_bot_box .placeholder, +.new_bot_box .uni-easyinput__content-input { + font-size: 0.875rem !important; +} + +.new_bot_box .content .tit_bot_box { + padding: 20rpx 20rpx 10rpx; + font-size: 0.875rem; +} + +.new_bot_box .uni-collapse-item__wrap-content.uni-collapse-item--border { + border: 0; +} + +.new_bot_box .border .uni-easyinput { + border: 1px solid #e5e5e5; + border-radius: 10rpx; +} + +.hold_form .uni-table-th-content { + font-weight: normal; + font-size: 0.775rem; +} + +.top_wrap { + padding: 20rpx; + background-color: #fff; +} + +.top_wrap .top_card { + border-radius: 8px; + color: #fff; + line-height: 100rpx; +} + +.top_wrap .top_card .top_lines_info { + padding: 0 20rpx; +} + +.top_wrap .top_card .top_lines_info text { + font-size: 0.9rem; + margin-left: 10rpx; +} + +/* 按序收货 */ +.recept_form { + padding: 20rpx; +} + +.recept_form .form_title { + padding: 20rpx 20rpx 0; +} + +.recept_form .form_title image { + float: left; + margin-top: 10rpx; + margin-right: 10rpx; +} + +.recept_form .form_title text { + font-size: 1rem; + vertical-align: middle; +} + +.recept_form .table--border { + border: 0 !important; +} + +.recept_form th { + background-color: #F3F6FF; + color: #434556 !important; +} + +.recept_form th.table--border, +.recept_form td.table--border { + border: 0; +} + +.recept_form .recept_form_info { + background-color: #fff; + border-radius: 16rpx; + padding-bottom: 16rpx; +} + +.recept_form .uni-table-td { + font-size: 0.8rem; +} + +/* 天津发货详情 */ +.deliver_card { + flex: 1; + line-height: 30px; + margin: 20rpx 20rpx 0; + border-radius: 16rpx; + overflow: hidden; + background-color: transparent; + position: relative; + border-bottom-color: #f5f5f5; + border-bottom-width: 1px; + border-bottom-style: solid; +} + +.deliver_card .card_info { + background-color: #fff; +} + +.deliver_card .deliverState { + background-color: #fff; + padding: 20rpx 10rpx; + background-color: transparent; + border-left: 10rpx solid transparent; +} + +.deliver_card .deliverState .content-text image { + vertical-align: text-bottom; + margin-right: 6rpx; +} + +.deliver_card .deliverState .content-text text { + margin-right: 10rpx; +} + +.deliver_card .deliverState1 { + background-color: #fff; + border-left: 10rpx solid #F6CB61; +} + +.deliver_card .deliverState3 { + background-color: #fff; + border-left: 10rpx solid #5FCB94; +} + +.deliver_card .deliverState4 { + background-color: #fff; + border-left: 10rpx solid #EC5B28; +} + +.deliver_card .card_state { + border: 1px solid transparent; + padding: 0 20rpx; + font-size: 0.8rem; + position: absolute; + right: 20rpx; + top: 50%; + transform: translateY(-50%); + border-radius: 80rpx; +} + +.deliver_card .tjpending { + border-color: #F6CB61; + color: #F6CB61; +} + +.deliver_card .tjsent { + border-color: #5FCB94; + color: #5FCB94; +} + +.deliver_card .tjnosend { + border-color: #EC5B28; + color: #EC5B28; +} + +.login_wrap { + width: 100%; + position: relative; + top: -20rpx; + background-color: #fff; + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; +} + +.login_title { + position: absolute; + top: 120rpx; + left: 30rpx; + color: #fff; + font-size: 1.125rem; + font-weight: bold; + letter-spacing: 4rpx; + line-height: 1.5; +} + +.login_title text { + font-size: 1.125rem; + letter-spacing: 0; +} + +/* 登录 */ +.mybox .is-input-border { + border: 0 !important; +} + +/* 消息列表 */ +.msg_body { + background-color: #fff; +} + +.msg_list { + padding-top: 20rpx; +} + +.msg_list .uni-list-chat__header { + width: 60rpx !important; + height: 60rpx !important; + background-color: #3d7eff; + border-color: transparent !important; + border-radius: 6rpx !important; +} + +.msg_list .uni-list--border-top, +.msg_list .uni-list--border-bottom, +.msg_list .uni-list--border:after, +.msg_body .uni-list:after { + height: 0 !important; +} + +.msg_list .uni-list-chat__header-image { + width: 50rpx !important; + height: 50rpx !important; +} + +.msg_list .uni-badge--dot { + left: inherit !important; + right: 20rpx; + top: 40rpx !important; +} + +.msg_list .uni-list-chat__content-title { + font-size: .9rem !important; +} + +.msg_list .hasread .uni-list-chat__header { + background-color: #ccc; +} + +/* index */ +.index_top { + background-color: #5A7CF3; + width: 100%; +} + +.index_top .uni-searchbar { + padding-right: 0 !important; +} + +.index_top .index_btn { + background-color: transparent; + font-size: 0.825rem; + padding: 0 0.9rem; + +} + +.index_top uni-button:after { + border: 0 !important; +} + +.index_top .uni-searchbar__box { + background-color: rgba(255, 255, 255, 0.3) !important; + border-color: transparent !important; + justify-content: inherit !important; +} + +.index_top .uni-searchbar__text-input, +.uni-searchbar__box-icon-search, +.index_top .uniui-search { + color: #fff !important; +} + +.index_top .uni-searchbar__text-placeholder, +.index_top .uni-input-placeholder { + color: #eee !important; +} + +.index_top .uni-input-input { + color: #fff; +} + +.common_title { + font-size: .825rem; + font-weight: bold; +} + +.common_icons { + width: 100%; + padding: 20rpx; + box-sizing: border-box; +} + +.common_icons .common_info { + position: relative; + top: -120rpx; + background-color: #fff; + width: 100%; + box-sizing: border-box; + padding: 20rpx; + border-radius: 16rpx; + + /* box-shadow: 0 0 10rpx rgba(0,0,0,0.1); */ +} + +.common_icons .common_info .common_cell { + margin-right: 20rpx; + text-align: center; +} + +.common_icons .common_info .common_cell .cell_icon { + background-color: #EEF2FE; + border-radius: 50%; + width: 110rpx; + height: 110rpx; + margin: 20rpx 20rpx 0; +} + +.common_icons .common_info .common_cell .cell_icon image { + float: left; + width: 50rpx; + height: 50rpx; + margin: 35rpx; +} + +.common_icons .common_info .cell_last { + margin-right: 0; +} + +uni-tabbar .uni-tabbar-border { + height: 0; +} + +.index_menu { + width: 100%; + float: left; + margin-top: -100rpx; + /* height: calc(100% - 200px); */ +} + +.index_menu .menu_content { + width: 26%; + text-align: center; + float: left; + height: 100%; + overflow-y: scroll; +} + +.index_menu .index_title .title_left { + width: 100%; + border-left: 2px solid transparent; + line-height: 80rpx; + font-size: 0.825rem; + text-align: center; +} + +.index_menu .menu_content .index_title { + width: 100%; + float: left; + line-height: 100rpx; + font-size: 0.825rem; +} + +.index_menu .menu_content .tit_active { + box-sizing: border-box; + background-color: #fff; + border-left: 2px solid #5A7CF3; + font-weight: bold; + float: left; +} + +.index_menuinfo { + width: 74%; + float: left; + box-sizing: border-box; + padding: 20rpx; + position: relative; + overflow-y: scroll; + background-color: #fff; + /* height: 100%; */ + +} + +.menu_ab { + position: absolute; + top: 420rpx; + left: 0; + width: 100%; + z-index: 10; + /* height: calc(100% - 185px); */ + +} + +.index_menuinfo .icon_block { + position: relative; + text-align: center; + width: 33%; + float: left; + /* margin-top: -10rpx; */ +} + +.index_menuinfo .icon_block image { + float: left; + width: 80%; + height: 80rpx; + margin: 3% 10% 0; +} + +.index_menuinfo .icon_block text { + float: left; + width: 100%; + font-size: .8rem; + height: 80rpx; + color: #101010; +} + +.index_menuinfo .icon_block .index_badge { + width: 42rpx; + height: 42rpx; + font-size: 0.6rem; + background-color: #c00; + position: absolute; + right: 0; + color: #fff; + text-align: center; + line-height: 42rpx; + border-radius: 50%; +} + +uni-tabbar.uni-tabbar-bottom .uni-tabbar { + box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.1); +} + +uni-modal .uni-modal__bd { + font-size: 1rem !important; + color: #000 !important; +} + +.passwordpage .uni-forms-item__label .label-text { + font-size: 0.8rem !important; +} + +.passwordpage .is-input-border { + border: 0 !important; +} + +.passwordpage .is-direction-left { + padding: 10rpx 20rpx; + background-color: #fff; + /* margin: 20rpx 0; */ +} + +.passwordpage .uni-forms-item__inner { + padding-bottom: 10rpx !important; +} + +.passwordpage .new_save_btn { + font-size: 1rem; +} + +.personal uni-button:after { + border: 0 !important; +} + +.personal .uni-list:after { + height: 0 !important; +} + +.personal .uni-list-item__icon { + margin-right: 0 !important; +} + +.personal .uni-list-item__extra-text { + font-size: 1rem !important; + color: #101010 !important; + font-weight: bold; +} + +.personal .uni-list--border-top, +.uni-list--border-bottom, +.uni-list--border::after { + background-color: transparent !important; +} + +uni-modal .uni-modal__ft { + font-size: 0.875rem; +} + +uni-modal .uni-modal__title { + color: #333; +} + +uni-modal .uni-modal__bd { + padding: 1.3em 1.6em 1.3em; + min-height: 40px; + /* font-size: 15px; */ + line-height: 1.4; + /* color: #999; */ + max-height: 400px; + overflow-x: hidden; + overflow-y: auto; +} + +uni-modal .uni-modal__hd { + padding: 1em 1.6em .3em; + height: 30px; +} + +/*dy_add*/ +.btn_unusual button { + margin-right: 10rpx; +} + +.btn_unusual button:last-child { + margin-right: 0; +} + +/* .tit_ljh .text_white{ + color: #fff !important; + font-size: 0.725rem; + font-weight: normal; + padding: 4rpx; +} */ +.bot_card .pending { + color: #5FCB94; +} + +.camera_pop { + border-top-left-radius: 16rpx; + border-top-right-radius: 16rpx; +} + +.camera_list { + padding: 20rpx; + box-sizing: border-box; + max-height: 75vh; + overflow-y: scroll; +} + +.camera_list .list_cell { + border-bottom: 1px solid #eee; + box-shadow: none; + margin-bottom: 0; +} + +.camera_list .list_cell .uni-easyinput { + padding-right: 0; +} + +.camera_list .list_cell .title { + color: #666; +} + +.camera_list .selected-item { + font-size: 0.875rem; +} + +.camera_list .input-value span { + padding: 0; + font-size: 0.875rem; +} + +.camera_pop .pop_btn { + background-color: #fff; +} + +.cell_box .result_card .text_black { + font-size: 1rem; +} + +.cell_box .result_card .red { + color: #c00; +} + +.new_btn_bot .btn_triple { + margin-right: 10rpx; +} + +.cell_box .scan_btn_fr { + float: right; + background-color: #ececec; + color: #5A7CF3; + font-size: 0.725rem; + padding: 10rpx 20rpx; + border-radius: 16rpx; + line-height: 2; + margin: 0 20rpx 20rpx 0; + height: 60rpx; +} + +.cell_box .scan_btn_fr image { + /* margin-top: 4rpx; */ + /* float: left; */ +} + +.cell_box .scan_btn_fr text {} + +.login_wrap .content-clear-icon { + display: none; +} + +.login_wrap .conone .uni-easyinput { + padding-left: 10rpx !important; +} + +.quality_cell { + height: auto !important; +} + +.quality_cell .title { + line-height: 80rpx; + color: #666; +} + +.check_textarea { + font-size: 0.875rem; + color: #333; +} + +.check_textarea uni-textarea { + padding: 10rpx 20rpx; + height: 40px; +} + +.check_textarea .uni-textarea-placeholder { + font-size: 0.875rem; + color: #ccc; +} + +.common_card .ljh_box, +.pop_card .ljh { + width: 100%; + box-sizing: border-box; +} + +.common_card .ljh_box .tit_ljh, +.pop_card .ljh_box .tit_ljh { + float: left; + width: 50%; +} + +.common_card .ljh_info, +.pop_card .ljh_info { + width: 100%; + box-sizing: border-box; +} + +.common_card .desc_card, +.pop_card .desc_card { + width: 100%; + box-sizing: border-box; + padding: 0; +} + +.common_card .label_xm, +.pop_card .label_xm { + background-color: #45B5F3; + line-height: 2.0; + padding: 0 10rpx; + color: #fff; + border-radius: 8rpx; + max-width: 300rpx; + font-size: 0.7rem; + overflow: visble; + word-break: break-all; + /* overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 0.7rem;*/ +} + +.result_nodata text { + display: inline-block; + width: 100%; + text-align: center; + color: #999; + font-size: 1.125rem; + margin-top: -20rpx; +} + +.passwordpage .uni-forms-item__label { + width: 180rpx !important; +} + +/* 20221114add */ +.semi_col { + margin-top: 0; +} + +.semi_col .uni-collapse-item__title-text span { + font-size: 1rem; + /* font-weight: bold; */ +} + +.semi_col .common_card .ljh_box .tit_ljh { + font-size: 1rem; + width: 56%; + /* font-weight: normal; */ +} + +.semi_col .num_color { + color: #EC5B28; +} + +.issuelist { + position: relative; +} + +.issuelist .notuse, +.issuelist .use { + float: right; + color: #333; + font-size: 0.825rem; +} + +.issuelist .notuse image, +.issuelist .use image { + vertical-align: middle; +} + +.issuecard .task_num { + border: 0; + margin-bottom: 0; + padding: 0; + + border-bottom: 1px solid #eee; + padding-bottom: 10rpx; + margin-bottom: 10rpx; + overflow: hidden; +} + +.issuelist .tag_icon { + width: 94rpx; + height: 94rpx; + position: absolute; + right: 0; + top: -6rpx; +} + +button::after { + border: none; + border-radius: 0; +} + +.btn_confirm { + width: 50%; + border: none; + background: #009EFF; + border-radius: 0; + color: #FFFFFF; +} + +.btn_cancle { + width: 50%; + border: none; + background: #FFFFFF; + border-radius: 0; + color: #000000; +} + +.line_color { + /* color: #E7E6E4; */ + color: #F5EBF4; + /* padding-top: 10rpx; + padding-bottom: 10rpx; */ +} + + + +.filter_button { + font-size: 28rpx; + padding-left: 20rpx; + padding-right: 20rpx; + /* width: 240rpx; */ + color: #fff; + background-color: #3C9CFF; +} + +.filter_button_after { + opacity: 0.7; +} + +.btn_edit_big_confirm { + font-size: 35rpx; + width: 50%; + color: #fff; + background-color: #3C9CFF; + border: none; + border-radius: 0; +} + +.btn_edit_big_cancle { + font-size: 35rpx; + width: 50%; + color: #303133; + border: none; + border-radius: 0; + box-shadow: none; + background-color: #fff; + +} + +.btn_edit_big_after { + opacity: 0.7; +} + +.btn_add_big { + background-color: #D8D8D8; + color: #fff; + text-align: center; + display: flex; + justify-content: center; + align-items: center; +} + +.icons_close { + width: 70rpx; + height: 70rpx; + margin: 10rpx; +} + +.paizhao { + padding-bottom: 10rpx; + padding-top: 20rpx; + padding-left: 20rpx; +} + +.paizhao image { + width: 50rpx; + height: 50rpx; +} + +.card_partCode { + font-size: 36rpx; + font-weight: 500; + padding: 10rpx; + +} + +.card_icon_normal { + width: 45rpx; + height: 45rpx; + vertical-align: middle +} + +.card_packing_code { + font-size: 32rpx; + color: #3315EB; +} + +.card_packing_code_content { + font-size: 32rpx; +} + + +.card_batch { + color: #00B574; + font-size: 32rpx; +} + + +.card_batch_content { + font-size: 32rpx; +} + +.card_business { + color: #F1A532; + font-size: 32rpx; +} + +.card_business_content { + font-size: 32rpx; +} + +.card_location { + color: #00A3FF; +} + +.card_supportCode { + color: #DA8910; + font-size: 32rpx; +} + +.card_supportCode_content { + font-size: 32rpx; +} + +.scan_view { + background: linear-gradient(to right, #7ED7BD, #DCEFEE); +} + +.pack_view { + font-size: 32rpx; + padding: 5rpx; +} + +.location_view { + font-size: 32rpx; + padding: 5rpx; +} + +.batch_view { + font-size: 32rpx; + padding: 5rpx; +} + +.business_view { + font-size: 32rpx; + padding: 5rpx; +} + +.pop_customer { + border-radius: 8rpx; + background-color: #fff; +} + +.nodata { + width: 390rpx; + height: 300rpx; +} + +.text_ellipsis { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.task_item { + margin: 10rpx; + background-color: #fff; +} + +.task_card { + padding: 12rpx; + background-color: #fff; + border-radius: 10rpx; + margin: 12rpx; + +} + +.task_number { + font-size: 35rpx; + font-weight: 600; + /* bold */ +} + +.task_text { + font-size: 30rpx; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.request_state_un-doing { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +.job_state_doing { + font-size: 28rpx; + background: rgba(236, 156, 0, 0.2); + color: #EC9C00; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +.job_state_un-doing { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +.job_state_completed { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +.job_state_close { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + + +.job_state_cancelled { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #ff0000; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +.pop_detail { + background-color: #fff; + width: 100%; + border-radius: 8rpx 8rpx 0rpx 0rpx; + padding: 15rpx; +} + +.pop_detail .item { + padding-top: 5rpx; + padding-bottom: 5rpx; + + margin-left: 10rpx; + margin-right: 10rpx; + + display: flex; + flex-direction: row; + + -webkit-justify-content: space-between; + justify-content: space-between; +} + +.pop_detail .item_title { + padding-top: 5rpx; + padding-bottom: 5rpx; +} + +.pop_detail .text_wrap { + color: #909399; + word-break: break-all; + text-align: right; +} + +.pop_detail .item_big_title { + /* color: #2196F3; */ + /* font-size: 35rpx; */ + margin-left: 10rpx; + margin-right: 10rpx; + margin-top: 10rpx; + margin-bottom: 10rpx; +} + + + + +/deep/.uni-popup .uni-popup__wrapper { + width: 100% !important; + padding: 15rpx 20rpx 15rpx 20rpx; +} + +.btn_bottom { + position: fixed; + bottom: 10rpx; + right: 0; +} + +.btn_add_small { + + background-color: #3C9CFF; + width: 200rpx; + font-size: 30rpx; + color: #fff; + border-radius: 5rpx; +} + +.btn_add_small_after { + opacity: 0.7; +} + +.btn_commit_after { + opacity: 0.7; +} + +/* 禁用时样式 */ +button[disabled] { + background-color: #fff; + color: #666; +} + +.btn_commit { + background-color: #3C9CFF; + font-size: 30rpx; + color: #fff; + text-align: center; + padding-left: 80rpx; + padding-right: 80rpx; + margin-right: 20rpx; + margin-left: 10rpx; +} + +.btn_add { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + + position: absolute; + width: 97%; + height: 35px; + border-radius: 3px; + opacity: 1; + padding: 5px; + margin-left: 5px; + margin-right: 5px; + + box-sizing: border-box; + border: 1px dashed #AAAAAA; + background: #D8D8D8; + + color: #FFFFFF; + font-size: 16px; + font-weight: normal; + line-height: 26px; + letter-spacing: 0em; +} + +.btn_clear_after { + opacity: 0.7; +} + + +.btn_clear { + background-color: #fff; + font-size: 30rpx; + color: #000; + text-align: center; + padding-left: 80rpx; + padding-right: 80rpx; + margin-right: 10rpx; + margin-left: 20rpx; +} + +.icons_scan_close { + width: 35rpx; + height: 35rpx; +} + +.count_image { + width: 45rpx; + height: 45rpx; +} + +.count_type_light { + color: #0CC2B6; + font-size: 30rpx; + margin-left: 10rpx; + margin-right: 10rpx; +} + +.count_type_black { + color: #FA5151; + font-size: 30rpx; + margin-left: 10rpx; + margin-right: 10rpx; +} + +.btn_bot { + position: fixed; + bottom: 0; + right: 0; + padding-bottom: 20rpx; + padding-right: 20rpx; + z-index: 10; +} + +.btn_single_commit { + background-color: #3C9CFF; + font-size: 30rpx; + color: #fff; + text-align: center; + width: 180rpx; +} + +.center { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + +.text_recommend { + color: #0A84FF; + font-size: 38rpx; +} + +.text_stock { + font-size: 36rpx; +} + +.text_default { + color: #000000; + font-size: 36rpx; +} + +.text_greater { + color: #F56C6C; + font-size: 36rpx; +} + +.text_less { + color: #FF9500; + font-size: 36rpx; +} + +.text_equal { + color: #34C759; + font-size: 38rpx; +} + +.std_pack { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 0px; + color: #909399; + font-size: 30rpx; +} + +.std_uom { + color: #909399; + font-size: 30rpx; + margin-left: 5rpx; + margin-right: 5rpx; +} + +.uom { + color: #909399; + font-size: 30rpx; + margin-left: 5rpx; + margin-right: 5rpx; + display: flex; + flex-direction: row; + align-items: center; +} + + +.std_split { + color: #909399; + font-size: 36rpx; + margin-left: 5rpx; + margin-right: 5rpx; +} + +.inspect_job { + color: #F1A532; + font-size: 36rpx; + margin-right: 10rpx; +} + +.ok_job { + color: #53C21D; + font-size: 36rpx; + margin-right: 2rpx; +} + +.nook_job { + color: #E45656; + font-size: 36rpx; + margin-right: 10rpx; +} + +.raw_location { + padding-top: 5rpx; + padding-bottom: 5rpx; + padding-left: 15rpx; + padding-right: 15rpx; + background-color: #34C759; + color: #fff; + font-size: 35rpx; +} + +.fg_location { + padding-top: 5rpx; + padding-bottom: 5rpx; + padding-left: 15rpx; + padding-right: 15rpx; + background-color: #5A7CF3; + color: #fff; + font-size: 35rpx; +} + +.semi_location { + padding-top: 5rpx; + padding-bottom: 5rpx; + padding-left: 15rpx; + padding-right: 15rpx; + background-color: #FF9500; + color: #fff; + font-size: 35rpx; +} + +.hold_location { + padding-top: 5rpx; + padding-bottom: 5rpx; + padding-left: 15rpx; + padding-right: 15rpx; + background-color: #F56C6C; + color: #fff; + font-size: 35rpx; +} + +.unk_location { + padding-top: 5rpx; + padding-bottom: 5rpx; + padding-left: 15rpx; + padding-right: 15rpx; + background-color: #999999; + color: #fff; + font-size: 35rpx; +} + +.qty_input { + width: 150rpx; + height: 60rpx; + line-height: 10rpx; + font-size: 10rpx; + color: #000000; + text-align: right; + border: 1px solid rgb(220, 211, 211); + padding: 5rpx; +} + +.qty_inspect_input { + width: 150rpx; + height: 60rpx; + line-height: 10rpx; + font-size: 10rpx; + color: #000000; + text-align: center; + border: 1px solid rgb(220, 211, 211); + padding: 5rpx; +} + +.icon_close { + width: 100rpx; + height: 100rpx; + opacity: 1; + +} + +.icon_edit { + width: 30rpx; + height: 40%; + opacity: 1; + margin-left: 10rpx; +} + +.title_popup { + margin-top: 16px; + margin-bottom: 16px; + margin-left: 8px; + margin-right: 8px; + font-size: 35rpx; + text-align: center; +} + +.close_button { + /* 自动布局子元素 */ + position: static; + left: 20px; + /* top: 1109.01px; */ + width: 100%; + height: 40px; + border-radius: 40px; + opacity: 1; + + /* 自动布局 */ + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 9px 12px; + gap: 10px; + align-self: stretch; + + /* 颜色/白色 */ + background: #FFFFFF; + box-sizing: border-box; + /* 颜色/边框 */ + border: 1px solid #E7E6E4; + z-index: 3; +} + +/** + * 申请状态 新增 + */ +.request_status_new { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 审批中 + */ +.request_status_reviewing { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 审批通过 + */ +.request_status_agreed { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 审批驳回 + */ +.request_status_refused { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 处理中 + */ +.request_status_handling { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 部分完成 + */ +.request_status_partial { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 已完成 + */ +.request_status_completed { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 中止 + */ +.request_status_abort { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} +/** + * 申请状态 已关闭 + */ +.request_status_cancelled { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} diff --git a/common/style/pdabasic.css b/common/style/pdabasic.css new file mode 100644 index 00000000..f1083f3f --- /dev/null +++ b/common/style/pdabasic.css @@ -0,0 +1,739 @@ +/* +.pda-list { + padding: 10rpx 10rpx; + box-sizing: border-box; + display: flex; + width: 100%; + flex-direction: row; +} + */ + +/* 列表 */ +.pda-list { + padding: 0 20rpx; + box-sizing: border-box; + background-color: #FFFFFF; + position: relative; + width: 100%; + display: flex; + flex-direction: column; + border-radius: 16rpx; + margin-bottom: 10rpx; +} + +.pda-list:after { + position: absolute; + z-index: 10; + /* right: 0; */ + bottom: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.pda-list-cell { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #eee; + padding: 10rpx 0; +} + +.pda-list-cell:last-child { + border-bottom: 0; +} + +.pda-list-cell-left { + white-space: nowrap; + /* padding: 0 10rpx; */ +} + +.pda-list-cell-db, +.pda-list-cell-right { + flex: 1; +} + +.pda-list-cell .pda-list-cell-db .uni-input-input { + font-size: .875rem; +} + +.pda-list-cell .uni-easyinput__content-input, +.pda-list-cell .uni-input-placeholder { + height: 2rem; + line-height: 2rem; +} + +.pda-list-cell .placeholder { + color: #999 !important; + font-size: 0.875rem; + padding-left: 10rpx; +} + +.pda-list-cell .uni-label { + color: #434556; +} + +.list_locode .uni-collapse-item__title-box { + font-weight: bold !important; +} + +.display-flex { + display: flex; + justify-content: space-between; + align-items: center; +} + +.list-body { + /* height: 84rpx; */ + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + overflow: hidden; +} + +.list-text-top { + width: 100%; + color: #000; + font-weight: bolder; + /* line-height: 36rpx; */ + /* font-size: 30rpx; */ +} + +.list-text-bottom { + /* line-height: 30rpx; */ + /* font-size: 26rpx; */ + color: #8f8f94; +} + + +/* 改为detail-content */ +/* margin-bottom: 20rpx; */ +.device-detail { + padding: 10rpx !important; + margin: 10rpx; + border-radius: 16rpx; + background-color: #fff; + color: #666666; + line-height: 1.5; + overflow: hidden; +} + +.list-style { + margin-bottom: 0rpx; + border-radius: 16rpx; + background-color: #FFFFFF; + color: #666666; + line-height: 1.5; +} + +.border-font { + color: #000; + font-weight: bolder; +} + +.space-between { + -webkit-justify-content: space-between; + justify-content: space-between; +} + +.accept-button { + width: 30%; + font-size: 16px; + background-color: #7ac756; + color: #ffffff; +} + +.bigsave-button { + width: 80%; + font-size: 16px; + background-color: #007AFF; + color: #ffffff; +} + +.save-button { + width: 30%; + font-size: 16px; + background-color: #007AFF; + color: #ffffff; +} + +.scroll-detail { + overflow: hidden; + padding-bottom: 60px; + height: 480px; + /* 没有高度不可以回到顶部 */ + /* background-color: #ffffff; */ +} + +.scrollView { + overflow: hidden; + padding-bottom: 50px +} + +.scroll-Y { + /* height: 70ux; */ + padding-bottom: 50px +} + +.bottom1 { + position: fixed; + width: 100%; + /* padding: 10rpx 10rpx; */ + left: 0; + /* right: 0; */ + bottom: 0; + background-color: #ffffff; +} + +.bottom { + position: fixed; + display: flex; + width: 100%; + padding: 10rpx 10rpx; + left: 0; + /* right: 0; */ + bottom: 0; + background-color: #ffffff; +} + + +.pars-num { + /* font-size: 26rpx; */ +} + +.right-width { + text-align: center; + width: 100rpx; +} + +.state-style { + float: left; + margin-top: 10rpx; + /* border-radius: 16rpx; + padding: 0rpx 10rpx; */ + /* line-height: 50rpx; + height: 50rpx; */ + /* width: 120rpx; + display: flex; + flex-direction: column; + align-items: center; */ + /* 垂直居中 */ +} + +.uni-popup-view { + background-color: #fff; + border-radius: 10px; +} + +.uni-popup-button-box { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: row; + padding: 10px 15px; +} + +.uni-popup-button { + flex: 1; + /* // border-radius: 50px; + // color: #666; */ + /* font-size: 16px; */ +} + +/* 任务状态 */ +/* 打开 */ +.open { + font-size: 28rpx; + background: rgba(95, 203, 148, 0.2); + color: #22AF68; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +/* 进行中 */ +.pending { + font-size: 28rpx; + background: rgba(236, 156, 0, 0.2); + color: #EC9C00; + padding: 10rpx 20rpx 10rpx 20rpx; + border-radius: 10rpx; +} + +/* 完成 */ +.completed { + background-color: #E6A23C; + color: #FFFFFF; + border-radius: 10rpx; +} + +/* 关闭 */ +.close { + background-color: #F56C6C; + color: #FFFFFF; +} + + +/* 关闭 */ +.other { + background-color: #808080; + color: #FFFFFF; + border-radius: 10rpx; +} + +/* 其他 */ +.unk { + background-color: #ececec; + color: #666; + border-radius: 10rpx; +} + +/* 检验任务状态 */ +/* 免检 */ +.exempt { + background-color: #409EFF; + color: #FFFFFF; +} + +/* 全检 */ +.full { + background-color: #67C23A; + color: #FFFFFF; +} + +/* 抽检 */ +.sampling { + background-color: #E6A23C; + color: #FFFFFF; +} + +/* 挑检 */ +.pick { + background-color: #F56C6C; + color: #FFFFFF; +} + +/* 库存状态 */ + +.uni-link { + background-color: #BD2C00; + color: #BD2C00 !important; +} + +.inventory_status_insp { + color: #F9AE3D; + margin-right: 10rpx; +} + +.inventory_status_ok { + color: #67C23A; + margin-right: 10rpx; +} + +.inventory_status_nok { + color: #FF2424; + margin-right: 10rpx; +} + +.inventory_status_hold { + color: #EC9C00; + margin-right: 10rpx; +} + +.inventory_status_scarp { + color: #999; + margin-right: 10rpx; +} + +.frozen { + color: #FF581D; + margin-right: 10rpx; +} + +.pass { + color: #67C23A !important; +} + +.unPass { + color: #FF2424 !important; +} + +.location_inspect { + background-color: #F6CB61; + color: #FFFFFF; +} + +.location_raw { + background-color: #2DA8D8; + color: #FFFFFF; +} + +.location_semi { + background-color: #EDAE50; + color: #FFFFFF; +} + +.location_fg { + background-color: #078343; + color: #FFFFFF; +} + +.location_wip { + background-color: #FC85FE; + color: #FFFFFF; +} + +.location_scrap { + background-color: #E30016; + color: #FFFFFF; +} + +.location_noc { + background-color: #C31223; + color: #FFFFFF; +} + +.location_overflow { + background-color: #7D1EDC; + color: #FFFFFF; +} + +.location_customer { + background-color: #5A7CF3; + color: #FFFFFF; +} + + +/* //零件状态 +export function getItemTypeStyle(val) { + if (val == 0) return 'active' + else if (val == 1) return 'hold' + else if (val == 2) return 'new' + else if (val == 3) return 'plan' + else if (val == 4) return 'disable' + else return 'other' +} + */ + +/* 零件状态 */ +.active { + background-color: #5FCB94; + color: #FFFFFF; +} + +.hold_item { + background-color: #FF4206; + color: #FFFFFF; +} + +.new { + background-color: #E6A23C; + color: #FFFFFF; +} + +.plan { + background-color: #2677F9; + color: #FFFFFF; +} + +.disable { + background-color: #666; + color: #FFFFFF; +} + +/* 任务编号字体 */ +.text-number { + color: #000; + font-weight: bolder; +} + +/* 零件编号字体 */ +.text-itemcode { + /* font-size: 26rpx; */ + color: #000; + font-weight: bolder; +} + +.text-desc { + color: #8f8f91; + /* font-size: 22rpx; */ +} + +/* 零件编号字体 */ +.text-bolder { + color: #000; + font-weight: bolder; +} + +.detail-list { + background-color: #fff; + /* padding: 10rpx; */ + /* margin: 20rpx; */ + /* border-radius: 16rpx; */ + /* overflow: hidden; */ +} + +.detail-content { + position: relative; + flex: 1; + /* font-size: 26rpx; */ + color: #101010; +} + +.example-body { + background-color: #FFFFFF; +} + +.result-box { + text-align: center; + padding: 20px 0px; + /* font-size: 16px; */ +} + +.toptext { + padding-left: 20upx; + line-height: 80upx; +} + +.numberstyle { + display: flex; + /* flex-direction: row-reverse; */ + border-bottom: 10upx solid #EEEEEE; + width: 200upx; + padding-bottom: 20upx; +} + +.input { + height: 20rpx; + padding: 0rpx 8rpx; + line-height: 50rpx; + /* font-size: 25rpx; */ + background: #FFF; + border-radius: 4rpx; + flex: 1; +} + +.mini-type-style { + vertical-align: middle; + font-size: 0.725rem; + margin-right: 6rpx; + border-radius: 4rpx; + padding: 4rpx 8rpx; + /* width: 80rpx; */ + /* height: 46rpx; + min-width: 80rpx; + display: flex; + flex-direction: column; */ + +} + +.text-color { + color: #000; + font-weight: bolder; +} + +.tabs { + flex: 1; + flex-direction: column; + overflow: hidden; + /* background-color: #ffffff; */ +} + +/* .scroll-h { + touch-action: none; + width: 100%; + height: 100rpx; + flex-direction: row; + white-space: nowrap; + justify-content: center; +} */ + +.line-h { + height: 1rpx; + background-color: #cccccc; +} + +.uni-tab-item { + /* #ifndef APP-PLUS */ + display: inline-block; + /* #endif */ + flex-wrap: nowrap; + padding: 0 30rpx; +} + +.uni-tab-item-title { + position: relative; + color: #555; + /* font-size: 24rpx; */ + height: 100rpx; + line-height: 100rpx; + flex-wrap: nowrap; + /* #ifndef APP-PLUS */ + white-space: nowrap; + /* #endif */ +} + +.uni-tab-item-title-active { + color: #101010; + font-weight: bold; +} + +.uni-tab-item-title-active:after { + left: 50%; + transform: translateX(-50%); + position: absolute; + bottom: -20rpx; + display: inline-block; + content: ""; + width: 40rpx; + height: 8rpx; + background-color: #5a7cf3; + border-radius: 5px; +} + +/* .blece { + padding: 10upx; + color: #111111; + border-bottom: 2px solid #f5f5f5; + display: flex; + flex-wrap: wrap; +} */ + +.conbox { + /* padding: 10rpx 0; */ + padding-left: 10rpx; +} + +.myinput { + display: flex; + box-sizing: border-box; + overflow: hidden; + position: relative; + flex: 1; + justify-content: center; + flex-direction: row; + align-items: center; + height: 88rpx; + padding: 20rpx 0; + /* border-width: 0.5px; + border-style: solid; + border-color: #e5e5e5; + border-radius: 5px; + background-color: rgb(248, 248, 248); + font-size: 18px;*/ + font-size: .825rem; +} + +.qtyinput { + height: 50px; + padding: 10px 0px; + font-size: 20px; +} + + +.count-input { + padding: 5rpx 3rpx; + width: 95%; + font-size: 18px; +} + +.pda-data-picker { + padding: 5rpx 3rpx; + width: 95%; + font-size: 18px; +} + +.inputPlaceholderStyle { + font-size: 16px; +} + +.inputfocus { + border-color: #007AFF; +} + + +.txt-16 { + font-size: 16px; +} + +.txt-18 { + font-size: 18px; +} + +.txt-20 { + font-size: 20px; +} + +.pda-label { + width: 210rpx; + word-wrap: break-word; + word-break: break-all; + text-indent: 20rpx; + font-size: 16px; +} + +.fontsize-16 { + font-size: 16px; +} + +.fontsize-18 { + font-size: 18px; +} + +.fontsize-20 { + font-size: 20px; +} + +/deep/ .uni-collapse-item__title-text { + font-size: 16px; +} + + +/deep/ .input-value { + font-size: 16px; +} + +/deep/ .uni-input-input { + font-size: 18px; +} + +page { + width: 100%; + height: 100%; + /* background-color: #fff; */ +} + +.page-wraper { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; +} + + +.page-main { + flex: 1; + position: relative; +} + +.page-main-scroll { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; +} + +.page-main-list { + /* height: 80rpx; + line-height: 80rpx; */ + text-align: center; + background: #e0e0e0; + +} diff --git a/common/style/uni.css b/common/style/uni.css new file mode 100644 index 00000000..da90d1ad --- /dev/null +++ b/common/style/uni.css @@ -0,0 +1,3404 @@ +@font-face { + font-family: uniicons; + font-weight: normal; + font-style: normal; + src: url('~@/static/uni.ttf') format('truetype'); +} + +/* #ifdef H5 */ +.fix-left-window { + padding-left: var(--window-left); +} + +.pc-hide { + display: none !important; +} + +/* #endif */ + +/*通用 */ + +/* view{ + font-size:28rpx; + line-height:1.8; +} */ +progress, +checkbox-group { + width: 100%; +} + +form { + width: 100%; +} + +.uni-flex { + display: flex; + flex-direction: row; +} + +.uni-flex-item { + flex: 1; +} + +.uni-row { + flex-direction: row; +} + +.uni-column { + flex-direction: column; +} + +.uni-link { + color: #576B95; + font-size: 26rpx; +} + +.uni-center { + text-align: center; +} + +.uni-inline-item { + display: flex; + flex-direction: row; + align-items: center; + +} + +.uni-inline-item text { + margin-right: 20rpx; +} + +.uni-inline-item text:last-child { + margin-right: 0rpx; + margin-left: 20rpx; +} + +/* page */ +.common-page-head { + padding: 35rpx; + text-align: center; +} + +.common-page-head-title { + display: inline-block; + padding: 0 40rpx; + font-size: 30rpx; + height: 88rpx; + line-height: 88rpx; + color: #BEBEBE; + box-sizing: border-box; + border-bottom: 2rpx solid #D8D8D8; +} + +.uni-padding-wrap { + /* width:690rpx; */ + padding: 0 30rpx; +} + +.uni-word { + text-align: center; + padding: 200rpx 100rpx; +} + +.uni-title { + font-size: 30rpx; + font-weight: 500; + padding: 20rpx 0; + line-height: 1.5; +} + +.uni-text { + font-size: 28rpx; +} + +.uni-title text { + font-size: 24rpx; + color: #888; +} + +.uni-text-gray { + color: #ccc; +} + +.uni-text-small { + font-size: 24rpx; +} + +.uni-common-mb { + margin-bottom: 30rpx; +} + +.uni-common-pb { + padding-bottom: 30rpx; +} + +.uni-common-pl { + padding-left: 30rpx; +} + +.uni-common-mt { + margin-top: 30rpx; +} + +/* 背景色 */ +.uni-bg-red { + background: #F76260; + color: #FFF; +} + +.uni-bg-green { + background: #09BB07; + color: #FFF; +} + +.uni-bg-blue { + background: #007AFF; + color: #FFF; +} + +.uni-bg-white { + background: #FFFFFF; +} + +/* 标题 */ +.uni-h1 { + font-size: 80rpx; + font-weight: 700; +} + +.uni-h2 { + font-size: 60rpx; + font-weight: 700; +} + +.uni-h3 { + font-size: 48rpx; + font-weight: 700; +} + +.uni-h4 { + font-size: 36rpx; + font-weight: 700; +} + +.uni-h5 { + font-size: 28rpx; + color: #8f8f94; +} + +.uni-h6 { + font-size: 24rpx; + color: #8f8f94; +} + +.uni-bold { + font-weight: bold; +} + +/* 文本溢出隐藏 */ +.uni-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/* 竖向百分百按钮 */ +.uni-btn-v { + padding: 10rpx 0; +} + +.uni-btn-v button { + margin: 20rpx 0; +} + +/* 表单 */ +.uni-form-item { + display: flex; + width: 100%; + padding: 10rpx 0; +} + +.uni-form-item .title { + padding: 10rpx 25rpx; +} + +.uni-label { + width: 210rpx; + word-wrap: break-word; + word-break: break-all; + text-indent: 20rpx; +} + +.uni-input { + height: 80rpx; + padding: 15rpx 25rpx; + line-height: 80rpx; + font-size: 28rpx; + background: #FFF; + flex: 1; +} + +radio-group, +checkbox-group { + width: 100%; +} + +radio-group label, +checkbox-group label { + padding-right: 20rpx; +} + +.uni-form-item .with-fun { + display: flex; + flex-wrap: nowrap; + background: #FFFFFF; +} + +.uni-form-item .with-fun .uni-icon { + width: 40px; + height: 80rpx; + line-height: 80rpx; + flex-shrink: 0; +} + +/* loadmore */ +.uni-loadmore { + height: 80rpx; + line-height: 80rpx; + text-align: center; + padding-bottom: 30rpx; +} + +/*数字角标*/ +/* .uni-badge, +.uni-badge-default { + font-family: 'Helvetica Neue', Helvetica, sans-serif; + font-size: 12px; + line-height: 1; + display: inline-block; + padding: 3px 6px; + color: #333; + border-radius: 100px; + background-color: rgba(0, 0, 0, .15); +} */ +.uni-badge.uni-badge-inverted { + padding: 0 5px 0 0; + color: #929292; + background-color: transparent +} + +.uni-badge-primary { + color: #fff; + background-color: #007aff +} + +.uni-badge-blue.uni-badge-inverted, +.uni-badge-primary.uni-badge-inverted { + color: #007aff; + background-color: transparent +} + +.uni-badge-green, +.uni-badge-success { + color: #fff; + background-color: #4cd964; +} + +.uni-badge-green.uni-badge-inverted, +.uni-badge-success.uni-badge-inverted { + color: #4cd964; + background-color: transparent +} + +.uni-badge-warning, +.uni-badge-yellow { + color: #fff; + background-color: #f0ad4e +} + +.uni-badge-warning.uni-badge-inverted, +.uni-badge-yellow.uni-badge-inverted { + color: #f0ad4e; + background-color: transparent +} + +.uni-badge-danger, +.uni-badge-red { + color: #fff; + background-color: #dd524d +} + +.uni-badge-danger.uni-badge-inverted, +.uni-badge-red.uni-badge-inverted { + color: #dd524d; + background-color: transparent +} + +.uni-badge-purple, +.uni-badge-royal { + color: #fff; + background-color: #8a6de9 +} + +.uni-badge-purple.uni-badge-inverted, +.uni-badge-royal.uni-badge-inverted { + color: #8a6de9; + background-color: transparent +} + +/*折叠面板 */ +.uni-collapse-content { + height: 0; + width: 100%; + overflow: hidden; +} + +.uni-collapse-content.uni-active { + height: auto; +} + +/*卡片视图 */ +.uni-card { + background: #fff; + border-radius: 8rpx; + margin: 20rpx 0; + position: relative; + /* box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, .3); */ +} + +.uni-card-content { + font-size: 30rpx; +} + +.uni-card-content.image-view { + width: 100%; + margin: 0; +} + +.uni-card-content-inner { + position: relative; + padding: 30rpx; +} + +.uni-card-footer, +.uni-card-header { + position: relative; + display: flex; + min-height: 50rpx; + padding: 20rpx 30rpx; + justify-content: space-between; + align-items: center; +} + +.uni-card-header { + font-size: 36rpx; +} + +.uni-card-footer { + color: #6d6d72; +} + +.uni-card-footer:before, +.uni-card-header:after { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-card-header:after { + top: auto; + bottom: 0; +} + +.uni-card-media { + justify-content: flex-start; +} + +.uni-card-media-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} + +.uni-card-media-body { + height: 84rpx; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; +} + +.uni-card-media-text-top { + line-height: 36rpx; + font-size: 34rpx; +} + +.uni-card-media-text-bottom { + line-height: 30rpx; + font-size: 28rpx; + color: #8f8f94; +} + +.uni-card-link { + color: #007AFF; +} + +/* 列表 */ +.uni-list { + background-color: #FFFFFF; + position: relative; + width: 100%; + display: flex; + flex-direction: column; +} + +.uni-list:after { + position: absolute; + z-index: 10; + right: 0; + bottom: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +/* .uni-list::before { + position: absolute; + z-index: 10; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} */ +.uni-list-cell { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.uni-list-cell-hover { + background-color: #eee; +} + +.uni-list-cell-pd { + padding: 22rpx 30rpx; +} + +.uni-list-cell-left { + white-space: nowrap; + font-size: 28rpx; + padding: 0 30rpx; +} + +.uni-list-cell-db, +.uni-list-cell-right { + flex: 1; +} + +.uni-list-cell::after { + position: absolute; + z-index: 3; + right: 0; + bottom: 0; + left: 30rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list .uni-list-cell:last-child::after { + height: 0rpx; +} + +.uni-list-cell-last.uni-list-cell::after { + height: 0rpx; +} + +.uni-list-cell-divider { + position: relative; + display: flex; + color: #999; + background-color: #f7f7f7; + padding: 15rpx 20rpx; +} + +.uni-list-cell-divider::before { + position: absolute; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list-cell-divider::after { + position: absolute; + right: 0; + bottom: 0; + left: 0rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list-cell-navigate { + font-size: 30rpx; + padding: 22rpx 30rpx; + line-height: 48rpx; + position: relative; + display: flex; + box-sizing: border-box; + width: 100%; + flex: 1; + justify-content: space-between; + align-items: center; +} + +.uni-list-cell-navigate { + padding-right: 36rpx; +} + +.uni-navigate-badge { + padding-right: 50rpx; +} + +.uni-list-cell-navigate.uni-navigate-right:after { + font-family: uniicons; + content: '\e583'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-list-cell-navigate.uni-navigate-bottom:after { + font-family: uniicons; + content: '\e581'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-list-cell-navigate.uni-navigate-bottom.uni-active::after { + font-family: uniicons; + content: '\e580'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-collapse.uni-list-cell { + flex-direction: column; +} + +.uni-list-cell-navigate.uni-active { + background: #eee; +} + +.uni-list.uni-collapse { + box-sizing: border-box; + height: 0; + overflow: hidden; +} + +.uni-collapse .uni-list-cell { + padding-left: 20rpx; +} + +.uni-collapse .uni-list-cell::after { + left: 52rpx; +} + +.uni-list.uni-active { + height: auto; +} + +/* 三行列表 */ +.uni-triplex-row { + display: flex; + flex: 1; + width: 100%; + box-sizing: border-box; + flex-direction: row; + padding: 22rpx 30rpx; +} + +.uni-triplex-right, +.uni-triplex-left { + display: flex; + flex-direction: column; +} + +.uni-triplex-left { + width: 84%; +} + +.uni-triplex-left .uni-title { + padding: 8rpx 0; +} + +.uni-triplex-left .uni-text, +.uni-triplex-left .uni-text-small { + color: #999999; +} + +.uni-triplex-right { + width: 16%; + text-align: right; +} + +/* 图文列表 */ +.uni-media-list { + padding: 22rpx 30rpx; + box-sizing: border-box; + display: flex; + width: 100%; + flex-direction: row; +} + +.uni-navigate-right.uni-media-list { + padding-right: 74rpx; +} + +.uni-pull-right { + flex-direction: row-reverse; +} + +.uni-pull-right>.uni-media-list-logo { + margin-right: 0rpx; + margin-left: 20rpx; +} + +.uni-media-list-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} + +.uni-media-list-logo image { + height: 100%; + width: 100%; +} + +.uni-media-list-body { + height: 84rpx; + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + overflow: hidden; +} + +.uni-media-list-text-top { + width: 100%; + line-height: 36rpx; + font-size: 30rpx; +} + +.uni-media-list-text-bottom { + width: 100%; + line-height: 30rpx; + font-size: 26rpx; + color: #8f8f94; +} + +/* 九宫格 */ +.uni-grid-9 { + background: #f2f2f2; + width: 750rpx; + display: flex; + flex-direction: row; + flex-wrap: wrap; + border-top: 2rpx solid #eee; +} + +.uni-grid-9-item { + width: 250rpx; + height: 200rpx; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-bottom: 2rpx solid; + border-right: 2rpx solid; + border-color: #eee; + box-sizing: border-box; +} + +.no-border-right { + border-right: none; +} + +.uni-grid-9-image { + width: 100rpx; + height: 100rpx; +} + +.uni-grid-9-text { + width: 250rpx; + line-height: 4rpx; + height: 40rpx; + text-align: center; + font-size: 30rpx; +} + +.uni-grid-9-item-hover { + background: rgba(0, 0, 0, 0.1); +} + +/* 上传 */ +.uni-uploader { + flex: 1; + flex-direction: column; +} + +.uni-uploader-head { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.uni-uploader-info { + color: #B2B2B2; +} + +.uni-uploader-body { + margin-top: 16rpx; +} + +.uni-uploader__files { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.uni-uploader__file { + margin: 10rpx; + width: 210rpx; + height: 210rpx; +} + +.uni-uploader__img { + display: block; + width: 210rpx; + height: 210rpx; +} + +.uni-uploader__input-box { + position: relative; + margin: 10rpx; + width: 208rpx; + height: 208rpx; + border: 2rpx solid #D9D9D9; +} + +.uni-uploader__input-box:before, +.uni-uploader__input-box:after { + content: " "; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + background-color: #D9D9D9; +} + +.uni-uploader__input-box:before { + width: 4rpx; + height: 79rpx; +} + +.uni-uploader__input-box:after { + width: 79rpx; + height: 4rpx; +} + +.uni-uploader__input-box:active { + border-color: #999999; +} + +.uni-uploader__input-box:active:before, +.uni-uploader__input-box:active:after { + background-color: #999999; +} + +.uni-uploader__input { + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; +} + +/*问题反馈*/ +.feedback-title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 20rpx; + color: #8f8f94; + font-size: 28rpx; +} + +.feedback-star-view.feedback-title { + justify-content: flex-start; + margin: 0; +} + +.feedback-quick { + position: relative; + padding-right: 40rpx; +} + +.feedback-quick:after { + font-family: uniicons; + font-size: 40rpx; + content: '\e581'; + position: absolute; + right: 0; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.feedback-body { + background: #fff; +} + +.feedback-textare { + height: 200rpx; + font-size: 34rpx; + line-height: 50rpx; + width: 100%; + box-sizing: border-box; + padding: 20rpx 30rpx 0; +} + +.feedback-input { + font-size: 34rpx; + height: 50rpx; + min-height: 50rpx; + padding: 15rpx 20rpx; + line-height: 50rpx; +} + +.feedback-uploader { + padding: 22rpx 20rpx; +} + +.feedback-star { + font-family: uniicons; + font-size: 40rpx; + margin-left: 6rpx; +} + +.feedback-star-view { + margin-left: 20rpx; +} + +.feedback-star:after { + content: '\e408'; +} + +.feedback-star.active { + color: #FFB400; +} + +.feedback-star.active:after { + content: '\e438'; +} + +.feedback-submit { + background: #007AFF; + color: #FFFFFF; + margin: 20rpx; +} + +/* input group */ +.uni-input-group { + position: relative; + padding: 0; + border: 0; + background-color: #fff; +} + +.uni-input-group:before { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-group:after { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row { + position: relative; + display: flex; + flex-direction: row; + font-size: 28rpx; + padding: 22rpx 30rpx; + justify-content: space-between; +} + +.uni-input-group .uni-input-row:after { + position: absolute; + right: 0; + bottom: 0; + left: 30rpx; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row label { + line-height: 70rpx; +} + +/* textarea */ +.uni-textarea { + width: 100%; + background: #FFF; +} + +.uni-textarea textarea { + width: 96%; + padding: 18rpx 2%; + line-height: 1.6; + font-size: 28rpx; + height: 150rpx; +} + +/* tab bar */ +.uni-tab-bar { + display: flex; + flex: 1; + flex-direction: column; + overflow: hidden; + height: 100%; +} + +.uni-tab-bar .list { + width: 750rpx; + height: 100%; +} + +.uni-swiper-tab { + width: 100%; + white-space: nowrap; + line-height: 100rpx; + height: 100rpx; + border-bottom: 1px solid #c8c7cc; +} + +.swiper-tab-list { + font-size: 30rpx; + width: 150rpx; + display: inline-block; + text-align: center; + color: #555; +} + +.uni-tab-bar .active { + color: #007AFF; +} + +.uni-tab-bar .swiper-box { + flex: 1; + width: 100%; + height: calc(100% - 100rpx); +} + +.uni-tab-bar-loading { + padding: 20rpx 0; +} + +/* comment */ +.uni-comment { + padding: 5rpx 0; + display: flex; + flex-grow: 1; + flex-direction: column; +} + +.uni-comment-list { + flex-wrap: nowrap; + padding: 10rpx 0; + margin: 10rpx 0; + width: 100%; + display: flex; +} + +.uni-comment-face { + width: 70rpx; + height: 70rpx; + border-radius: 100%; + margin-right: 20rpx; + flex-shrink: 0; + overflow: hidden; +} + +.uni-comment-face image { + width: 100%; + border-radius: 100%; +} + +.uni-comment-body { + width: 100%; +} + +.uni-comment-top { + line-height: 1.5em; + justify-content: space-between; +} + +.uni-comment-top text { + color: #0A98D5; + font-size: 24rpx; +} + +.uni-comment-date { + line-height: 38rpx; + flex-direction: row; + justify-content: space-between; + display: flex !important; + flex-grow: 1; +} + +.uni-comment-date view { + color: #666666; + font-size: 24rpx; + line-height: 38rpx; +} + +.uni-comment-content { + line-height: 1.6em; + font-size: 28rpx; + padding: 8rpx 0; +} + +.uni-comment-replay-btn { + background: #FFF; + font-size: 24rpx; + line-height: 28rpx; + padding: 5rpx 20rpx; + border-radius: 30rpx; + color: #333 !important; + margin: 0 10rpx; +} + +/* swiper msg */ +.uni-swiper-msg { + width: 100%; + padding: 12rpx 0; + flex-wrap: nowrap; + display: flex; +} + +.uni-swiper-msg-icon { + width: 50rpx; + margin-right: 20rpx; +} + +.uni-swiper-msg-icon image { + width: 100%; + flex-shrink: 0; +} + +.uni-swiper-msg swiper { + width: 100%; + height: 50rpx; +} + +.uni-swiper-msg swiper-item { + line-height: 50rpx; +} + +/* product */ +.uni-product-list { + display: flex; + width: 100%; + flex-wrap: wrap; + flex-direction: row; +} + +.uni-product { + padding: 20rpx; + display: flex; + flex-direction: column; +} + +.image-view { + height: 330rpx; + width: 330rpx; + margin: 12rpx 0; +} + +.uni-product-image { + height: 330rpx; + width: 330rpx; +} + +.uni-product-title { + width: 300rpx; + word-break: break-all; + display: -webkit-box; + overflow: hidden; + line-height: 1.5; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.uni-product-price { + margin-top: 10rpx; + font-size: 28rpx; + line-height: 1.5; + position: relative; +} + +.uni-product-price-original { + color: #e80080; +} + +.uni-product-price-favour { + color: #888888; + text-decoration: line-through; + margin-left: 10rpx; +} + +.uni-product-tip { + position: absolute; + right: 10rpx; + background-color: #ff3333; + color: #ffffff; + padding: 0 10rpx; + border-radius: 5rpx; +} + +/* timeline */ +.uni-timeline { + margin: 35rpx 0; + display: flex; + flex-direction: column; + position: relative; +} + + +.uni-timeline-item { + display: flex; + flex-direction: row; + position: relative; + padding-bottom: 20rpx; + box-sizing: border-box; + overflow: hidden; + +} + +.uni-timeline-item .uni-timeline-item-keynode { + width: 160rpx; + flex-shrink: 0; + box-sizing: border-box; + padding-right: 20rpx; + text-align: right; + line-height: 65rpx; +} + +.uni-timeline-item .uni-timeline-item-divider { + flex-shrink: 0; + position: relative; + width: 30rpx; + height: 30rpx; + top: 15rpx; + border-radius: 50%; + background-color: #bbb; +} + + + +.uni-timeline-item-divider::before, +.uni-timeline-item-divider::after { + position: absolute; + left: 15rpx; + width: 1rpx; + height: 100vh; + content: ''; + background: inherit; +} + +.uni-timeline-item-divider::before { + bottom: 100%; +} + +.uni-timeline-item-divider::after { + top: 100%; +} + + +.uni-timeline-last-item .uni-timeline-item-divider:after { + display: none; +} + +.uni-timeline-first-item .uni-timeline-item-divider:before { + display: none; +} + +.uni-timeline-item .uni-timeline-item-content { + padding-left: 20rpx; +} + +.uni-timeline-last-item .bottom-border::after { + display: none; +} + +.uni-timeline-item-content .datetime { + color: #CCCCCC; +} + +/* 自定义节点颜色 */ +.uni-timeline-last-item .uni-timeline-item-divider { + background-color: #1AAD19; +} + + +/* uni-icon */ + +.uni-icon { + font-family: uniicons; + font-size: 24px; + font-weight: normal; + font-style: normal; + line-height: 1; + display: inline-block; + text-decoration: none; + -webkit-font-smoothing: antialiased; +} + +.uni-icon.uni-active { + color: #007aff; +} + +.uni-icon-contact:before { + content: '\e100'; +} + +.uni-icon-person:before { + content: '\e101'; +} + +.uni-icon-personadd:before { + content: '\e102'; +} + +.uni-icon-contact-filled:before { + content: '\e130'; +} + +.uni-icon-person-filled:before { + content: '\e131'; +} + +.uni-icon-personadd-filled:before { + content: '\e132'; +} + +.uni-icon-phone:before { + content: '\e200'; +} + +.uni-icon-email:before { + content: '\e201'; +} + +.uni-icon-chatbubble:before { + content: '\e202'; +} + +.uni-icon-chatboxes:before { + content: '\e203'; +} + +.uni-icon-phone-filled:before { + content: '\e230'; +} + +.uni-icon-email-filled:before { + content: '\e231'; +} + +.uni-icon-chatbubble-filled:before { + content: '\e232'; +} + +.uni-icon-chatboxes-filled:before { + content: '\e233'; +} + +.uni-icon-weibo:before { + content: '\e260'; +} + +.uni-icon-weixin:before { + content: '\e261'; +} + +.uni-icon-pengyouquan:before { + content: '\e262'; +} + +.uni-icon-chat:before { + content: '\e263'; +} + +.uni-icon-qq:before { + content: '\e264'; +} + +.uni-icon-videocam:before { + content: '\e300'; +} + +.uni-icon-camera:before { + content: '\e301'; +} + +.uni-icon-mic:before { + content: '\e302'; +} + +.uni-icon-location:before { + content: '\e303'; +} + +.uni-icon-mic-filled:before, +.uni-icon-speech:before { + content: '\e332'; +} + +.uni-icon-location-filled:before { + content: '\e333'; +} + +.uni-icon-micoff:before { + content: '\e360'; +} + +.uni-icon-image:before { + content: '\e363'; +} + +.uni-icon-map:before { + content: '\e364'; +} + +.uni-icon-compose:before { + content: '\e400'; +} + +.uni-icon-trash:before { + content: '\e401'; +} + +.uni-icon-upload:before { + content: '\e402'; +} + +.uni-icon-download:before { + content: '\e403'; +} + +.uni-icon-close:before { + content: '\e404'; +} + +.uni-icon-redo:before { + content: '\e405'; +} + +.uni-icon-undo:before { + content: '\e406'; +} + +.uni-icon-refresh:before { + content: '\e407'; +} + +.uni-icon-star:before { + content: '\e408'; +} + +.uni-icon-plus:before { + content: '\e409'; +} + +.uni-icon-minus:before { + content: '\e410'; +} + +.uni-icon-circle:before, +.uni-icon-checkbox:before { + content: '\e411'; +} + +.uni-icon-close-filled:before, +.uni-icon-clear:before { + content: '\e434'; +} + +.uni-icon-refresh-filled:before { + content: '\e437'; +} + +.uni-icon-star-filled:before { + content: '\e438'; +} + +.uni-icon-plus-filled:before { + content: '\e439'; +} + +.uni-icon-minus-filled:before { + content: '\e440'; +} + +.uni-icon-circle-filled:before { + content: '\e441'; +} + +.uni-icon-checkbox-filled:before { + content: '\e442'; +} + +.uni-icon-closeempty:before { + content: '\e460'; +} + +.uni-icon-refreshempty:before { + content: '\e461'; +} + +.uni-icon-reload:before { + content: '\e462'; +} + +.uni-icon-starhalf:before { + content: '\e463'; +} + +.uni-icon-spinner:before { + content: '\e464'; +} + +.uni-icon-spinner-cycle:before { + content: '\e465'; +} + +.uni-icon-search:before { + content: '\e466'; +} + +.uni-icon-plusempty:before { + content: '\e468'; +} + +.uni-icon-forward:before { + content: '\e470'; +} + +.uni-icon-back:before, +.uni-icon-left-nav:before { + content: '\e471'; +} + +.uni-icon-checkmarkempty:before { + content: '\e472'; +} + +.uni-icon-home:before { + content: '\e500'; +} + +.uni-icon-navigate:before { + content: '\e501'; +} + +.uni-icon-gear:before { + content: '\e502'; +} + +.uni-icon-paperplane:before { + content: '\e503'; +} + +.uni-icon-info:before { + content: '\e504'; +} + +.uni-icon-help:before { + content: '\e505'; +} + +.uni-icon-locked:before { + content: '\e506'; +} + +.uni-icon-more:before { + content: '\e507'; +} + +.uni-icon-flag:before { + content: '\e508'; +} + +.uni-icon-home-filled:before { + content: '\e530'; +} + +.uni-icon-gear-filled:before { + content: '\e532'; +} + +.uni-icon-info-filled:before { + content: '\e534'; +} + +.uni-icon-help-filled:before { + content: '\e535'; +} + +.uni-icon-more-filled:before { + content: '\e537'; +} + +.uni-icon-settings:before { + content: '\e560'; +} + +.uni-icon-list:before { + content: '\e562'; +} + +.uni-icon-bars:before { + content: '\e563'; +} + +.uni-icon-loop:before { + content: '\e565'; +} + +.uni-icon-paperclip:before { + content: '\e567'; +} + +.uni-icon-eye:before { + content: '\e568'; +} + +.uni-icon-arrowup:before { + content: '\e580'; +} + +.uni-icon-arrowdown:before { + content: '\e581'; +} + +.uni-icon-arrowleft:before { + content: '\e582'; +} + +.uni-icon-arrowright:before { + content: '\e583'; +} + +.uni-icon-arrowthinup:before { + content: '\e584'; +} + +.uni-icon-arrowthindown:before { + content: '\e585'; +} + +.uni-icon-arrowthinleft:before { + content: '\e586'; +} + +.uni-icon-arrowthinright:before { + content: '\e587'; +} + +.uni-icon-pulldown:before { + content: '\e588'; +} + +.uni-icon-scan:before { + content: "\e612"; +} + +/* 分界线 */ +.uni-divider { + height: 110rpx; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} + +.uni-divider__content { + font-size: 28rpx; + color: #999; + padding: 0 20rpx; + position: relative; + z-index: 101; + background: #F4F5F6; +} + +.uni-divider__line { + background-color: #CCCCCC; + height: 1px; + width: 100%; + position: absolute; + z-index: 100; + top: 50%; + left: 0; + transform: translateY(50%); +} + +/* view{ + font-size:28rpx; + line-height:1.8; +} */ +progress, +checkbox-group { + width: 100%; +} + +form { + width: 100%; +} + +.uni-flex { + display: flex; + flex-direction: row; +} + +.uni-flex-item { + flex: 1; +} + +.uni-row { + flex-direction: row; +} + +.uni-column { + flex-direction: column; +} + +.uni-link { + color: #576B95; + font-size: 26rpx; +} + +.uni-center { + text-align: center; +} + +.uni-inline-item { + display: flex; + flex-direction: row; + align-items: center; +} + +.uni-inline-item text { + margin-right: 20rpx; +} + +.uni-inline-item text:last-child { + margin-right: 0rpx; + margin-left: 20rpx; +} + +/* page */ +.common-page-head { + padding: 35rpx; + text-align: center; +} + +.common-page-head-title { + display: inline-block; + padding: 0 40rpx; + font-size: 30rpx; + height: 88rpx; + line-height: 88rpx; + color: #BEBEBE; + box-sizing: border-box; + border-bottom: 2rpx solid #D8D8D8; +} + +.uni-padding-wrap { + /* width:690rpx; */ + padding: 0 30rpx; +} + +.uni-word { + text-align: center; + padding: 200rpx 100rpx; +} + +.uni-title { + font-size: 30rpx; + font-weight: 500; + padding: 20rpx 0; + line-height: 1.5; +} + +.uni-text { + font-size: 28rpx; +} + +.uni-title text { + font-size: 24rpx; + color: #888; +} + +.uni-text-gray { + color: #ccc; +} + +.uni-text-small { + font-size: 24rpx; +} + +.uni-common-mb { + margin-bottom: 30rpx; +} + +.uni-common-pb { + padding-bottom: 30rpx; +} + +.uni-common-pl { + padding-left: 30rpx; +} + +.uni-common-mt { + margin-top: 30rpx; +} + +/* 背景色 */ +.uni-bg-red { + background: #F76260; + color: #FFF; +} + +.uni-bg-green { + background: #09BB07; + color: #FFF; +} + +.uni-bg-blue { + background: #007AFF; + color: #FFF; +} + +/* 标题 */ +.uni-h1 { + font-size: 80rpx; + font-weight: 700; +} + +.uni-h2 { + font-size: 60rpx; + font-weight: 700; +} + +.uni-h3 { + font-size: 48rpx; + font-weight: 700; +} + +.uni-h4 { + font-size: 36rpx; + font-weight: 700; +} + +.uni-h5 { + font-size: 28rpx; + color: #8f8f94; +} + +.uni-h6 { + font-size: 24rpx; + color: #8f8f94; +} + +.uni-bold { + font-weight: bold; +} + +/* 文本溢出隐藏 */ +.uni-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/* 竖向百分百按钮 */ +.uni-btn-v { + padding: 10rpx 0; +} + +.uni-btn-v button { + margin: 20rpx 0; +} + +/* 表单 */ +.uni-form-item { + display: flex; + width: 100%; + padding: 10rpx 0; +} + +.uni-form-item .title { + padding: 10rpx 25rpx; +} + +.uni-label { + width: 210rpx; + word-wrap: break-word; + word-break: break-all; + text-indent: 20rpx; +} + +.uni-input { + height: 50rpx; + padding: 15rpx 25rpx; + line-height: 50rpx; + font-size: 28rpx; + background: #FFF; + flex: 1; +} + +radio-group, +checkbox-group { + width: 100%; +} + +radio-group label, +checkbox-group label { + padding-right: 20rpx; +} + +.uni-form-item .with-fun { + display: flex; + flex-wrap: nowrap; + background: #FFFFFF; +} + +.uni-form-item .with-fun .uni-icon { + width: 40px; + height: 80rpx; + line-height: 80rpx; + flex-shrink: 0; +} + +/* loadmore */ +.uni-loadmore { + height: 80rpx; + line-height: 80rpx; + text-align: center; + padding-bottom: 30rpx; +} + +/*数字角标*/ +/* .uni-badge, +.uni-badge-default { + font-family: 'Helvetica Neue', Helvetica, sans-serif; + font-size: 12px; + line-height: 1; + display: inline-block; + padding: 3px 6px; + color: #333; + border-radius: 100px; + background-color: rgba(0, 0, 0, .15); +} */ +.uni-badge.uni-badge-inverted { + padding: 0 5px 0 0; + color: #929292; + background-color: transparent +} + +.uni-badge-primary { + color: #fff; + background-color: #007aff +} + +.uni-badge-blue.uni-badge-inverted, +.uni-badge-primary.uni-badge-inverted { + color: #007aff; + background-color: transparent +} + +.uni-badge-green, +.uni-badge-success { + color: #fff; + background-color: #4cd964; +} + +.uni-badge-green.uni-badge-inverted, +.uni-badge-success.uni-badge-inverted { + color: #4cd964; + background-color: transparent +} + +.uni-badge-warning, +.uni-badge-yellow { + color: #fff; + background-color: #f0ad4e +} + +.uni-badge-warning.uni-badge-inverted, +.uni-badge-yellow.uni-badge-inverted { + color: #f0ad4e; + background-color: transparent +} + +.uni-badge-danger, +.uni-badge-red { + color: #fff; + background-color: #dd524d +} + +.uni-badge-danger.uni-badge-inverted, +.uni-badge-red.uni-badge-inverted { + color: #dd524d; + background-color: transparent +} + +.uni-badge-purple, +.uni-badge-royal { + color: #fff; + background-color: #8a6de9 +} + +.uni-badge-purple.uni-badge-inverted, +.uni-badge-royal.uni-badge-inverted { + color: #8a6de9; + background-color: transparent +} + +/*折叠面板 */ +.uni-collapse-content { + height: 0; + width: 100%; + overflow: hidden; +} + +.uni-collapse-content.uni-active { + height: auto; +} + +/*卡片视图 */ +.uni-card { + background: #fff; + border-radius: 8rpx; + margin: 20rpx 0; + position: relative; + /* box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, .3); */ +} + +.uni-card-content { + font-size: 30rpx; +} + +.uni-card-content.image-view { + width: 100%; + margin: 0; +} + +.uni-card-content-inner { + position: relative; + padding: 30rpx; +} + +.uni-card-footer, +.uni-card-header { + position: relative; + display: flex; + min-height: 50rpx; + padding: 20rpx 30rpx; + justify-content: space-between; + align-items: center; +} + +.uni-card-header { + font-size: 36rpx; +} + +.uni-card-footer { + color: #6d6d72; +} + +.uni-card-footer:before, +.uni-card-header:after { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-card-header:after { + top: auto; + bottom: 0; +} + +.uni-card-media { + justify-content: flex-start; +} + +.uni-card-media-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} + +.uni-card-media-body { + height: 84rpx; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; +} + +.uni-card-media-text-top { + line-height: 36rpx; + font-size: 34rpx; +} + +.uni-card-media-text-bottom { + line-height: 30rpx; + font-size: 28rpx; + color: #8f8f94; +} + +.uni-card-link { + color: #007AFF; +} + +/* 列表 */ +.uni-list { + background-color: #FFFFFF; + position: relative; + width: 100%; + display: flex; + flex-direction: column; +} + +.uni-list:after { + position: absolute; + z-index: 10; + right: 0; + bottom: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +/* .uni-list::before { + position: absolute; + z-index: 10; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} */ +.uni-list-cell { + position: relative; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +.uni-list-cell-hover { + background-color: #eee; +} + +.uni-list-cell-pd { + padding: 22rpx 30rpx; +} + +.uni-list-cell-left { + white-space: nowrap; + font-size: 28rpx; + padding: 0 30rpx; +} + +.uni-list-cell-db, +.uni-list-cell-right { + flex: 1; +} + +.uni-list-cell::after { + position: absolute; + z-index: 3; + right: 0; + bottom: 0; + left: 30rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list .uni-list-cell:last-child::after { + height: 0rpx; +} + +.uni-list-cell-last.uni-list-cell::after { + height: 0rpx; +} + +.uni-list-cell-divider { + position: relative; + display: flex; + color: #999; + background-color: #f7f7f7; + padding: 15rpx 20rpx; +} + +.uni-list-cell-divider::before { + position: absolute; + right: 0; + top: 0; + left: 0; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list-cell-divider::after { + position: absolute; + right: 0; + bottom: 0; + left: 0rpx; + height: 1px; + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-list-cell-navigate { + font-size: 30rpx; + padding: 22rpx 30rpx; + line-height: 48rpx; + position: relative; + display: flex; + box-sizing: border-box; + width: 100%; + flex: 1; + justify-content: space-between; + align-items: center; +} + +.uni-list-cell-navigate { + padding-right: 36rpx; +} + +.uni-navigate-badge { + padding-right: 50rpx; +} + +.uni-list-cell-navigate.uni-navigate-right:after { + font-family: uniicons; + content: '\e583'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-list-cell-navigate.uni-navigate-bottom:after { + font-family: uniicons; + content: '\e581'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-list-cell-navigate.uni-navigate-bottom.uni-active::after { + font-family: uniicons; + content: '\e580'; + position: absolute; + right: 24rpx; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.uni-collapse.uni-list-cell { + flex-direction: column; +} + +.uni-list-cell-navigate.uni-active { + background: #eee; +} + +.uni-list.uni-collapse { + box-sizing: border-box; + height: 0; + overflow: hidden; +} + +.uni-collapse .uni-list-cell { + padding-left: 20rpx; +} + +.uni-collapse .uni-list-cell::after { + left: 52rpx; +} + +.uni-list.uni-active { + height: auto; +} + +/* 三行列表 */ +.uni-triplex-row { + display: flex; + flex: 1; + width: 100%; + box-sizing: border-box; + flex-direction: row; + padding: 22rpx 30rpx; +} + +.uni-triplex-right, +.uni-triplex-left { + display: flex; + flex-direction: column; +} + +.uni-triplex-left { + width: 84%; +} + +.uni-triplex-left .uni-title { + padding: 8rpx 0; +} + +.uni-triplex-left .uni-text, +.uni-triplex-left .uni-text-small { + color: #999999; +} + +.uni-triplex-right { + width: 16%; + text-align: right; +} + +/* 图文列表 */ +.uni-media-list { + padding: 22rpx 30rpx; + box-sizing: border-box; + display: flex; + width: 100%; + flex-direction: row; +} + +.uni-navigate-right.uni-media-list { + padding-right: 74rpx; +} + +.uni-pull-right { + flex-direction: row-reverse; +} + +.uni-pull-right>.uni-media-list-logo { + margin-right: 0rpx; + margin-left: 20rpx; +} + +.uni-media-list-logo { + height: 84rpx; + width: 84rpx; + margin-right: 20rpx; +} + +.uni-media-list-logo image { + height: 100%; + width: 100%; +} + +.uni-media-list-body { + height: 84rpx; + display: flex; + flex: 1; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + overflow: hidden; +} + +.uni-media-list-text-top { + width: 100%; + line-height: 36rpx; + font-size: 30rpx; +} + +.uni-media-list-text-bottom { + width: 100%; + line-height: 30rpx; + font-size: 26rpx; + color: #8f8f94; +} + +/* 九宫格 */ +.uni-grid-9 { + background: #f2f2f2; + width: 750rpx; + display: flex; + flex-direction: row; + flex-wrap: wrap; + border-top: 2rpx solid #eee; +} + +.uni-grid-9-item { + width: 250rpx; + height: 200rpx; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-bottom: 2rpx solid; + border-right: 2rpx solid; + border-color: #eee; + box-sizing: border-box; +} + +.no-border-right { + border-right: none; +} + +.uni-grid-9-image { + width: 100rpx; + height: 100rpx; +} + +.uni-grid-9-text { + width: 250rpx; + line-height: 4rpx; + height: 40rpx; + text-align: center; + font-size: 30rpx; +} + +.uni-grid-9-item-hover { + background: rgba(0, 0, 0, 0.1); +} + +/* 上传 */ +.uni-uploader { + flex: 1; + flex-direction: column; +} + +.uni-uploader-head { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.uni-uploader-info { + color: #B2B2B2; +} + +.uni-uploader-body { + margin-top: 16rpx; +} + +.uni-uploader__files { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +.uni-uploader__file { + margin: 10rpx; + width: 210rpx; + height: 210rpx; +} + +.uni-uploader__img { + display: block; + width: 210rpx; + height: 210rpx; +} + +.uni-uploader__input-box { + position: relative; + margin: 10rpx; + width: 208rpx; + height: 208rpx; + border: 2rpx solid #D9D9D9; +} + +.uni-uploader__input-box:before, +.uni-uploader__input-box:after { + content: " "; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + background-color: #D9D9D9; +} + +.uni-uploader__input-box:before { + width: 4rpx; + height: 79rpx; +} + +.uni-uploader__input-box:after { + width: 79rpx; + height: 4rpx; +} + +.uni-uploader__input-box:active { + border-color: #999999; +} + +.uni-uploader__input-box:active:before, +.uni-uploader__input-box:active:after { + background-color: #999999; +} + +.uni-uploader__input { + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; +} + +/*问题反馈*/ +.feedback-title { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 20rpx; + color: #8f8f94; + font-size: 28rpx; +} + +.feedback-star-view.feedback-title { + justify-content: flex-start; + margin: 0; +} + +.feedback-quick { + position: relative; + padding-right: 40rpx; +} + +.feedback-quick:after { + font-family: uniicons; + font-size: 40rpx; + content: '\e581'; + position: absolute; + right: 0; + top: 50%; + color: #bbb; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} + +.feedback-body { + background: #fff; +} + +.feedback-textare { + height: 200rpx; + font-size: 34rpx; + line-height: 50rpx; + width: 100%; + box-sizing: border-box; + padding: 20rpx 30rpx 0; +} + +.feedback-input { + font-size: 34rpx; + height: 50rpx; + min-height: 50rpx; + padding: 15rpx 20rpx; + line-height: 50rpx; +} + +.feedback-uploader { + padding: 22rpx 20rpx; +} + +.feedback-star { + font-family: uniicons; + font-size: 40rpx; + margin-left: 6rpx; +} + +.feedback-star-view { + margin-left: 20rpx; +} + +.feedback-star:after { + content: '\e408'; +} + +.feedback-star.active { + color: #FFB400; +} + +.feedback-star.active:after { + content: '\e438'; +} + +.feedback-submit { + background: #007AFF; + color: #FFFFFF; + margin: 20rpx; +} + +/* input group */ +.uni-input-group { + position: relative; + padding: 0; + border: 0; + background-color: #fff; +} + +.uni-input-group:before { + position: absolute; + top: 0; + right: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-group:after { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row { + position: relative; + display: flex; + flex-direction: row; + font-size: 28rpx; + padding: 22rpx 30rpx; + justify-content: space-between; +} + +.uni-input-group .uni-input-row:after { + position: absolute; + right: 0; + bottom: 0; + left: 30rpx; + height: 2rpx; + content: ''; + transform: scaleY(.5); + background-color: #c8c7cc; +} + +.uni-input-row label { + line-height: 70rpx; +} + +/* textarea */ +.uni-textarea { + width: 100%; + background: #FFF; +} + +.uni-textarea textarea { + width: 96%; + padding: 18rpx 2%; + line-height: 1.6; + font-size: 28rpx; + height: 150rpx; +} + +/* tab bar */ +.uni-tab-bar { + display: flex; + flex: 1; + flex-direction: column; + overflow: hidden; + height: 100%; +} + +.uni-tab-bar .list { + width: 750rpx; + height: 100%; +} + +.uni-swiper-tab { + width: 100%; + white-space: nowrap; + line-height: 100rpx; + height: 100rpx; + border-bottom: 1px solid #c8c7cc; +} + +.swiper-tab-list { + font-size: 30rpx; + width: 150rpx; + display: inline-block; + text-align: center; + color: #555; +} + +.uni-tab-bar .active { + color: #007AFF; +} + +.uni-tab-bar .swiper-box { + flex: 1; + width: 100%; + height: calc(100% - 100rpx); +} + +.uni-tab-bar-loading { + padding: 20rpx 0; +} + +/* comment */ +.uni-comment { + padding: 5rpx 0; + display: flex; + flex-grow: 1; + flex-direction: column; +} + +.uni-comment-list { + flex-wrap: nowrap; + padding: 10rpx 0; + margin: 10rpx 0; + width: 100%; + display: flex; +} + +.uni-comment-face { + width: 70rpx; + height: 70rpx; + border-radius: 100%; + margin-right: 20rpx; + flex-shrink: 0; + overflow: hidden; +} + +.uni-comment-face image { + width: 100%; + border-radius: 100%; +} + +.uni-comment-body { + width: 100%; +} + +.uni-comment-top { + line-height: 1.5em; + justify-content: space-between; +} + +.uni-comment-top text { + color: #0A98D5; + font-size: 24rpx; +} + +.uni-comment-date { + line-height: 38rpx; + flex-direction: row; + justify-content: space-between; + display: flex !important; + flex-grow: 1; +} + +.uni-comment-date view { + color: #666666; + font-size: 24rpx; + line-height: 38rpx; +} + +.uni-comment-content { + line-height: 1.6em; + font-size: 28rpx; + padding: 8rpx 0; +} + +.uni-comment-replay-btn { + background: #FFF; + font-size: 24rpx; + line-height: 28rpx; + padding: 5rpx 20rpx; + border-radius: 30rpx; + color: #333 !important; + margin: 0 10rpx; +} + +/* swiper msg */ +.uni-swiper-msg { + width: 100%; + padding: 12rpx 0; + flex-wrap: nowrap; + display: flex; +} + +.uni-swiper-msg-icon { + width: 50rpx; + margin-right: 20rpx; +} + +.uni-swiper-msg-icon image { + width: 100%; + flex-shrink: 0; +} + +.uni-swiper-msg swiper { + width: 100%; + height: 50rpx; +} + +.uni-swiper-msg swiper-item { + line-height: 50rpx; +} + +/* product */ +.uni-product-list { + display: flex; + width: 100%; + flex-wrap: wrap; + flex-direction: row; +} + +.uni-product { + padding: 20rpx; + display: flex; + flex-direction: column; +} + +.image-view { + height: 330rpx; + width: 330rpx; + margin: 12rpx 0; +} + +.uni-product-image { + height: 330rpx; + width: 330rpx; +} + +.uni-product-title { + width: 300rpx; + word-break: break-all; + display: -webkit-box; + overflow: hidden; + line-height: 1.5; + text-overflow: ellipsis; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.uni-product-price { + margin-top: 10rpx; + font-size: 28rpx; + line-height: 1.5; + position: relative; +} + +.uni-product-price-original { + color: #e80080; +} + +.uni-product-price-favour { + color: #888888; + text-decoration: line-through; + margin-left: 10rpx; +} + +.uni-product-tip { + position: absolute; + right: 10rpx; + background-color: #ff3333; + color: #ffffff; + padding: 0 10rpx; + border-radius: 5rpx; +} + +/* timeline */ +.uni-timeline { + margin: 35rpx 0; + display: flex; + flex-direction: column; + position: relative; +} + + +.uni-timeline-item { + display: flex; + flex-direction: row; + position: relative; + padding-bottom: 20rpx; + box-sizing: border-box; + overflow: hidden; + +} + +.uni-timeline-item .uni-timeline-item-keynode { + width: 160rpx; + flex-shrink: 0; + box-sizing: border-box; + padding-right: 20rpx; + text-align: right; + line-height: 65rpx; +} + +.uni-timeline-item .uni-timeline-item-divider { + flex-shrink: 0; + position: relative; + width: 30rpx; + height: 30rpx; + top: 15rpx; + border-radius: 50%; + background-color: #bbb; +} + + + +.uni-timeline-item-divider::before, +.uni-timeline-item-divider::after { + position: absolute; + left: 15rpx; + width: 1rpx; + height: 100vh; + content: ''; + background: inherit; +} + +.uni-timeline-item-divider::before { + bottom: 100%; +} + +.uni-timeline-item-divider::after { + top: 100%; +} + + +.uni-timeline-last-item .uni-timeline-item-divider:after { + display: none; +} + +.uni-timeline-first-item .uni-timeline-item-divider:before { + display: none; +} + +.uni-timeline-item .uni-timeline-item-content { + padding-left: 20rpx; +} + +.uni-timeline-last-item .bottom-border::after { + display: none; +} + +.uni-timeline-item-content .datetime { + color: #CCCCCC; +} + +/* 自定义节点颜色 */ +.uni-timeline-last-item .uni-timeline-item-divider { + background-color: #1AAD19; +} + + +/* uni-icon */ + +.uni-icon { + font-family: uniicons; + font-size: 24px; + font-weight: normal; + font-style: normal; + line-height: 1; + display: inline-block; + text-decoration: none; + -webkit-font-smoothing: antialiased; +} + +.uni-icon.uni-active { + color: #007aff; +} + +.uni-icon-contact:before { + content: '\e100'; +} + +.uni-icon-person:before { + content: '\e101'; +} + +.uni-icon-personadd:before { + content: '\e102'; +} + +.uni-icon-contact-filled:before { + content: '\e130'; +} + +.uni-icon-person-filled:before { + content: '\e131'; +} + +.uni-icon-personadd-filled:before { + content: '\e132'; +} + +.uni-icon-phone:before { + content: '\e200'; +} + +.uni-icon-email:before { + content: '\e201'; +} + +.uni-icon-chatbubble:before { + content: '\e202'; +} + +.uni-icon-chatboxes:before { + content: '\e203'; +} + +.uni-icon-phone-filled:before { + content: '\e230'; +} + +.uni-icon-email-filled:before { + content: '\e231'; +} + +.uni-icon-chatbubble-filled:before { + content: '\e232'; +} + +.uni-icon-chatboxes-filled:before { + content: '\e233'; +} + +.uni-icon-weibo:before { + content: '\e260'; +} + +.uni-icon-weixin:before { + content: '\e261'; +} + +.uni-icon-pengyouquan:before { + content: '\e262'; +} + +.uni-icon-chat:before { + content: '\e263'; +} + +.uni-icon-qq:before { + content: '\e264'; +} + +.uni-icon-videocam:before { + content: '\e300'; +} + +.uni-icon-camera:before { + content: '\e301'; +} + +.uni-icon-mic:before { + content: '\e302'; +} + +.uni-icon-location:before { + content: '\e303'; +} + +.uni-icon-mic-filled:before, +.uni-icon-speech:before { + content: '\e332'; +} + +.uni-icon-location-filled:before { + content: '\e333'; +} + +.uni-icon-micoff:before { + content: '\e360'; +} + +.uni-icon-image:before { + content: '\e363'; +} + +.uni-icon-map:before { + content: '\e364'; +} + +.uni-icon-compose:before { + content: '\e400'; +} + +.uni-icon-trash:before { + content: '\e401'; +} + +.uni-icon-upload:before { + content: '\e402'; +} + +.uni-icon-download:before { + content: '\e403'; +} + +.uni-icon-close:before { + content: '\e404'; +} + +.uni-icon-redo:before { + content: '\e405'; +} + +.uni-icon-undo:before { + content: '\e406'; +} + +.uni-icon-refresh:before { + content: '\e407'; +} + +.uni-icon-star:before { + content: '\e408'; +} + +.uni-icon-plus:before { + content: '\e409'; +} + +.uni-icon-minus:before { + content: '\e410'; +} + +.uni-icon-circle:before, +.uni-icon-checkbox:before { + content: '\e411'; +} + +.uni-icon-close-filled:before, +.uni-icon-clear:before { + content: '\e434'; +} + +.uni-icon-refresh-filled:before { + content: '\e437'; +} + +.uni-icon-star-filled:before { + content: '\e438'; +} + +.uni-icon-plus-filled:before { + content: '\e439'; +} + +.uni-icon-minus-filled:before { + content: '\e440'; +} + +.uni-icon-circle-filled:before { + content: '\e441'; +} + +.uni-icon-checkbox-filled:before { + content: '\e442'; +} + +.uni-icon-closeempty:before { + content: '\e460'; +} + +.uni-icon-refreshempty:before { + content: '\e461'; +} + +.uni-icon-reload:before { + content: '\e462'; +} + +.uni-icon-starhalf:before { + content: '\e463'; +} + +.uni-icon-spinner:before { + content: '\e464'; +} + +.uni-icon-spinner-cycle:before { + content: '\e465'; +} + +.uni-icon-search:before { + content: '\e466'; +} + +.uni-icon-plusempty:before { + content: '\e468'; +} + +.uni-icon-forward:before { + content: '\e470'; +} + +.uni-icon-back:before, +.uni-icon-left-nav:before { + content: '\e471'; +} + +.uni-icon-checkmarkempty:before { + content: '\e472'; +} + +.uni-icon-home:before { + content: '\e500'; +} + +.uni-icon-navigate:before { + content: '\e501'; +} + +.uni-icon-gear:before { + content: '\e502'; +} + +.uni-icon-paperplane:before { + content: '\e503'; +} + +.uni-icon-info:before { + content: '\e504'; +} + +.uni-icon-help:before { + content: '\e505'; +} + +.uni-icon-locked:before { + content: '\e506'; +} + +.uni-icon-more:before { + content: '\e507'; +} + +.uni-icon-flag:before { + content: '\e508'; +} + +.uni-icon-home-filled:before { + content: '\e530'; +} + +.uni-icon-gear-filled:before { + content: '\e532'; +} + +.uni-icon-info-filled:before { + content: '\e534'; +} + +.uni-icon-help-filled:before { + content: '\e535'; +} + +.uni-icon-more-filled:before { + content: '\e537'; +} + +.uni-icon-settings:before { + content: '\e560'; +} + +.uni-icon-list:before { + content: '\e562'; +} + +.uni-icon-bars:before { + content: '\e563'; +} + +.uni-icon-loop:before { + content: '\e565'; +} + +.uni-icon-paperclip:before { + content: '\e567'; +} + +.uni-icon-eye:before { + content: '\e568'; +} + +.uni-icon-arrowup:before { + content: '\e580'; +} + +.uni-icon-arrowdown:before { + content: '\e581'; +} + +.uni-icon-arrowleft:before { + content: '\e582'; +} + +.uni-icon-arrowright:before { + content: '\e583'; +} + +.uni-icon-arrowthinup:before { + content: '\e584'; +} + +.uni-icon-arrowthindown:before { + content: '\e585'; +} + +.uni-icon-arrowthinleft:before { + content: '\e586'; +} + +.uni-icon-arrowthinright:before { + content: '\e587'; +} + +.uni-icon-pulldown:before { + content: '\e588'; +} + +.uni-icon-scan:before { + content: "\e612"; +} + +/* 分界线 */ +.uni-divider { + height: 110rpx; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} + +.uni-divider__content { + font-size: 28rpx; + color: #999; + padding: 0 20rpx; + position: relative; + z-index: 101; + background: #F4F5F6; +} + +.uni-divider__line { + background-color: #CCCCCC; + height: 1px; + width: 100%; + position: absolute; + z-index: 100; + top: 50%; + left: 0; + transform: translateY(50%); +} + +.left-win-active text { + color: #007AFF !important; +} diff --git a/common/uni-nvue.css b/common/uni-nvue.css new file mode 100644 index 00000000..6863ac99 --- /dev/null +++ b/common/uni-nvue.css @@ -0,0 +1,136 @@ +/* #ifndef APP-PLUS-NVUE */ +page { + min-height: 100%; + height: auto; +} +/* #endif */ + +/* 解决头条小程序字体图标不显示问题,因为头条运行时自动插入了span标签,且有全局字体 */ +/* #ifdef MP-TOUTIAO */ +/* text :not(view) { + font-family: uniicons; +} */ +/* #endif */ + +.uni-icon { + font-family: uniicons; + font-weight: normal; +} + +.uni-container { + padding: 15px; + background-color: #f8f8f8; +} + +.uni-header-logo { + /* #ifdef H5 */ + display: flex; + /* #endif */ + padding: 15px 15px; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 10rpx; +} + +.uni-header-image { + width: 80px; + height: 80px; +} + +.uni-hello-text { + margin-bottom: 20px; +} + +.hello-text { + color: #7A7E83; + font-size: 14px; + line-height: 20px; +} + +.hello-link { + color: #7A7E83; + font-size: 14px; + line-height: 20px; +} + +.uni-panel { + margin-bottom: 12px; +} + +.uni-panel-h { + /* #ifdef H5 */ + display: flex; + /* #endif */ + background-color: #ffffff; + flex-direction: row !important; + /* justify-content: space-between !important; */ + align-items: center !important; + padding: 12px; + /* #ifdef H5 */ + cursor: pointer; + /* #endif */ +} +/* +.uni-panel-h:active { + background-color: #f8f8f8; +} + */ +.uni-panel-h-on { + background-color: #f0f0f0; +} + +.uni-panel-text { + flex: 1; + color: #000000; + font-size: 14px; + font-weight: normal; +} + +.uni-panel-icon { + margin-left: 15px; + color: #999999; + font-size: 14px; + font-weight: normal; + transform: rotate(0deg); + transition-duration: 0s; + transition-property: transform; +} + +.uni-panel-icon-on { + transform: rotate(180deg); +} + +.uni-navigate-item { + /* #ifdef H5 */ + display: flex; + /* #endif */ + flex-direction: row; + align-items: center; + background-color: #FFFFFF; + border-top-style: solid; + border-top-color: #f0f0f0; + border-top-width: 1px; + padding: 12px; + /* #ifdef H5 */ + cursor: pointer; + /* #endif */ +} + +.uni-navigate-item:active { + background-color: #f8f8f8; +} + +.uni-navigate-text { + flex: 1; + color: #000000; + font-size: 14px; + font-weight: normal; +} + +.uni-navigate-icon { + margin-left: 15px; + color: #999999; + font-size: 14px; + font-weight: normal; +} diff --git a/utils/auth.js b/common/utils/auth.js similarity index 99% rename from utils/auth.js rename to common/utils/auth.js index cf27e275..57eeb284 100644 --- a/utils/auth.js +++ b/common/utils/auth.js @@ -2,7 +2,6 @@ const AccessTokenKey = 'ACCESS_TOKEN' const RefreshTokenKey = 'REFRESH_TOKEN' // ========== Token 相关 ========== - export function getAccessToken() { return uni.getStorageSync(AccessTokenKey) } diff --git a/utils/common.js b/common/utils/common.js similarity index 100% rename from utils/common.js rename to common/utils/common.js diff --git a/utils/constant.js b/common/utils/constant.js similarity index 65% rename from utils/constant.js rename to common/utils/constant.js index 8becd84f..89e54ca4 100644 --- a/utils/constant.js +++ b/common/utils/constant.js @@ -2,7 +2,8 @@ const constant = { avatar: 'vuex_avatar', name: 'vuex_name', roles: 'vuex_roles', - permissions: 'vuex_permissions' + permissions: 'vuex_permissions', + tenantId:'vuex_tenantId' } export default constant diff --git a/utils/errorCode.js b/common/utils/errorCode.js similarity index 100% rename from utils/errorCode.js rename to common/utils/errorCode.js diff --git a/utils/permission.js b/common/utils/permission.js similarity index 100% rename from utils/permission.js rename to common/utils/permission.js diff --git a/utils/ruoyi.js b/common/utils/ruoyi.js similarity index 100% rename from utils/ruoyi.js rename to common/utils/ruoyi.js diff --git a/common/utils/storage.js b/common/utils/storage.js new file mode 100644 index 00000000..515d413a --- /dev/null +++ b/common/utils/storage.js @@ -0,0 +1,37 @@ +// 获取本地存储对应key +const getStorage = (key)=>{ + return uni.getStorageSync( key ); +} + +// 设置本地存储对应key +const setStorage = (key,value)=>{ + return uni.setStorageSync( key,value ); +} + +// 清除全部本地存储 +const clearStorage = ()=>{ + uni.clearStorageSync(); +} + +// 清除指定key本地存储 +const removeStorage = ( key )=>{ + uni.removeStorageSync( key ); +} + +const constant = { + id:"id", + token:"token", + avatar: 'avatar', + name: 'name', + roles: 'roles', + permissions: 'permissions' + } + + +export default { + getStorage, + setStorage, + clearStorage, + removeStorage, + constant +} \ No newline at end of file diff --git a/components/amap-wx/js/util.js b/components/amap-wx/js/util.js new file mode 100644 index 00000000..65779df2 --- /dev/null +++ b/components/amap-wx/js/util.js @@ -0,0 +1,181 @@ +import amap from '@/components/amap-wx/lib/amap-wx.js'; +// 地铁颜色图 +const line = { + '1号线': '#C43B33', + '2号线': '#016299', + '4号线/大兴线': '#008E9C', + '5号线': '#A42380', + '6号线': '#D09900', + '7号线': '#F2C172', + '8号线': '#009D6A', + '9号线': '#8FC41E', + '10号线': '#009DBE', + '13号线': '#F9E701', + '14号线东段': '#D4A7A2', + '14号线西段': '#D4A7A2', + '15号线': '#5D2D69', + '八通线': '#C33A32', + '昌平线': '#DE82B1', + '亦庄线': '#E40177', + '房山线': '#E66021', + '机场线': '#A29BBC', +} + +// 150500:地铁站 ,150700:公交站 , 190700:地名地址 +const typecode = [{ + id: '150500', + icon: 'icon-ditie' +}, { + id: '150700', + icon: 'icon-gongjiao' +}, { + id: '190700', + icon: 'icon-gonglu' +}]; + +const util = { + key:'b526b09b86cd2996e7732be8ab8c4430', + /** + * 初始化高德地图api + */ + mapInit() { + return new amap.AMapWX({ + key: this.key + }); + }, + // 服务状态吗 + typecode, + /** + * 获取地图颜色 + */ + lineColor(name) { + if (line[name]) { + return line[name]; + } else { + return '#ccc'; + } + }, + /** + * 关键字颜色变化 + */ + serachNmme(val, name) { + let namestr = new RegExp(val); + let nameresult = + `
+ ${name.replace(namestr, "" + val + '')} +
` + .trim(); + + return nameresult; + }, + /** + * 地址转地铁线路 + */ + addressToLine(address, type) { + let addr = address.split(';'); + let dt = ''; + addr.forEach(elm => { + let color = '#cccccc'; + if (type === typecode[0].id) { + color = this.lineColor(elm) + } else if (type === typecode[1].id) { + color = '#4075cb' + } + let style = 'margin:5px 0;margin-right:5px;padding:0 5px;background:' + color + + ';font-size:12px;color:#fff;border-radius:3px;'; + dt += `
${elm}
`; + + }); + return `
${dt}
`; + }, + /** + * 数据处理 + */ + dataHandle(item, val) { + // 改变字体颜色 + if (val) { + item.nameNodes = util.serachNmme(val, item.name); + } else { + item.nameNodes = `
${item.name}
`; + + } + // 地址解析 地铁 + if ( + item.typecode === util.typecode[0].id || + item.typecode === util.typecode[1].id + ) { + item.addressNodes = util.addressToLine(item.address, item.typecode); + if (item.typecode === util.typecode[0].id) { + item.icon = util.typecode[0].icon; + } else if (item.typecode === util.typecode[1].id) { + item.icon = util.typecode[1].icon; + } + } else { + item.addressNodes = `${item.district}${ + item.address.length > 0 ? '·' + item.address : '' + }`.trim(); + item.icon = 'icon-weizhi'; + } + + if (item.location && item.location.length === 0) { + item.icon = 'icon-sousuo'; + } + + return item; + }, + /** + * 存储历史数据 + * val [string | object]需要存储的内容 + */ + setHistory(val) { + let searchHistory = uni.getStorageSync('search:history'); + if (!searchHistory) searchHistory = []; + let serachData = {}; + if (typeof(val) === 'string') { + serachData = { + adcode: [], + address: [], + city: [], + district: [], + id: [], + location: [], + name: val, + typecode: [] + }; + } else { + serachData = val + } + + // 判断数组是否存在,如果存在,那么将放到最前面 + for (var i = 0; i < searchHistory.length; i++) { + if (searchHistory[i].name === serachData.name) { + searchHistory.splice(i, 1); + break; + } + } + + searchHistory.unshift(util.dataHandle(serachData)); + uni.setStorage({ + key: 'search:history', + data: searchHistory, + success: function() { + // console.log('success'); + } + }); + }, + getHistory() { + + }, + removeHistory() { + uni.removeStorage({ + key: 'search:history', + success: function(res) { + console.log('success'); + } + }); + return [] + } + +} + +export default util; diff --git a/components/amap-wx/lib/amap-wx.js b/components/amap-wx/lib/amap-wx.js new file mode 100644 index 00000000..e1ef2b20 --- /dev/null +++ b/components/amap-wx/lib/amap-wx.js @@ -0,0 +1 @@ +function AMapWX(a){this.key=a.key,this.requestConfig={key:a.key,s:"rsx",platform:"WXJS",appname:a.key,sdkversion:"1.2.0",logversion:"2.0"}}AMapWX.prototype.getWxLocation=function(a,b){wx.getLocation({type:"gcj02",success:function(a){var c=a.longitude+","+a.latitude;wx.setStorage({key:"userLocation",data:c}),b(c)},fail:function(c){wx.getStorage({key:"userLocation",success:function(a){a.data&&b(a.data)}}),a.fail({errCode:"0",errMsg:c.errMsg||""})}})},AMapWX.prototype.getRegeo=function(a){function c(c){var d=b.requestConfig;wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:b.key,location:c,extensions:"all",s:d.s,platform:d.platform,appname:b.key,sdkversion:d.sdkversion,logversion:d.logversion},method:"GET",header:{"content-type":"application/json"},success:function(b){var d,e,f,g,h,i,j,k,l;b.data.status&&"1"==b.data.status?(d=b.data.regeocode,e=d.addressComponent,f=[],g="",d&&d.roads[0]&&d.roads[0].name&&(g=d.roads[0].name+"附近"),h=c.split(",")[0],i=c.split(",")[1],d.pois&&d.pois[0]&&(g=d.pois[0].name+"附近",j=d.pois[0].location,j&&(h=parseFloat(j.split(",")[0]),i=parseFloat(j.split(",")[1]))),e.provice&&f.push(e.provice),e.city&&f.push(e.city),e.district&&f.push(e.district),e.streetNumber&&e.streetNumber.street&&e.streetNumber.number?(f.push(e.streetNumber.street),f.push(e.streetNumber.number)):(k="",d&&d.roads[0]&&d.roads[0].name&&(k=d.roads[0].name),f.push(k)),f=f.join(""),l=[{iconPath:a.iconPath,width:a.iconWidth,height:a.iconHeight,name:f,desc:g,longitude:h,latitude:i,id:0,regeocodeData:d}],a.success(l)):a.fail({errCode:b.data.infocode,errMsg:b.data.info})},fail:function(b){a.fail({errCode:"0",errMsg:b.errMsg||""})}})}var b=this;a.location?c(a.location):b.getWxLocation(a,function(a){c(a)})},AMapWX.prototype.getWeather=function(a){function d(d){var e="base";a.type&&"forecast"==a.type&&(e="all"),wx.request({url:"https://restapi.amap.com/v3/weather/weatherInfo",data:{key:b.key,city:d,extensions:e,s:c.s,platform:c.platform,appname:b.key,sdkversion:c.sdkversion,logversion:c.logversion},method:"GET",header:{"content-type":"application/json"},success:function(b){function c(a){var b={city:{text:"城市",data:a.city},weather:{text:"天气",data:a.weather},temperature:{text:"温度",data:a.temperature},winddirection:{text:"风向",data:a.winddirection+"风"},windpower:{text:"风力",data:a.windpower+"级"},humidity:{text:"湿度",data:a.humidity+"%"}};return b}var d,e;b.data.status&&"1"==b.data.status?b.data.lives?(d=b.data.lives,d&&d.length>0&&(d=d[0],e=c(d),e["liveData"]=d,a.success(e))):b.data.forecasts&&b.data.forecasts[0]&&a.success({forecast:b.data.forecasts[0]}):a.fail({errCode:b.data.infocode,errMsg:b.data.info})},fail:function(b){a.fail({errCode:"0",errMsg:b.errMsg||""})}})}function e(e){wx.request({url:"https://restapi.amap.com/v3/geocode/regeo",data:{key:b.key,location:e,extensions:"all",s:c.s,platform:c.platform,appname:b.key,sdkversion:c.sdkversion,logversion:c.logversion},method:"GET",header:{"content-type":"application/json"},success:function(b){var c,e;b.data.status&&"1"==b.data.status?(e=b.data.regeocode,e.addressComponent?c=e.addressComponent.adcode:e.aois&&e.aois.length>0&&(c=e.aois[0].adcode),d(c)):a.fail({errCode:b.data.infocode,errMsg:b.data.info})},fail:function(b){a.fail({errCode:"0",errMsg:b.errMsg||""})}})}var b=this,c=b.requestConfig;a.city?d(a.city):b.getWxLocation(a,function(a){e(a)})},AMapWX.prototype.getPoiAround=function(a){function d(d){var e={key:b.key,location:d,s:c.s,platform:c.platform,appname:b.key,sdkversion:c.sdkversion,logversion:c.logversion};a.querytypes&&(e["types"]=a.querytypes),a.querykeywords&&(e["keywords"]=a.querykeywords),wx.request({url:"https://restapi.amap.com/v3/place/around",data:e,method:"GET",header:{"content-type":"application/json"},success:function(b){var c,d,e,f;if(b.data.status&&"1"==b.data.status){if(b=b.data,b&&b.pois){for(c=[],d=0;d + + + + + + + + + + + + + + + + diff --git a/components/custom-nomore/custom-nomore.vue b/components/custom-nomore/custom-nomore.vue new file mode 100644 index 00000000..17c2cff0 --- /dev/null +++ b/components/custom-nomore/custom-nomore.vue @@ -0,0 +1,39 @@ + + + + + + diff --git a/components/custom-refresher/custom-refresher.vue b/components/custom-refresher/custom-refresher.vue new file mode 100644 index 00000000..1a7f6f1e --- /dev/null +++ b/components/custom-refresher/custom-refresher.vue @@ -0,0 +1,58 @@ + + + + + + diff --git a/components/invite.vue b/components/invite.vue new file mode 100644 index 00000000..93b1236d --- /dev/null +++ b/components/invite.vue @@ -0,0 +1,110 @@ + + + + + \ No newline at end of file diff --git a/components/marked/index.js b/components/marked/index.js new file mode 100644 index 00000000..33e56c3a --- /dev/null +++ b/components/marked/index.js @@ -0,0 +1 @@ +export default './lib/marked' diff --git a/components/marked/lib/marked.js b/components/marked/lib/marked.js new file mode 100644 index 00000000..6a71e920 --- /dev/null +++ b/components/marked/lib/marked.js @@ -0,0 +1,1573 @@ +/** + * marked - a markdown parser + * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ + +;(function(root) { +'use strict'; + +/** + * Block-Level Grammar + */ + +var block = { + newline: /^\n+/, + code: /^( {4}[^\n]+\n*)+/, + fences: noop, + hr: /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/, + heading: /^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/, + nptable: noop, + blockquote: /^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/, + list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/, + html: '^ {0,3}(?:' // optional indentation + + '<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)' // (1) + + '|comment[^\\n]*(\\n+|$)' // (2) + + '|<\\?[\\s\\S]*?\\?>\\n*' // (3) + + '|\\n*' // (4) + + '|\\n*' // (5) + + '|)[\\s\\S]*?(?:\\n{2,}|$)' // (6) + + '|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) open tag + + '|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)' // (7) closing tag + + ')', + def: /^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/, + table: noop, + lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/, + paragraph: /^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/, + text: /^[^\n]+/ +}; + +block._label = /(?!\s*\])(?:\\[\[\]]|[^\[\]])+/; +block._title = /(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/; +block.def = edit(block.def) + .replace('label', block._label) + .replace('title', block._title) + .getRegex(); + +block.bullet = /(?:[*+-]|\d+\.)/; +block.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/; +block.item = edit(block.item, 'gm') + .replace(/bull/g, block.bullet) + .getRegex(); + +block.list = edit(block.list) + .replace(/bull/g, block.bullet) + .replace('hr', '\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))') + .replace('def', '\\n+(?=' + block.def.source + ')') + .getRegex(); + +block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + + '|track|ul'; +block._comment = //; +block.html = edit(block.html, 'i') + .replace('comment', block._comment) + .replace('tag', block._tag) + .replace('attribute', / +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/) + .getRegex(); + +block.paragraph = edit(block.paragraph) + .replace('hr', block.hr) + .replace('heading', block.heading) + .replace('lheading', block.lheading) + .replace('tag', block._tag) // pars can be interrupted by type (6) html blocks + .getRegex(); + +block.blockquote = edit(block.blockquote) + .replace('paragraph', block.paragraph) + .getRegex(); + +/** + * Normal Block Grammar + */ + +block.normal = merge({}, block); + +/** + * GFM Block Grammar + */ + +block.gfm = merge({}, block.normal, { + fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/, + paragraph: /^/, + heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ +}); + +block.gfm.paragraph = edit(block.paragraph) + .replace('(?!', '(?!' + + block.gfm.fences.source.replace('\\1', '\\2') + '|' + + block.list.source.replace('\\1', '\\3') + '|') + .getRegex(); + +/** + * GFM + Tables Block Grammar + */ + +block.tables = merge({}, block.gfm, { + nptable: /^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/, + table: /^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/ +}); + +/** + * Pedantic grammar + */ + +block.pedantic = merge({}, block.normal, { + html: edit( + '^ *(?:comment *(?:\\n|\\s*$)' + + '|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)' // closed tag + + '|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))') + .replace('comment', block._comment) + .replace(/tag/g, '(?!(?:' + + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + + '\\b)\\w+(?!:|[^\\w\\s@]*@)\\b') + .getRegex(), + def: /^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/ +}); + +/** + * Block Lexer + */ + +function Lexer(options) { + this.tokens = []; + this.tokens.links = Object.create(null); + this.options = options || marked.defaults; + this.rules = block.normal; + + if (this.options.pedantic) { + this.rules = block.pedantic; + } else if (this.options.gfm) { + if (this.options.tables) { + this.rules = block.tables; + } else { + this.rules = block.gfm; + } + } +} + +/** + * Expose Block Rules + */ + +Lexer.rules = block; + +/** + * Static Lex Method + */ + +Lexer.lex = function(src, options) { + var lexer = new Lexer(options); + return lexer.lex(src); +}; + +/** + * Preprocessing + */ + +Lexer.prototype.lex = function(src) { + src = src + .replace(/\r\n|\r/g, '\n') + .replace(/\t/g, ' ') + .replace(/\u00a0/g, ' ') + .replace(/\u2424/g, '\n'); + + return this.token(src, true); +}; + +/** + * Lexing + */ + +Lexer.prototype.token = function(src, top) { + src = src.replace(/^ +$/gm, ''); + var next, + loose, + cap, + bull, + b, + item, + listStart, + listItems, + t, + space, + i, + tag, + l, + isordered, + istask, + ischecked; + + while (src) { + // newline + if (cap = this.rules.newline.exec(src)) { + src = src.substring(cap[0].length); + if (cap[0].length > 1) { + this.tokens.push({ + type: 'space' + }); + } + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + cap = cap[0].replace(/^ {4}/gm, ''); + this.tokens.push({ + type: 'code', + text: !this.options.pedantic + ? rtrim(cap, '\n') + : cap + }); + continue; + } + + // fences (gfm) + if (cap = this.rules.fences.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'code', + lang: cap[2], + text: cap[3] || '' + }); + continue; + } + + // heading + if (cap = this.rules.heading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[1].length, + text: cap[2] + }); + continue; + } + + // table no leading pipe (gfm) + if (top && (cap = this.rules.nptable.exec(src))) { + item = { + type: 'table', + header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3] ? cap[3].replace(/\n$/, '').split('\n') : [] + }; + + if (item.header.length === item.align.length) { + src = src.substring(cap[0].length); + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = splitCells(item.cells[i], item.header.length); + } + + this.tokens.push(item); + + continue; + } + } + + // hr + if (cap = this.rules.hr.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'hr' + }); + continue; + } + + // blockquote + if (cap = this.rules.blockquote.exec(src)) { + src = src.substring(cap[0].length); + + this.tokens.push({ + type: 'blockquote_start' + }); + + cap = cap[0].replace(/^ *> ?/gm, ''); + + // Pass `top` to keep the current + // "toplevel" state. This is exactly + // how markdown.pl works. + this.token(cap, top); + + this.tokens.push({ + type: 'blockquote_end' + }); + + continue; + } + + // list + if (cap = this.rules.list.exec(src)) { + src = src.substring(cap[0].length); + bull = cap[2]; + isordered = bull.length > 1; + + listStart = { + type: 'list_start', + ordered: isordered, + start: isordered ? +bull : '', + loose: false + }; + + this.tokens.push(listStart); + + // Get each top-level item. + cap = cap[0].match(this.rules.item); + + listItems = []; + next = false; + l = cap.length; + i = 0; + + for (; i < l; i++) { + item = cap[i]; + + // Remove the list item's bullet + // so it is seen as the next token. + space = item.length; + item = item.replace(/^ *([*+-]|\d+\.) +/, ''); + + // Outdent whatever the + // list item contains. Hacky. + if (~item.indexOf('\n ')) { + space -= item.length; + item = !this.options.pedantic + ? item.replace(new RegExp('^ {1,' + space + '}', 'gm'), '') + : item.replace(/^ {1,4}/gm, ''); + } + + // Determine whether the next list item belongs here. + // Backpedal if it does not belong in this list. + if (this.options.smartLists && i !== l - 1) { + b = block.bullet.exec(cap[i + 1])[0]; + if (bull !== b && !(bull.length > 1 && b.length > 1)) { + src = cap.slice(i + 1).join('\n') + src; + i = l - 1; + } + } + + // Determine whether item is loose or not. + // Use: /(^|\n)(?! )[^\n]+\n\n(?!\s*$)/ + // for discount behavior. + loose = next || /\n\n(?!\s*$)/.test(item); + if (i !== l - 1) { + next = item.charAt(item.length - 1) === '\n'; + if (!loose) loose = next; + } + + if (loose) { + listStart.loose = true; + } + + // Check for task list items + istask = /^\[[ xX]\] /.test(item); + ischecked = undefined; + if (istask) { + ischecked = item[1] !== ' '; + item = item.replace(/^\[[ xX]\] +/, ''); + } + + t = { + type: 'list_item_start', + task: istask, + checked: ischecked, + loose: loose + }; + + listItems.push(t); + this.tokens.push(t); + + // Recurse. + this.token(item, false); + + this.tokens.push({ + type: 'list_item_end' + }); + } + + if (listStart.loose) { + l = listItems.length; + i = 0; + for (; i < l; i++) { + listItems[i].loose = true; + } + } + + this.tokens.push({ + type: 'list_end' + }); + + continue; + } + + // html + if (cap = this.rules.html.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: this.options.sanitize + ? 'paragraph' + : 'html', + pre: !this.options.sanitizer + && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'), + text: cap[0] + }); + continue; + } + + // def + if (top && (cap = this.rules.def.exec(src))) { + src = src.substring(cap[0].length); + if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1); + tag = cap[1].toLowerCase().replace(/\s+/g, ' '); + if (!this.tokens.links[tag]) { + this.tokens.links[tag] = { + href: cap[2], + title: cap[3] + }; + } + continue; + } + + // table (gfm) + if (top && (cap = this.rules.table.exec(src))) { + item = { + type: 'table', + header: splitCells(cap[1].replace(/^ *| *\| *$/g, '')), + align: cap[2].replace(/^ *|\| *$/g, '').split(/ *\| */), + cells: cap[3] ? cap[3].replace(/(?: *\| *)?\n$/, '').split('\n') : [] + }; + + if (item.header.length === item.align.length) { + src = src.substring(cap[0].length); + + for (i = 0; i < item.align.length; i++) { + if (/^ *-+: *$/.test(item.align[i])) { + item.align[i] = 'right'; + } else if (/^ *:-+: *$/.test(item.align[i])) { + item.align[i] = 'center'; + } else if (/^ *:-+ *$/.test(item.align[i])) { + item.align[i] = 'left'; + } else { + item.align[i] = null; + } + } + + for (i = 0; i < item.cells.length; i++) { + item.cells[i] = splitCells( + item.cells[i].replace(/^ *\| *| *\| *$/g, ''), + item.header.length); + } + + this.tokens.push(item); + + continue; + } + } + + // lheading + if (cap = this.rules.lheading.exec(src)) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'heading', + depth: cap[2] === '=' ? 1 : 2, + text: cap[1] + }); + continue; + } + + // top-level paragraph + if (top && (cap = this.rules.paragraph.exec(src))) { + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'paragraph', + text: cap[1].charAt(cap[1].length - 1) === '\n' + ? cap[1].slice(0, -1) + : cap[1] + }); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + // Top-level should never reach here. + src = src.substring(cap[0].length); + this.tokens.push({ + type: 'text', + text: cap[0] + }); + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return this.tokens; +}; + +/** + * Inline-Level Grammar + */ + +var inline = { + escape: /^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/, + autolink: /^<(scheme:[^\s\x00-\x1f<>]*|email)>/, + url: noop, + tag: '^comment' + + '|^' // self-closing tag + + '|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>' // open tag + + '|^<\\?[\\s\\S]*?\\?>' // processing instruction, e.g. + + '|^' // declaration, e.g. + + '|^', // CDATA section + link: /^!?\[(label)\]\(href(?:\s+(title))?\s*\)/, + reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, + nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, + strong: /^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/, + em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, + code: /^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/, + br: /^( {2,}|\\)\n(?!\s*$)/, + del: noop, + text: /^[\s\S]+?(?=[\\?@\[\]\\^_`{|}~])/g; + +inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/; +inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/; +inline.autolink = edit(inline.autolink) + .replace('scheme', inline._scheme) + .replace('email', inline._email) + .getRegex(); + +inline._attribute = /\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/; + +inline.tag = edit(inline.tag) + .replace('comment', block._comment) + .replace('attribute', inline._attribute) + .getRegex(); + +inline._label = /(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/; +inline._href = /\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)/; +inline._title = /"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/; + +inline.link = edit(inline.link) + .replace('label', inline._label) + .replace('href', inline._href) + .replace('title', inline._title) + .getRegex(); + +inline.reflink = edit(inline.reflink) + .replace('label', inline._label) + .getRegex(); + +/** + * Normal Inline Grammar + */ + +inline.normal = merge({}, inline); + +/** + * Pedantic Inline Grammar + */ + +inline.pedantic = merge({}, inline.normal, { + strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/, + em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/, + link: edit(/^!?\[(label)\]\((.*?)\)/) + .replace('label', inline._label) + .getRegex(), + reflink: edit(/^!?\[(label)\]\s*\[([^\]]*)\]/) + .replace('label', inline._label) + .getRegex() +}); + +/** + * GFM Inline Grammar + */ + +inline.gfm = merge({}, inline.normal, { + escape: edit(inline.escape).replace('])', '~|])').getRegex(), + url: edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/) + .replace('email', inline._email) + .getRegex(), + _backpedal: /(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/, + del: /^~+(?=\S)([\s\S]*?\S)~+/, + text: edit(inline.text) + .replace(']|', '~]|') + .replace('|', '|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&\'*+/=?^_`{\\|}~-]+@|') + .getRegex() +}); + +/** + * GFM + Line Breaks Inline Grammar + */ + +inline.breaks = merge({}, inline.gfm, { + br: edit(inline.br).replace('{2,}', '*').getRegex(), + text: edit(inline.gfm.text).replace('{2,}', '*').getRegex() +}); + +/** + * Inline Lexer & Compiler + */ + +function InlineLexer(links, options) { + this.options = options || marked.defaults; + this.links = links; + this.rules = inline.normal; + this.renderer = this.options.renderer || new Renderer(); + this.renderer.options = this.options; + + if (!this.links) { + throw new Error('Tokens array requires a `links` property.'); + } + + if (this.options.pedantic) { + this.rules = inline.pedantic; + } else if (this.options.gfm) { + if (this.options.breaks) { + this.rules = inline.breaks; + } else { + this.rules = inline.gfm; + } + } +} + +/** + * Expose Inline Rules + */ + +InlineLexer.rules = inline; + +/** + * Static Lexing/Compiling Method + */ + +InlineLexer.output = function(src, links, options) { + var inline = new InlineLexer(links, options); + return inline.output(src); +}; + +/** + * Lexing/Compiling + */ + +InlineLexer.prototype.output = function(src) { + var out = '', + link, + text, + href, + title, + cap, + prevCapZero; + + while (src) { + // escape + if (cap = this.rules.escape.exec(src)) { + src = src.substring(cap[0].length); + out += cap[1]; + continue; + } + + // autolink + if (cap = this.rules.autolink.exec(src)) { + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = escape(this.mangle(cap[1])); + href = 'mailto:' + text; + } else { + text = escape(cap[1]); + href = text; + } + out += this.renderer.link(href, null, text); + continue; + } + + // url (gfm) + if (!this.inLink && (cap = this.rules.url.exec(src))) { + do { + prevCapZero = cap[0]; + cap[0] = this.rules._backpedal.exec(cap[0])[0]; + } while (prevCapZero !== cap[0]); + src = src.substring(cap[0].length); + if (cap[2] === '@') { + text = escape(cap[0]); + href = 'mailto:' + text; + } else { + text = escape(cap[0]); + if (cap[1] === 'www.') { + href = 'http://' + text; + } else { + href = text; + } + } + out += this.renderer.link(href, null, text); + continue; + } + + // tag + if (cap = this.rules.tag.exec(src)) { + if (!this.inLink && /^/i.test(cap[0])) { + this.inLink = false; + } + src = src.substring(cap[0].length); + out += this.options.sanitize + ? this.options.sanitizer + ? this.options.sanitizer(cap[0]) + : escape(cap[0]) + : cap[0] + continue; + } + + // link + if (cap = this.rules.link.exec(src)) { + src = src.substring(cap[0].length); + this.inLink = true; + href = cap[2]; + if (this.options.pedantic) { + link = /^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(href); + + if (link) { + href = link[1]; + title = link[3]; + } else { + title = ''; + } + } else { + title = cap[3] ? cap[3].slice(1, -1) : ''; + } + href = href.trim().replace(/^<([\s\S]*)>$/, '$1'); + out += this.outputLink(cap, { + href: InlineLexer.escapes(href), + title: InlineLexer.escapes(title) + }); + this.inLink = false; + continue; + } + + // reflink, nolink + if ((cap = this.rules.reflink.exec(src)) + || (cap = this.rules.nolink.exec(src))) { + src = src.substring(cap[0].length); + link = (cap[2] || cap[1]).replace(/\s+/g, ' '); + link = this.links[link.toLowerCase()]; + if (!link || !link.href) { + out += cap[0].charAt(0); + src = cap[0].substring(1) + src; + continue; + } + this.inLink = true; + out += this.outputLink(cap, link); + this.inLink = false; + continue; + } + + // strong + if (cap = this.rules.strong.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.strong(this.output(cap[4] || cap[3] || cap[2] || cap[1])); + continue; + } + + // em + if (cap = this.rules.em.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.em(this.output(cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1])); + continue; + } + + // code + if (cap = this.rules.code.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.codespan(escape(cap[2].trim(), true)); + continue; + } + + // br + if (cap = this.rules.br.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.br(); + continue; + } + + // del (gfm) + if (cap = this.rules.del.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.del(this.output(cap[1])); + continue; + } + + // text + if (cap = this.rules.text.exec(src)) { + src = src.substring(cap[0].length); + out += this.renderer.text(escape(this.smartypants(cap[0]))); + continue; + } + + if (src) { + throw new Error('Infinite loop on byte: ' + src.charCodeAt(0)); + } + } + + return out; +}; + +InlineLexer.escapes = function(text) { + return text ? text.replace(InlineLexer.rules._escapes, '$1') : text; +} + +/** + * Compile Link + */ + +InlineLexer.prototype.outputLink = function(cap, link) { + var href = link.href, + title = link.title ? escape(link.title) : null; + + return cap[0].charAt(0) !== '!' + ? this.renderer.link(href, title, this.output(cap[1])) + : this.renderer.image(href, title, escape(cap[1])); +}; + +/** + * Smartypants Transformations + */ + +InlineLexer.prototype.smartypants = function(text) { + if (!this.options.smartypants) return text; + return text + // em-dashes + .replace(/---/g, '\u2014') + // en-dashes + .replace(/--/g, '\u2013') + // opening singles + .replace(/(^|[-\u2014/(\[{"\s])'/g, '$1\u2018') + // closing singles & apostrophes + .replace(/'/g, '\u2019') + // opening doubles + .replace(/(^|[-\u2014/(\[{\u2018\s])"/g, '$1\u201c') + // closing doubles + .replace(/"/g, '\u201d') + // ellipses + .replace(/\.{3}/g, '\u2026'); +}; + +/** + * Mangle Links + */ + +InlineLexer.prototype.mangle = function(text) { + if (!this.options.mangle) return text; + var out = '', + l = text.length, + i = 0, + ch; + + for (; i < l; i++) { + ch = text.charCodeAt(i); + if (Math.random() > 0.5) { + ch = 'x' + ch.toString(16); + } + out += '&#' + ch + ';'; + } + + return out; +}; + +/** + * Renderer + */ + +function Renderer(options) { + this.options = options || marked.defaults; +} + +Renderer.prototype.code = function(code, lang, escaped) { + if (this.options.highlight) { + var out = this.options.highlight(code, lang); + if (out != null && out !== code) { + escaped = true; + code = out; + } + } + + if (!lang) { + return '
'
+      + (escaped ? code : escape(code, true))
+      + '
'; + } + + return '
'
+    + (escaped ? code : escape(code, true))
+    + '
\n'; +}; + +Renderer.prototype.blockquote = function(quote) { + return '
\n' + quote + '
\n'; +}; + +Renderer.prototype.html = function(html) { + return html; +}; + +Renderer.prototype.heading = function(text, level, raw) { + if (this.options.headerIds) { + return '' + + text + + '\n'; + } + // ignore IDs + return '' + text + '\n'; +}; + +Renderer.prototype.hr = function() { + return this.options.xhtml ? '
\n' : '
\n'; +}; + +Renderer.prototype.list = function(body, ordered, start) { + var type = ordered ? 'ol' : 'ul', + startatt = (ordered && start !== 1) ? (' start="' + start + '"') : ''; + return '<' + type + startatt + '>\n' + body + '\n'; +}; + +Renderer.prototype.listitem = function(text) { + return '
  • ' + text + '
  • \n'; +}; + +Renderer.prototype.checkbox = function(checked) { + return ' '; +} + +Renderer.prototype.paragraph = function(text) { + return '

    ' + text + '

    \n'; +}; + +Renderer.prototype.table = function(header, body) { + if (body) body = '' + body + ''; + + return '\n' + + '\n' + + header + + '\n' + + body + + '
    \n'; +}; + +Renderer.prototype.tablerow = function(content) { + return '\n' + content + '\n'; +}; + +Renderer.prototype.tablecell = function(content, flags) { + var type = flags.header ? 'th' : 'td'; + var tag = flags.align + ? '<' + type + ' align="' + flags.align + '">' + : '<' + type + '>'; + return tag + content + '\n'; +}; + +// span level renderer +Renderer.prototype.strong = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.em = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.codespan = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.br = function() { + return this.options.xhtml ? '
    ' : '
    '; +}; + +Renderer.prototype.del = function(text) { + return '' + text + ''; +}; + +Renderer.prototype.link = function(href, title, text) { + if (this.options.sanitize) { + try { + var prot = decodeURIComponent(unescape(href)) + .replace(/[^\w:]/g, '') + .toLowerCase(); + } catch (e) { + return text; + } + if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) { + return text; + } + } + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + try { + href = encodeURI(href).replace(/%25/g, '%'); + } catch (e) { + return text; + } + var out = '
    '; + return out; +}; + +Renderer.prototype.image = function(href, title, text) { + if (this.options.baseUrl && !originIndependentUrl.test(href)) { + href = resolveUrl(this.options.baseUrl, href); + } + var out = '' + text + '' : '>'; + return out; +}; + +Renderer.prototype.text = function(text) { + return text; +}; + +/** + * TextRenderer + * returns only the textual part of the token + */ + +function TextRenderer() {} + +// no need for block level renderers + +TextRenderer.prototype.strong = +TextRenderer.prototype.em = +TextRenderer.prototype.codespan = +TextRenderer.prototype.del = +TextRenderer.prototype.text = function (text) { + return text; +} + +TextRenderer.prototype.link = +TextRenderer.prototype.image = function(href, title, text) { + return '' + text; +} + +TextRenderer.prototype.br = function() { + return ''; +} + +/** + * Parsing & Compiling + */ + +function Parser(options) { + this.tokens = []; + this.token = null; + this.options = options || marked.defaults; + this.options.renderer = this.options.renderer || new Renderer(); + this.renderer = this.options.renderer; + this.renderer.options = this.options; +} + +/** + * Static Parse Method + */ + +Parser.parse = function(src, options) { + var parser = new Parser(options); + return parser.parse(src); +}; + +/** + * Parse Loop + */ + +Parser.prototype.parse = function(src) { + this.inline = new InlineLexer(src.links, this.options); + // use an InlineLexer with a TextRenderer to extract pure text + this.inlineText = new InlineLexer( + src.links, + merge({}, this.options, {renderer: new TextRenderer()}) + ); + this.tokens = src.reverse(); + + var out = ''; + while (this.next()) { + out += this.tok(); + } + + return out; +}; + +/** + * Next Token + */ + +Parser.prototype.next = function() { + return this.token = this.tokens.pop(); +}; + +/** + * Preview Next Token + */ + +Parser.prototype.peek = function() { + return this.tokens[this.tokens.length - 1] || 0; +}; + +/** + * Parse Text Tokens + */ + +Parser.prototype.parseText = function() { + var body = this.token.text; + + while (this.peek().type === 'text') { + body += '\n' + this.next().text; + } + + return this.inline.output(body); +}; + +/** + * Parse Current Token + */ + +Parser.prototype.tok = function() { + switch (this.token.type) { + case 'space': { + return ''; + } + case 'hr': { + return this.renderer.hr(); + } + case 'heading': { + return this.renderer.heading( + this.inline.output(this.token.text), + this.token.depth, + unescape(this.inlineText.output(this.token.text))); + } + case 'code': { + return this.renderer.code(this.token.text, + this.token.lang, + this.token.escaped); + } + case 'table': { + var header = '', + body = '', + i, + row, + cell, + j; + + // header + cell = ''; + for (i = 0; i < this.token.header.length; i++) { + cell += this.renderer.tablecell( + this.inline.output(this.token.header[i]), + { header: true, align: this.token.align[i] } + ); + } + header += this.renderer.tablerow(cell); + + for (i = 0; i < this.token.cells.length; i++) { + row = this.token.cells[i]; + + cell = ''; + for (j = 0; j < row.length; j++) { + cell += this.renderer.tablecell( + this.inline.output(row[j]), + { header: false, align: this.token.align[j] } + ); + } + + body += this.renderer.tablerow(cell); + } + return this.renderer.table(header, body); + } + case 'blockquote_start': { + body = ''; + + while (this.next().type !== 'blockquote_end') { + body += this.tok(); + } + + return this.renderer.blockquote(body); + } + case 'list_start': { + body = ''; + var ordered = this.token.ordered, + start = this.token.start; + + while (this.next().type !== 'list_end') { + body += this.tok(); + } + + return this.renderer.list(body, ordered, start); + } + case 'list_item_start': { + body = ''; + var loose = this.token.loose; + + if (this.token.task) { + body += this.renderer.checkbox(this.token.checked); + } + + while (this.next().type !== 'list_item_end') { + body += !loose && this.token.type === 'text' + ? this.parseText() + : this.tok(); + } + + return this.renderer.listitem(body); + } + case 'html': { + // TODO parse inline content if parameter markdown=1 + return this.renderer.html(this.token.text); + } + case 'paragraph': { + return this.renderer.paragraph(this.inline.output(this.token.text)); + } + case 'text': { + return this.renderer.paragraph(this.parseText()); + } + } +}; + +/** + * Helpers + */ + +function escape(html, encode) { + return html + .replace(!encode ? /&(?!#?\w+;)/g : /&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function unescape(html) { + // explicitly match decimal, hex, and named HTML entities + return html.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig, function(_, n) { + n = n.toLowerCase(); + if (n === 'colon') return ':'; + if (n.charAt(0) === '#') { + return n.charAt(1) === 'x' + ? String.fromCharCode(parseInt(n.substring(2), 16)) + : String.fromCharCode(+n.substring(1)); + } + return ''; + }); +} + +function edit(regex, opt) { + regex = regex.source || regex; + opt = opt || ''; + return { + replace: function(name, val) { + val = val.source || val; + val = val.replace(/(^|[^\[])\^/g, '$1'); + regex = regex.replace(name, val); + return this; + }, + getRegex: function() { + return new RegExp(regex, opt); + } + }; +} + +function resolveUrl(base, href) { + if (!baseUrls[' ' + base]) { + // we can ignore everything in base after the last slash of its path component, + // but we might need to add _that_ + // https://tools.ietf.org/html/rfc3986#section-3 + if (/^[^:]+:\/*[^/]*$/.test(base)) { + baseUrls[' ' + base] = base + '/'; + } else { + baseUrls[' ' + base] = rtrim(base, '/', true); + } + } + base = baseUrls[' ' + base]; + + if (href.slice(0, 2) === '//') { + return base.replace(/:[\s\S]*/, ':') + href; + } else if (href.charAt(0) === '/') { + return base.replace(/(:\/*[^/]*)[\s\S]*/, '$1') + href; + } else { + return base + href; + } +} +var baseUrls = {}; +var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i; + +function noop() {} +noop.exec = noop; + +function merge(obj) { + var i = 1, + target, + key; + + for (; i < arguments.length; i++) { + target = arguments[i]; + for (key in target) { + if (Object.prototype.hasOwnProperty.call(target, key)) { + obj[key] = target[key]; + } + } + } + + return obj; +} + +function splitCells(tableRow, count) { + // ensure that every cell-delimiting pipe has a space + // before it to distinguish it from an escaped pipe + var row = tableRow.replace(/\|/g, function (match, offset, str) { + var escaped = false, + curr = offset; + while (--curr >= 0 && str[curr] === '\\') escaped = !escaped; + if (escaped) { + // odd number of slashes means | is escaped + // so we leave it alone + return '|'; + } else { + // add space before unescaped | + return ' |'; + } + }), + cells = row.split(/ \|/), + i = 0; + + if (cells.length > count) { + cells.splice(count); + } else { + while (cells.length < count) cells.push(''); + } + + for (; i < cells.length; i++) { + // leading or trailing whitespace is ignored per the gfm spec + cells[i] = cells[i].trim().replace(/\\\|/g, '|'); + } + return cells; +} + +// Remove trailing 'c's. Equivalent to str.replace(/c*$/, ''). +// /c*$/ is vulnerable to REDOS. +// invert: Remove suffix of non-c chars instead. Default falsey. +function rtrim(str, c, invert) { + if (str.length === 0) { + return ''; + } + + // Length of suffix matching the invert condition. + var suffLen = 0; + + // Step left until we fail to match the invert condition. + while (suffLen < str.length) { + var currChar = str.charAt(str.length - suffLen - 1); + if (currChar === c && !invert) { + suffLen++; + } else if (currChar !== c && invert) { + suffLen++; + } else { + break; + } + } + + return str.substr(0, str.length - suffLen); +} + +/** + * Marked + */ + +function marked(src, opt, callback) { + // throw error in case of non string input + if (typeof src === 'undefined' || src === null) { + throw new Error('marked(): input parameter is undefined or null'); + } + if (typeof src !== 'string') { + throw new Error('marked(): input parameter is of type ' + + Object.prototype.toString.call(src) + ', string expected'); + } + + if (callback || typeof opt === 'function') { + if (!callback) { + callback = opt; + opt = null; + } + + opt = merge({}, marked.defaults, opt || {}); + + var highlight = opt.highlight, + tokens, + pending, + i = 0; + + try { + tokens = Lexer.lex(src, opt) + } catch (e) { + return callback(e); + } + + pending = tokens.length; + + var done = function(err) { + if (err) { + opt.highlight = highlight; + return callback(err); + } + + var out; + + try { + out = Parser.parse(tokens, opt); + } catch (e) { + err = e; + } + + opt.highlight = highlight; + + return err + ? callback(err) + : callback(null, out); + }; + + if (!highlight || highlight.length < 3) { + return done(); + } + + delete opt.highlight; + + if (!pending) return done(); + + for (; i < tokens.length; i++) { + (function(token) { + if (token.type !== 'code') { + return --pending || done(); + } + return highlight(token.text, token.lang, function(err, code) { + if (err) return done(err); + if (code == null || code === token.text) { + return --pending || done(); + } + token.text = code; + token.escaped = true; + --pending || done(); + }); + })(tokens[i]); + } + + return; + } + try { + if (opt) opt = merge({}, marked.defaults, opt); + return Parser.parse(Lexer.lex(src, opt), opt); + } catch (e) { + e.message += '\nPlease report this to https://github.com/markedjs/marked.'; + if ((opt || marked.defaults).silent) { + return '

    An error occurred:

    '
    +        + escape(e.message + '', true)
    +        + '
    '; + } + throw e; + } +} + +/** + * Options + */ + +marked.options = +marked.setOptions = function(opt) { + merge(marked.defaults, opt); + return marked; +}; + +marked.getDefaults = function () { + return { + baseUrl: null, + breaks: false, + gfm: true, + headerIds: true, + headerPrefix: '', + highlight: null, + langPrefix: 'language-', + mangle: true, + pedantic: false, + renderer: new Renderer(), + sanitize: false, + sanitizer: null, + silent: false, + smartLists: false, + smartypants: false, + tables: true, + xhtml: false + }; +} + +marked.defaults = marked.getDefaults(); + +/** + * Expose + */ + +marked.Parser = Parser; +marked.parser = Parser.parse; + +marked.Renderer = Renderer; +marked.TextRenderer = TextRenderer; + +marked.Lexer = Lexer; +marked.lexer = Lexer.lex; + +marked.InlineLexer = InlineLexer; +marked.inlineLexer = InlineLexer.output; + +marked.parse = marked; + +if (typeof module !== 'undefined' && typeof exports === 'object') { + module.exports = marked; +} else if (typeof define === 'function' && define.amd) { + define(function() { return marked; }); +} else { + root.marked = marked; +} +})(this || (typeof window !== 'undefined' ? window : global)); diff --git a/components/mpvue-citypicker/city-data/area.js b/components/mpvue-citypicker/city-data/area.js new file mode 100644 index 00000000..92dfc30a --- /dev/null +++ b/components/mpvue-citypicker/city-data/area.js @@ -0,0 +1,12542 @@ +/* eslint-disable */ +var areaData = [ + [ + [{ + "label": "东城区", + "value": "110101" + }, + { + "label": "西城区", + "value": "110102" + }, + { + "label": "朝阳区", + "value": "110105" + }, + { + "label": "丰台区", + "value": "110106" + }, + { + "label": "石景山区", + "value": "110107" + }, + { + "label": "海淀区", + "value": "110108" + }, + { + "label": "门头沟区", + "value": "110109" + }, + { + "label": "房山区", + "value": "110111" + }, + { + "label": "通州区", + "value": "110112" + }, + { + "label": "顺义区", + "value": "110113" + }, + { + "label": "昌平区", + "value": "110114" + }, + { + "label": "大兴区", + "value": "110115" + }, + { + "label": "怀柔区", + "value": "110116" + }, + { + "label": "平谷区", + "value": "110117" + }, + { + "label": "密云区", + "value": "110118" + }, + { + "label": "延庆区", + "value": "110119" + } + ] + ], + [ + [{ + "label": "和平区", + "value": "120101" + }, + { + "label": "河东区", + "value": "120102" + }, + { + "label": "河西区", + "value": "120103" + }, + { + "label": "南开区", + "value": "120104" + }, + { + "label": "河北区", + "value": "120105" + }, + { + "label": "红桥区", + "value": "120106" + }, + { + "label": "东丽区", + "value": "120110" + }, + { + "label": "西青区", + "value": "120111" + }, + { + "label": "津南区", + "value": "120112" + }, + { + "label": "北辰区", + "value": "120113" + }, + { + "label": "武清区", + "value": "120114" + }, + { + "label": "宝坻区", + "value": "120115" + }, + { + "label": "滨海新区", + "value": "120116" + }, + { + "label": "宁河区", + "value": "120117" + }, + { + "label": "静海区", + "value": "120118" + }, + { + "label": "蓟州区", + "value": "120119" + } + ] + ], + [ + [{ + "label": "长安区", + "value": "130102" + }, + { + "label": "桥西区", + "value": "130104" + }, + { + "label": "新华区", + "value": "130105" + }, + { + "label": "井陉矿区", + "value": "130107" + }, + { + "label": "裕华区", + "value": "130108" + }, + { + "label": "藁城区", + "value": "130109" + }, + { + "label": "鹿泉区", + "value": "130110" + }, + { + "label": "栾城区", + "value": "130111" + }, + { + "label": "井陉县", + "value": "130121" + }, + { + "label": "正定县", + "value": "130123" + }, + { + "label": "行唐县", + "value": "130125" + }, + { + "label": "灵寿县", + "value": "130126" + }, + { + "label": "高邑县", + "value": "130127" + }, + { + "label": "深泽县", + "value": "130128" + }, + { + "label": "赞皇县", + "value": "130129" + }, + { + "label": "无极县", + "value": "130130" + }, + { + "label": "平山县", + "value": "130131" + }, + { + "label": "元氏县", + "value": "130132" + }, + { + "label": "赵县", + "value": "130133" + }, + { + "label": "石家庄高新技术产业开发区", + "value": "130171" + }, + { + "label": "石家庄循环化工园区", + "value": "130172" + }, + { + "label": "辛集市", + "value": "130181" + }, + { + "label": "晋州市", + "value": "130183" + }, + { + "label": "新乐市", + "value": "130184" + } + ], + [{ + "label": "路南区", + "value": "130202" + }, + { + "label": "路北区", + "value": "130203" + }, + { + "label": "古冶区", + "value": "130204" + }, + { + "label": "开平区", + "value": "130205" + }, + { + "label": "丰南区", + "value": "130207" + }, + { + "label": "丰润区", + "value": "130208" + }, + { + "label": "曹妃甸区", + "value": "130209" + }, + { + "label": "滦县", + "value": "130223" + }, + { + "label": "滦南县", + "value": "130224" + }, + { + "label": "乐亭县", + "value": "130225" + }, + { + "label": "迁西县", + "value": "130227" + }, + { + "label": "玉田县", + "value": "130229" + }, + { + "label": "唐山市芦台经济技术开发区", + "value": "130271" + }, + { + "label": "唐山市汉沽管理区", + "value": "130272" + }, + { + "label": "唐山高新技术产业开发区", + "value": "130273" + }, + { + "label": "河北唐山海港经济开发区", + "value": "130274" + }, + { + "label": "遵化市", + "value": "130281" + }, + { + "label": "迁安市", + "value": "130283" + } + ], + [{ + "label": "海港区", + "value": "130302" + }, + { + "label": "山海关区", + "value": "130303" + }, + { + "label": "北戴河区", + "value": "130304" + }, + { + "label": "抚宁区", + "value": "130306" + }, + { + "label": "青龙满族自治县", + "value": "130321" + }, + { + "label": "昌黎县", + "value": "130322" + }, + { + "label": "卢龙县", + "value": "130324" + }, + { + "label": "秦皇岛市经济技术开发区", + "value": "130371" + }, + { + "label": "北戴河新区", + "value": "130372" + } + ], + [{ + "label": "邯山区", + "value": "130402" + }, + { + "label": "丛台区", + "value": "130403" + }, + { + "label": "复兴区", + "value": "130404" + }, + { + "label": "峰峰矿区", + "value": "130406" + }, + { + "label": "肥乡区", + "value": "130407" + }, + { + "label": "永年区", + "value": "130408" + }, + { + "label": "临漳县", + "value": "130423" + }, + { + "label": "成安县", + "value": "130424" + }, + { + "label": "大名县", + "value": "130425" + }, + { + "label": "涉县", + "value": "130426" + }, + { + "label": "磁县", + "value": "130427" + }, + { + "label": "邱县", + "value": "130430" + }, + { + "label": "鸡泽县", + "value": "130431" + }, + { + "label": "广平县", + "value": "130432" + }, + { + "label": "馆陶县", + "value": "130433" + }, + { + "label": "魏县", + "value": "130434" + }, + { + "label": "曲周县", + "value": "130435" + }, + { + "label": "邯郸经济技术开发区", + "value": "130471" + }, + { + "label": "邯郸冀南新区", + "value": "130473" + }, + { + "label": "武安市", + "value": "130481" + } + ], + [{ + "label": "桥东区", + "value": "130502" + }, + { + "label": "桥西区", + "value": "130503" + }, + { + "label": "邢台县", + "value": "130521" + }, + { + "label": "临城县", + "value": "130522" + }, + { + "label": "内丘县", + "value": "130523" + }, + { + "label": "柏乡县", + "value": "130524" + }, + { + "label": "隆尧县", + "value": "130525" + }, + { + "label": "任县", + "value": "130526" + }, + { + "label": "南和县", + "value": "130527" + }, + { + "label": "宁晋县", + "value": "130528" + }, + { + "label": "巨鹿县", + "value": "130529" + }, + { + "label": "新河县", + "value": "130530" + }, + { + "label": "广宗县", + "value": "130531" + }, + { + "label": "平乡县", + "value": "130532" + }, + { + "label": "威县", + "value": "130533" + }, + { + "label": "清河县", + "value": "130534" + }, + { + "label": "临西县", + "value": "130535" + }, + { + "label": "河北邢台经济开发区", + "value": "130571" + }, + { + "label": "南宫市", + "value": "130581" + }, + { + "label": "沙河市", + "value": "130582" + } + ], + [{ + "label": "竞秀区", + "value": "130602" + }, + { + "label": "莲池区", + "value": "130606" + }, + { + "label": "满城区", + "value": "130607" + }, + { + "label": "清苑区", + "value": "130608" + }, + { + "label": "徐水区", + "value": "130609" + }, + { + "label": "涞水县", + "value": "130623" + }, + { + "label": "阜平县", + "value": "130624" + }, + { + "label": "定兴县", + "value": "130626" + }, + { + "label": "唐县", + "value": "130627" + }, + { + "label": "高阳县", + "value": "130628" + }, + { + "label": "容城县", + "value": "130629" + }, + { + "label": "涞源县", + "value": "130630" + }, + { + "label": "望都县", + "value": "130631" + }, + { + "label": "安新县", + "value": "130632" + }, + { + "label": "易县", + "value": "130633" + }, + { + "label": "曲阳县", + "value": "130634" + }, + { + "label": "蠡县", + "value": "130635" + }, + { + "label": "顺平县", + "value": "130636" + }, + { + "label": "博野县", + "value": "130637" + }, + { + "label": "雄县", + "value": "130638" + }, + { + "label": "保定高新技术产业开发区", + "value": "130671" + }, + { + "label": "保定白沟新城", + "value": "130672" + }, + { + "label": "涿州市", + "value": "130681" + }, + { + "label": "定州市", + "value": "130682" + }, + { + "label": "安国市", + "value": "130683" + }, + { + "label": "高碑店市", + "value": "130684" + } + ], + [{ + "label": "桥东区", + "value": "130702" + }, + { + "label": "桥西区", + "value": "130703" + }, + { + "label": "宣化区", + "value": "130705" + }, + { + "label": "下花园区", + "value": "130706" + }, + { + "label": "万全区", + "value": "130708" + }, + { + "label": "崇礼区", + "value": "130709" + }, + { + "label": "张北县", + "value": "130722" + }, + { + "label": "康保县", + "value": "130723" + }, + { + "label": "沽源县", + "value": "130724" + }, + { + "label": "尚义县", + "value": "130725" + }, + { + "label": "蔚县", + "value": "130726" + }, + { + "label": "阳原县", + "value": "130727" + }, + { + "label": "怀安县", + "value": "130728" + }, + { + "label": "怀来县", + "value": "130730" + }, + { + "label": "涿鹿县", + "value": "130731" + }, + { + "label": "赤城县", + "value": "130732" + }, + { + "label": "张家口市高新技术产业开发区", + "value": "130771" + }, + { + "label": "张家口市察北管理区", + "value": "130772" + }, + { + "label": "张家口市塞北管理区", + "value": "130773" + } + ], + [{ + "label": "双桥区", + "value": "130802" + }, + { + "label": "双滦区", + "value": "130803" + }, + { + "label": "鹰手营子矿区", + "value": "130804" + }, + { + "label": "承德县", + "value": "130821" + }, + { + "label": "兴隆县", + "value": "130822" + }, + { + "label": "滦平县", + "value": "130824" + }, + { + "label": "隆化县", + "value": "130825" + }, + { + "label": "丰宁满族自治县", + "value": "130826" + }, + { + "label": "宽城满族自治县", + "value": "130827" + }, + { + "label": "围场满族蒙古族自治县", + "value": "130828" + }, + { + "label": "承德高新技术产业开发区", + "value": "130871" + }, + { + "label": "平泉市", + "value": "130881" + } + ], + [{ + "label": "新华区", + "value": "130902" + }, + { + "label": "运河区", + "value": "130903" + }, + { + "label": "沧县", + "value": "130921" + }, + { + "label": "青县", + "value": "130922" + }, + { + "label": "东光县", + "value": "130923" + }, + { + "label": "海兴县", + "value": "130924" + }, + { + "label": "盐山县", + "value": "130925" + }, + { + "label": "肃宁县", + "value": "130926" + }, + { + "label": "南皮县", + "value": "130927" + }, + { + "label": "吴桥县", + "value": "130928" + }, + { + "label": "献县", + "value": "130929" + }, + { + "label": "孟村回族自治县", + "value": "130930" + }, + { + "label": "河北沧州经济开发区", + "value": "130971" + }, + { + "label": "沧州高新技术产业开发区", + "value": "130972" + }, + { + "label": "沧州渤海新区", + "value": "130973" + }, + { + "label": "泊头市", + "value": "130981" + }, + { + "label": "任丘市", + "value": "130982" + }, + { + "label": "黄骅市", + "value": "130983" + }, + { + "label": "河间市", + "value": "130984" + } + ], + [{ + "label": "安次区", + "value": "131002" + }, + { + "label": "广阳区", + "value": "131003" + }, + { + "label": "固安县", + "value": "131022" + }, + { + "label": "永清县", + "value": "131023" + }, + { + "label": "香河县", + "value": "131024" + }, + { + "label": "大城县", + "value": "131025" + }, + { + "label": "文安县", + "value": "131026" + }, + { + "label": "大厂回族自治县", + "value": "131028" + }, + { + "label": "廊坊经济技术开发区", + "value": "131071" + }, + { + "label": "霸州市", + "value": "131081" + }, + { + "label": "三河市", + "value": "131082" + } + ], + [{ + "label": "桃城区", + "value": "131102" + }, + { + "label": "冀州区", + "value": "131103" + }, + { + "label": "枣强县", + "value": "131121" + }, + { + "label": "武邑县", + "value": "131122" + }, + { + "label": "武强县", + "value": "131123" + }, + { + "label": "饶阳县", + "value": "131124" + }, + { + "label": "安平县", + "value": "131125" + }, + { + "label": "故城县", + "value": "131126" + }, + { + "label": "景县", + "value": "131127" + }, + { + "label": "阜城县", + "value": "131128" + }, + { + "label": "河北衡水经济开发区", + "value": "131171" + }, + { + "label": "衡水滨湖新区", + "value": "131172" + }, + { + "label": "深州市", + "value": "131182" + } + ] + ], + [ + [{ + "label": "小店区", + "value": "140105" + }, + { + "label": "迎泽区", + "value": "140106" + }, + { + "label": "杏花岭区", + "value": "140107" + }, + { + "label": "尖草坪区", + "value": "140108" + }, + { + "label": "万柏林区", + "value": "140109" + }, + { + "label": "晋源区", + "value": "140110" + }, + { + "label": "清徐县", + "value": "140121" + }, + { + "label": "阳曲县", + "value": "140122" + }, + { + "label": "娄烦县", + "value": "140123" + }, + { + "label": "山西转型综合改革示范区", + "value": "140171" + }, + { + "label": "古交市", + "value": "140181" + } + ], + [{ + "label": "城区", + "value": "140202" + }, + { + "label": "矿区", + "value": "140203" + }, + { + "label": "南郊区", + "value": "140211" + }, + { + "label": "新荣区", + "value": "140212" + }, + { + "label": "阳高县", + "value": "140221" + }, + { + "label": "天镇县", + "value": "140222" + }, + { + "label": "广灵县", + "value": "140223" + }, + { + "label": "灵丘县", + "value": "140224" + }, + { + "label": "浑源县", + "value": "140225" + }, + { + "label": "左云县", + "value": "140226" + }, + { + "label": "大同县", + "value": "140227" + }, + { + "label": "山西大同经济开发区", + "value": "140271" + } + ], + [{ + "label": "城区", + "value": "140302" + }, + { + "label": "矿区", + "value": "140303" + }, + { + "label": "郊区", + "value": "140311" + }, + { + "label": "平定县", + "value": "140321" + }, + { + "label": "盂县", + "value": "140322" + }, + { + "label": "山西阳泉经济开发区", + "value": "140371" + } + ], + [{ + "label": "城区", + "value": "140402" + }, + { + "label": "郊区", + "value": "140411" + }, + { + "label": "长治县", + "value": "140421" + }, + { + "label": "襄垣县", + "value": "140423" + }, + { + "label": "屯留县", + "value": "140424" + }, + { + "label": "平顺县", + "value": "140425" + }, + { + "label": "黎城县", + "value": "140426" + }, + { + "label": "壶关县", + "value": "140427" + }, + { + "label": "长子县", + "value": "140428" + }, + { + "label": "武乡县", + "value": "140429" + }, + { + "label": "沁县", + "value": "140430" + }, + { + "label": "沁源县", + "value": "140431" + }, + { + "label": "山西长治高新技术产业园区", + "value": "140471" + }, + { + "label": "潞城市", + "value": "140481" + } + ], + [{ + "label": "城区", + "value": "140502" + }, + { + "label": "沁水县", + "value": "140521" + }, + { + "label": "阳城县", + "value": "140522" + }, + { + "label": "陵川县", + "value": "140524" + }, + { + "label": "泽州县", + "value": "140525" + }, + { + "label": "高平市", + "value": "140581" + } + ], + [{ + "label": "朔城区", + "value": "140602" + }, + { + "label": "平鲁区", + "value": "140603" + }, + { + "label": "山阴县", + "value": "140621" + }, + { + "label": "应县", + "value": "140622" + }, + { + "label": "右玉县", + "value": "140623" + }, + { + "label": "怀仁县", + "value": "140624" + }, + { + "label": "山西朔州经济开发区", + "value": "140671" + } + ], + [{ + "label": "榆次区", + "value": "140702" + }, + { + "label": "榆社县", + "value": "140721" + }, + { + "label": "左权县", + "value": "140722" + }, + { + "label": "和顺县", + "value": "140723" + }, + { + "label": "昔阳县", + "value": "140724" + }, + { + "label": "寿阳县", + "value": "140725" + }, + { + "label": "太谷县", + "value": "140726" + }, + { + "label": "祁县", + "value": "140727" + }, + { + "label": "平遥县", + "value": "140728" + }, + { + "label": "灵石县", + "value": "140729" + }, + { + "label": "介休市", + "value": "140781" + } + ], + [{ + "label": "盐湖区", + "value": "140802" + }, + { + "label": "临猗县", + "value": "140821" + }, + { + "label": "万荣县", + "value": "140822" + }, + { + "label": "闻喜县", + "value": "140823" + }, + { + "label": "稷山县", + "value": "140824" + }, + { + "label": "新绛县", + "value": "140825" + }, + { + "label": "绛县", + "value": "140826" + }, + { + "label": "垣曲县", + "value": "140827" + }, + { + "label": "夏县", + "value": "140828" + }, + { + "label": "平陆县", + "value": "140829" + }, + { + "label": "芮城县", + "value": "140830" + }, + { + "label": "永济市", + "value": "140881" + }, + { + "label": "河津市", + "value": "140882" + } + ], + [{ + "label": "忻府区", + "value": "140902" + }, + { + "label": "定襄县", + "value": "140921" + }, + { + "label": "五台县", + "value": "140922" + }, + { + "label": "代县", + "value": "140923" + }, + { + "label": "繁峙县", + "value": "140924" + }, + { + "label": "宁武县", + "value": "140925" + }, + { + "label": "静乐县", + "value": "140926" + }, + { + "label": "神池县", + "value": "140927" + }, + { + "label": "五寨县", + "value": "140928" + }, + { + "label": "岢岚县", + "value": "140929" + }, + { + "label": "河曲县", + "value": "140930" + }, + { + "label": "保德县", + "value": "140931" + }, + { + "label": "偏关县", + "value": "140932" + }, + { + "label": "五台山风景名胜区", + "value": "140971" + }, + { + "label": "原平市", + "value": "140981" + } + ], + [{ + "label": "尧都区", + "value": "141002" + }, + { + "label": "曲沃县", + "value": "141021" + }, + { + "label": "翼城县", + "value": "141022" + }, + { + "label": "襄汾县", + "value": "141023" + }, + { + "label": "洪洞县", + "value": "141024" + }, + { + "label": "古县", + "value": "141025" + }, + { + "label": "安泽县", + "value": "141026" + }, + { + "label": "浮山县", + "value": "141027" + }, + { + "label": "吉县", + "value": "141028" + }, + { + "label": "乡宁县", + "value": "141029" + }, + { + "label": "大宁县", + "value": "141030" + }, + { + "label": "隰县", + "value": "141031" + }, + { + "label": "永和县", + "value": "141032" + }, + { + "label": "蒲县", + "value": "141033" + }, + { + "label": "汾西县", + "value": "141034" + }, + { + "label": "侯马市", + "value": "141081" + }, + { + "label": "霍州市", + "value": "141082" + } + ], + [{ + "label": "离石区", + "value": "141102" + }, + { + "label": "文水县", + "value": "141121" + }, + { + "label": "交城县", + "value": "141122" + }, + { + "label": "兴县", + "value": "141123" + }, + { + "label": "临县", + "value": "141124" + }, + { + "label": "柳林县", + "value": "141125" + }, + { + "label": "石楼县", + "value": "141126" + }, + { + "label": "岚县", + "value": "141127" + }, + { + "label": "方山县", + "value": "141128" + }, + { + "label": "中阳县", + "value": "141129" + }, + { + "label": "交口县", + "value": "141130" + }, + { + "label": "孝义市", + "value": "141181" + }, + { + "label": "汾阳市", + "value": "141182" + } + ] + ], + [ + [{ + "label": "新城区", + "value": "150102" + }, + { + "label": "回民区", + "value": "150103" + }, + { + "label": "玉泉区", + "value": "150104" + }, + { + "label": "赛罕区", + "value": "150105" + }, + { + "label": "土默特左旗", + "value": "150121" + }, + { + "label": "托克托县", + "value": "150122" + }, + { + "label": "和林格尔县", + "value": "150123" + }, + { + "label": "清水河县", + "value": "150124" + }, + { + "label": "武川县", + "value": "150125" + }, + { + "label": "呼和浩特金海工业园区", + "value": "150171" + }, + { + "label": "呼和浩特经济技术开发区", + "value": "150172" + } + ], + [{ + "label": "东河区", + "value": "150202" + }, + { + "label": "昆都仑区", + "value": "150203" + }, + { + "label": "青山区", + "value": "150204" + }, + { + "label": "石拐区", + "value": "150205" + }, + { + "label": "白云鄂博矿区", + "value": "150206" + }, + { + "label": "九原区", + "value": "150207" + }, + { + "label": "土默特右旗", + "value": "150221" + }, + { + "label": "固阳县", + "value": "150222" + }, + { + "label": "达尔罕茂明安联合旗", + "value": "150223" + }, + { + "label": "包头稀土高新技术产业开发区", + "value": "150271" + } + ], + [{ + "label": "海勃湾区", + "value": "150302" + }, + { + "label": "海南区", + "value": "150303" + }, + { + "label": "乌达区", + "value": "150304" + } + ], + [{ + "label": "红山区", + "value": "150402" + }, + { + "label": "元宝山区", + "value": "150403" + }, + { + "label": "松山区", + "value": "150404" + }, + { + "label": "阿鲁科尔沁旗", + "value": "150421" + }, + { + "label": "巴林左旗", + "value": "150422" + }, + { + "label": "巴林右旗", + "value": "150423" + }, + { + "label": "林西县", + "value": "150424" + }, + { + "label": "克什克腾旗", + "value": "150425" + }, + { + "label": "翁牛特旗", + "value": "150426" + }, + { + "label": "喀喇沁旗", + "value": "150428" + }, + { + "label": "宁城县", + "value": "150429" + }, + { + "label": "敖汉旗", + "value": "150430" + } + ], + [{ + "label": "科尔沁区", + "value": "150502" + }, + { + "label": "科尔沁左翼中旗", + "value": "150521" + }, + { + "label": "科尔沁左翼后旗", + "value": "150522" + }, + { + "label": "开鲁县", + "value": "150523" + }, + { + "label": "库伦旗", + "value": "150524" + }, + { + "label": "奈曼旗", + "value": "150525" + }, + { + "label": "扎鲁特旗", + "value": "150526" + }, + { + "label": "通辽经济技术开发区", + "value": "150571" + }, + { + "label": "霍林郭勒市", + "value": "150581" + } + ], + [{ + "label": "东胜区", + "value": "150602" + }, + { + "label": "康巴什区", + "value": "150603" + }, + { + "label": "达拉特旗", + "value": "150621" + }, + { + "label": "准格尔旗", + "value": "150622" + }, + { + "label": "鄂托克前旗", + "value": "150623" + }, + { + "label": "鄂托克旗", + "value": "150624" + }, + { + "label": "杭锦旗", + "value": "150625" + }, + { + "label": "乌审旗", + "value": "150626" + }, + { + "label": "伊金霍洛旗", + "value": "150627" + } + ], + [{ + "label": "海拉尔区", + "value": "150702" + }, + { + "label": "扎赉诺尔区", + "value": "150703" + }, + { + "label": "阿荣旗", + "value": "150721" + }, + { + "label": "莫力达瓦达斡尔族自治旗", + "value": "150722" + }, + { + "label": "鄂伦春自治旗", + "value": "150723" + }, + { + "label": "鄂温克族自治旗", + "value": "150724" + }, + { + "label": "陈巴尔虎旗", + "value": "150725" + }, + { + "label": "新巴尔虎左旗", + "value": "150726" + }, + { + "label": "新巴尔虎右旗", + "value": "150727" + }, + { + "label": "满洲里市", + "value": "150781" + }, + { + "label": "牙克石市", + "value": "150782" + }, + { + "label": "扎兰屯市", + "value": "150783" + }, + { + "label": "额尔古纳市", + "value": "150784" + }, + { + "label": "根河市", + "value": "150785" + } + ], + [{ + "label": "临河区", + "value": "150802" + }, + { + "label": "五原县", + "value": "150821" + }, + { + "label": "磴口县", + "value": "150822" + }, + { + "label": "乌拉特前旗", + "value": "150823" + }, + { + "label": "乌拉特中旗", + "value": "150824" + }, + { + "label": "乌拉特后旗", + "value": "150825" + }, + { + "label": "杭锦后旗", + "value": "150826" + } + ], + [{ + "label": "集宁区", + "value": "150902" + }, + { + "label": "卓资县", + "value": "150921" + }, + { + "label": "化德县", + "value": "150922" + }, + { + "label": "商都县", + "value": "150923" + }, + { + "label": "兴和县", + "value": "150924" + }, + { + "label": "凉城县", + "value": "150925" + }, + { + "label": "察哈尔右翼前旗", + "value": "150926" + }, + { + "label": "察哈尔右翼中旗", + "value": "150927" + }, + { + "label": "察哈尔右翼后旗", + "value": "150928" + }, + { + "label": "四子王旗", + "value": "150929" + }, + { + "label": "丰镇市", + "value": "150981" + } + ], + [{ + "label": "乌兰浩特市", + "value": "152201" + }, + { + "label": "阿尔山市", + "value": "152202" + }, + { + "label": "科尔沁右翼前旗", + "value": "152221" + }, + { + "label": "科尔沁右翼中旗", + "value": "152222" + }, + { + "label": "扎赉特旗", + "value": "152223" + }, + { + "label": "突泉县", + "value": "152224" + } + ], + [{ + "label": "二连浩特市", + "value": "152501" + }, + { + "label": "锡林浩特市", + "value": "152502" + }, + { + "label": "阿巴嘎旗", + "value": "152522" + }, + { + "label": "苏尼特左旗", + "value": "152523" + }, + { + "label": "苏尼特右旗", + "value": "152524" + }, + { + "label": "东乌珠穆沁旗", + "value": "152525" + }, + { + "label": "西乌珠穆沁旗", + "value": "152526" + }, + { + "label": "太仆寺旗", + "value": "152527" + }, + { + "label": "镶黄旗", + "value": "152528" + }, + { + "label": "正镶白旗", + "value": "152529" + }, + { + "label": "正蓝旗", + "value": "152530" + }, + { + "label": "多伦县", + "value": "152531" + }, + { + "label": "乌拉盖管委会", + "value": "152571" + } + ], + [{ + "label": "阿拉善左旗", + "value": "152921" + }, + { + "label": "阿拉善右旗", + "value": "152922" + }, + { + "label": "额济纳旗", + "value": "152923" + }, + { + "label": "内蒙古阿拉善经济开发区", + "value": "152971" + } + ] + ], + [ + [{ + "label": "和平区", + "value": "210102" + }, + { + "label": "沈河区", + "value": "210103" + }, + { + "label": "大东区", + "value": "210104" + }, + { + "label": "皇姑区", + "value": "210105" + }, + { + "label": "铁西区", + "value": "210106" + }, + { + "label": "苏家屯区", + "value": "210111" + }, + { + "label": "浑南区", + "value": "210112" + }, + { + "label": "沈北新区", + "value": "210113" + }, + { + "label": "于洪区", + "value": "210114" + }, + { + "label": "辽中区", + "value": "210115" + }, + { + "label": "康平县", + "value": "210123" + }, + { + "label": "法库县", + "value": "210124" + }, + { + "label": "新民市", + "value": "210181" + } + ], + [{ + "label": "中山区", + "value": "210202" + }, + { + "label": "西岗区", + "value": "210203" + }, + { + "label": "沙河口区", + "value": "210204" + }, + { + "label": "甘井子区", + "value": "210211" + }, + { + "label": "旅顺口区", + "value": "210212" + }, + { + "label": "金州区", + "value": "210213" + }, + { + "label": "普兰店区", + "value": "210214" + }, + { + "label": "长海县", + "value": "210224" + }, + { + "label": "瓦房店市", + "value": "210281" + }, + { + "label": "庄河市", + "value": "210283" + } + ], + [{ + "label": "铁东区", + "value": "210302" + }, + { + "label": "铁西区", + "value": "210303" + }, + { + "label": "立山区", + "value": "210304" + }, + { + "label": "千山区", + "value": "210311" + }, + { + "label": "台安县", + "value": "210321" + }, + { + "label": "岫岩满族自治县", + "value": "210323" + }, + { + "label": "海城市", + "value": "210381" + } + ], + [{ + "label": "新抚区", + "value": "210402" + }, + { + "label": "东洲区", + "value": "210403" + }, + { + "label": "望花区", + "value": "210404" + }, + { + "label": "顺城区", + "value": "210411" + }, + { + "label": "抚顺县", + "value": "210421" + }, + { + "label": "新宾满族自治县", + "value": "210422" + }, + { + "label": "清原满族自治县", + "value": "210423" + } + ], + [{ + "label": "平山区", + "value": "210502" + }, + { + "label": "溪湖区", + "value": "210503" + }, + { + "label": "明山区", + "value": "210504" + }, + { + "label": "南芬区", + "value": "210505" + }, + { + "label": "本溪满族自治县", + "value": "210521" + }, + { + "label": "桓仁满族自治县", + "value": "210522" + } + ], + [{ + "label": "元宝区", + "value": "210602" + }, + { + "label": "振兴区", + "value": "210603" + }, + { + "label": "振安区", + "value": "210604" + }, + { + "label": "宽甸满族自治县", + "value": "210624" + }, + { + "label": "东港市", + "value": "210681" + }, + { + "label": "凤城市", + "value": "210682" + } + ], + [{ + "label": "古塔区", + "value": "210702" + }, + { + "label": "凌河区", + "value": "210703" + }, + { + "label": "太和区", + "value": "210711" + }, + { + "label": "黑山县", + "value": "210726" + }, + { + "label": "义县", + "value": "210727" + }, + { + "label": "凌海市", + "value": "210781" + }, + { + "label": "北镇市", + "value": "210782" + } + ], + [{ + "label": "站前区", + "value": "210802" + }, + { + "label": "西市区", + "value": "210803" + }, + { + "label": "鲅鱼圈区", + "value": "210804" + }, + { + "label": "老边区", + "value": "210811" + }, + { + "label": "盖州市", + "value": "210881" + }, + { + "label": "大石桥市", + "value": "210882" + } + ], + [{ + "label": "海州区", + "value": "210902" + }, + { + "label": "新邱区", + "value": "210903" + }, + { + "label": "太平区", + "value": "210904" + }, + { + "label": "清河门区", + "value": "210905" + }, + { + "label": "细河区", + "value": "210911" + }, + { + "label": "阜新蒙古族自治县", + "value": "210921" + }, + { + "label": "彰武县", + "value": "210922" + } + ], + [{ + "label": "白塔区", + "value": "211002" + }, + { + "label": "文圣区", + "value": "211003" + }, + { + "label": "宏伟区", + "value": "211004" + }, + { + "label": "弓长岭区", + "value": "211005" + }, + { + "label": "太子河区", + "value": "211011" + }, + { + "label": "辽阳县", + "value": "211021" + }, + { + "label": "灯塔市", + "value": "211081" + } + ], + [{ + "label": "双台子区", + "value": "211102" + }, + { + "label": "兴隆台区", + "value": "211103" + }, + { + "label": "大洼区", + "value": "211104" + }, + { + "label": "盘山县", + "value": "211122" + } + ], + [{ + "label": "银州区", + "value": "211202" + }, + { + "label": "清河区", + "value": "211204" + }, + { + "label": "铁岭县", + "value": "211221" + }, + { + "label": "西丰县", + "value": "211223" + }, + { + "label": "昌图县", + "value": "211224" + }, + { + "label": "调兵山市", + "value": "211281" + }, + { + "label": "开原市", + "value": "211282" + } + ], + [{ + "label": "双塔区", + "value": "211302" + }, + { + "label": "龙城区", + "value": "211303" + }, + { + "label": "朝阳县", + "value": "211321" + }, + { + "label": "建平县", + "value": "211322" + }, + { + "label": "喀喇沁左翼蒙古族自治县", + "value": "211324" + }, + { + "label": "北票市", + "value": "211381" + }, + { + "label": "凌源市", + "value": "211382" + } + ], + [{ + "label": "连山区", + "value": "211402" + }, + { + "label": "龙港区", + "value": "211403" + }, + { + "label": "南票区", + "value": "211404" + }, + { + "label": "绥中县", + "value": "211421" + }, + { + "label": "建昌县", + "value": "211422" + }, + { + "label": "兴城市", + "value": "211481" + } + ] + ], + [ + [{ + "label": "南关区", + "value": "220102" + }, + { + "label": "宽城区", + "value": "220103" + }, + { + "label": "朝阳区", + "value": "220104" + }, + { + "label": "二道区", + "value": "220105" + }, + { + "label": "绿园区", + "value": "220106" + }, + { + "label": "双阳区", + "value": "220112" + }, + { + "label": "九台区", + "value": "220113" + }, + { + "label": "农安县", + "value": "220122" + }, + { + "label": "长春经济技术开发区", + "value": "220171" + }, + { + "label": "长春净月高新技术产业开发区", + "value": "220172" + }, + { + "label": "长春高新技术产业开发区", + "value": "220173" + }, + { + "label": "长春汽车经济技术开发区", + "value": "220174" + }, + { + "label": "榆树市", + "value": "220182" + }, + { + "label": "德惠市", + "value": "220183" + } + ], + [{ + "label": "昌邑区", + "value": "220202" + }, + { + "label": "龙潭区", + "value": "220203" + }, + { + "label": "船营区", + "value": "220204" + }, + { + "label": "丰满区", + "value": "220211" + }, + { + "label": "永吉县", + "value": "220221" + }, + { + "label": "吉林经济开发区", + "value": "220271" + }, + { + "label": "吉林高新技术产业开发区", + "value": "220272" + }, + { + "label": "吉林中国新加坡食品区", + "value": "220273" + }, + { + "label": "蛟河市", + "value": "220281" + }, + { + "label": "桦甸市", + "value": "220282" + }, + { + "label": "舒兰市", + "value": "220283" + }, + { + "label": "磐石市", + "value": "220284" + } + ], + [{ + "label": "铁西区", + "value": "220302" + }, + { + "label": "铁东区", + "value": "220303" + }, + { + "label": "梨树县", + "value": "220322" + }, + { + "label": "伊通满族自治县", + "value": "220323" + }, + { + "label": "公主岭市", + "value": "220381" + }, + { + "label": "双辽市", + "value": "220382" + } + ], + [{ + "label": "龙山区", + "value": "220402" + }, + { + "label": "西安区", + "value": "220403" + }, + { + "label": "东丰县", + "value": "220421" + }, + { + "label": "东辽县", + "value": "220422" + } + ], + [{ + "label": "东昌区", + "value": "220502" + }, + { + "label": "二道江区", + "value": "220503" + }, + { + "label": "通化县", + "value": "220521" + }, + { + "label": "辉南县", + "value": "220523" + }, + { + "label": "柳河县", + "value": "220524" + }, + { + "label": "梅河口市", + "value": "220581" + }, + { + "label": "集安市", + "value": "220582" + } + ], + [{ + "label": "浑江区", + "value": "220602" + }, + { + "label": "江源区", + "value": "220605" + }, + { + "label": "抚松县", + "value": "220621" + }, + { + "label": "靖宇县", + "value": "220622" + }, + { + "label": "长白朝鲜族自治县", + "value": "220623" + }, + { + "label": "临江市", + "value": "220681" + } + ], + [{ + "label": "宁江区", + "value": "220702" + }, + { + "label": "前郭尔罗斯蒙古族自治县", + "value": "220721" + }, + { + "label": "长岭县", + "value": "220722" + }, + { + "label": "乾安县", + "value": "220723" + }, + { + "label": "吉林松原经济开发区", + "value": "220771" + }, + { + "label": "扶余市", + "value": "220781" + } + ], + [{ + "label": "洮北区", + "value": "220802" + }, + { + "label": "镇赉县", + "value": "220821" + }, + { + "label": "通榆县", + "value": "220822" + }, + { + "label": "吉林白城经济开发区", + "value": "220871" + }, + { + "label": "洮南市", + "value": "220881" + }, + { + "label": "大安市", + "value": "220882" + } + ], + [{ + "label": "延吉市", + "value": "222401" + }, + { + "label": "图们市", + "value": "222402" + }, + { + "label": "敦化市", + "value": "222403" + }, + { + "label": "珲春市", + "value": "222404" + }, + { + "label": "龙井市", + "value": "222405" + }, + { + "label": "和龙市", + "value": "222406" + }, + { + "label": "汪清县", + "value": "222424" + }, + { + "label": "安图县", + "value": "222426" + } + ] + ], + [ + [{ + "label": "道里区", + "value": "230102" + }, + { + "label": "南岗区", + "value": "230103" + }, + { + "label": "道外区", + "value": "230104" + }, + { + "label": "平房区", + "value": "230108" + }, + { + "label": "松北区", + "value": "230109" + }, + { + "label": "香坊区", + "value": "230110" + }, + { + "label": "呼兰区", + "value": "230111" + }, + { + "label": "阿城区", + "value": "230112" + }, + { + "label": "双城区", + "value": "230113" + }, + { + "label": "依兰县", + "value": "230123" + }, + { + "label": "方正县", + "value": "230124" + }, + { + "label": "宾县", + "value": "230125" + }, + { + "label": "巴彦县", + "value": "230126" + }, + { + "label": "木兰县", + "value": "230127" + }, + { + "label": "通河县", + "value": "230128" + }, + { + "label": "延寿县", + "value": "230129" + }, + { + "label": "尚志市", + "value": "230183" + }, + { + "label": "五常市", + "value": "230184" + } + ], + [{ + "label": "龙沙区", + "value": "230202" + }, + { + "label": "建华区", + "value": "230203" + }, + { + "label": "铁锋区", + "value": "230204" + }, + { + "label": "昂昂溪区", + "value": "230205" + }, + { + "label": "富拉尔基区", + "value": "230206" + }, + { + "label": "碾子山区", + "value": "230207" + }, + { + "label": "梅里斯达斡尔族区", + "value": "230208" + }, + { + "label": "龙江县", + "value": "230221" + }, + { + "label": "依安县", + "value": "230223" + }, + { + "label": "泰来县", + "value": "230224" + }, + { + "label": "甘南县", + "value": "230225" + }, + { + "label": "富裕县", + "value": "230227" + }, + { + "label": "克山县", + "value": "230229" + }, + { + "label": "克东县", + "value": "230230" + }, + { + "label": "拜泉县", + "value": "230231" + }, + { + "label": "讷河市", + "value": "230281" + } + ], + [{ + "label": "鸡冠区", + "value": "230302" + }, + { + "label": "恒山区", + "value": "230303" + }, + { + "label": "滴道区", + "value": "230304" + }, + { + "label": "梨树区", + "value": "230305" + }, + { + "label": "城子河区", + "value": "230306" + }, + { + "label": "麻山区", + "value": "230307" + }, + { + "label": "鸡东县", + "value": "230321" + }, + { + "label": "虎林市", + "value": "230381" + }, + { + "label": "密山市", + "value": "230382" + } + ], + [{ + "label": "向阳区", + "value": "230402" + }, + { + "label": "工农区", + "value": "230403" + }, + { + "label": "南山区", + "value": "230404" + }, + { + "label": "兴安区", + "value": "230405" + }, + { + "label": "东山区", + "value": "230406" + }, + { + "label": "兴山区", + "value": "230407" + }, + { + "label": "萝北县", + "value": "230421" + }, + { + "label": "绥滨县", + "value": "230422" + } + ], + [{ + "label": "尖山区", + "value": "230502" + }, + { + "label": "岭东区", + "value": "230503" + }, + { + "label": "四方台区", + "value": "230505" + }, + { + "label": "宝山区", + "value": "230506" + }, + { + "label": "集贤县", + "value": "230521" + }, + { + "label": "友谊县", + "value": "230522" + }, + { + "label": "宝清县", + "value": "230523" + }, + { + "label": "饶河县", + "value": "230524" + } + ], + [{ + "label": "萨尔图区", + "value": "230602" + }, + { + "label": "龙凤区", + "value": "230603" + }, + { + "label": "让胡路区", + "value": "230604" + }, + { + "label": "红岗区", + "value": "230605" + }, + { + "label": "大同区", + "value": "230606" + }, + { + "label": "肇州县", + "value": "230621" + }, + { + "label": "肇源县", + "value": "230622" + }, + { + "label": "林甸县", + "value": "230623" + }, + { + "label": "杜尔伯特蒙古族自治县", + "value": "230624" + }, + { + "label": "大庆高新技术产业开发区", + "value": "230671" + } + ], + [{ + "label": "伊春区", + "value": "230702" + }, + { + "label": "南岔区", + "value": "230703" + }, + { + "label": "友好区", + "value": "230704" + }, + { + "label": "西林区", + "value": "230705" + }, + { + "label": "翠峦区", + "value": "230706" + }, + { + "label": "新青区", + "value": "230707" + }, + { + "label": "美溪区", + "value": "230708" + }, + { + "label": "金山屯区", + "value": "230709" + }, + { + "label": "五营区", + "value": "230710" + }, + { + "label": "乌马河区", + "value": "230711" + }, + { + "label": "汤旺河区", + "value": "230712" + }, + { + "label": "带岭区", + "value": "230713" + }, + { + "label": "乌伊岭区", + "value": "230714" + }, + { + "label": "红星区", + "value": "230715" + }, + { + "label": "上甘岭区", + "value": "230716" + }, + { + "label": "嘉荫县", + "value": "230722" + }, + { + "label": "铁力市", + "value": "230781" + } + ], + [{ + "label": "向阳区", + "value": "230803" + }, + { + "label": "前进区", + "value": "230804" + }, + { + "label": "东风区", + "value": "230805" + }, + { + "label": "郊区", + "value": "230811" + }, + { + "label": "桦南县", + "value": "230822" + }, + { + "label": "桦川县", + "value": "230826" + }, + { + "label": "汤原县", + "value": "230828" + }, + { + "label": "同江市", + "value": "230881" + }, + { + "label": "富锦市", + "value": "230882" + }, + { + "label": "抚远市", + "value": "230883" + } + ], + [{ + "label": "新兴区", + "value": "230902" + }, + { + "label": "桃山区", + "value": "230903" + }, + { + "label": "茄子河区", + "value": "230904" + }, + { + "label": "勃利县", + "value": "230921" + } + ], + [{ + "label": "东安区", + "value": "231002" + }, + { + "label": "阳明区", + "value": "231003" + }, + { + "label": "爱民区", + "value": "231004" + }, + { + "label": "西安区", + "value": "231005" + }, + { + "label": "林口县", + "value": "231025" + }, + { + "label": "牡丹江经济技术开发区", + "value": "231071" + }, + { + "label": "绥芬河市", + "value": "231081" + }, + { + "label": "海林市", + "value": "231083" + }, + { + "label": "宁安市", + "value": "231084" + }, + { + "label": "穆棱市", + "value": "231085" + }, + { + "label": "东宁市", + "value": "231086" + } + ], + [{ + "label": "爱辉区", + "value": "231102" + }, + { + "label": "嫩江县", + "value": "231121" + }, + { + "label": "逊克县", + "value": "231123" + }, + { + "label": "孙吴县", + "value": "231124" + }, + { + "label": "北安市", + "value": "231181" + }, + { + "label": "五大连池市", + "value": "231182" + } + ], + [{ + "label": "北林区", + "value": "231202" + }, + { + "label": "望奎县", + "value": "231221" + }, + { + "label": "兰西县", + "value": "231222" + }, + { + "label": "青冈县", + "value": "231223" + }, + { + "label": "庆安县", + "value": "231224" + }, + { + "label": "明水县", + "value": "231225" + }, + { + "label": "绥棱县", + "value": "231226" + }, + { + "label": "安达市", + "value": "231281" + }, + { + "label": "肇东市", + "value": "231282" + }, + { + "label": "海伦市", + "value": "231283" + } + ], + [{ + "label": "加格达奇区", + "value": "232701" + }, + { + "label": "松岭区", + "value": "232702" + }, + { + "label": "新林区", + "value": "232703" + }, + { + "label": "呼中区", + "value": "232704" + }, + { + "label": "呼玛县", + "value": "232721" + }, + { + "label": "塔河县", + "value": "232722" + }, + { + "label": "漠河县", + "value": "232723" + } + ] + ], + [ + [{ + "label": "黄浦区", + "value": "310101" + }, + { + "label": "徐汇区", + "value": "310104" + }, + { + "label": "长宁区", + "value": "310105" + }, + { + "label": "静安区", + "value": "310106" + }, + { + "label": "普陀区", + "value": "310107" + }, + { + "label": "虹口区", + "value": "310109" + }, + { + "label": "杨浦区", + "value": "310110" + }, + { + "label": "闵行区", + "value": "310112" + }, + { + "label": "宝山区", + "value": "310113" + }, + { + "label": "嘉定区", + "value": "310114" + }, + { + "label": "浦东新区", + "value": "310115" + }, + { + "label": "金山区", + "value": "310116" + }, + { + "label": "松江区", + "value": "310117" + }, + { + "label": "青浦区", + "value": "310118" + }, + { + "label": "奉贤区", + "value": "310120" + }, + { + "label": "崇明区", + "value": "310151" + } + ] + ], + [ + [{ + "label": "玄武区", + "value": "320102" + }, + { + "label": "秦淮区", + "value": "320104" + }, + { + "label": "建邺区", + "value": "320105" + }, + { + "label": "鼓楼区", + "value": "320106" + }, + { + "label": "浦口区", + "value": "320111" + }, + { + "label": "栖霞区", + "value": "320113" + }, + { + "label": "雨花台区", + "value": "320114" + }, + { + "label": "江宁区", + "value": "320115" + }, + { + "label": "六合区", + "value": "320116" + }, + { + "label": "溧水区", + "value": "320117" + }, + { + "label": "高淳区", + "value": "320118" + } + ], + [{ + "label": "锡山区", + "value": "320205" + }, + { + "label": "惠山区", + "value": "320206" + }, + { + "label": "滨湖区", + "value": "320211" + }, + { + "label": "梁溪区", + "value": "320213" + }, + { + "label": "新吴区", + "value": "320214" + }, + { + "label": "江阴市", + "value": "320281" + }, + { + "label": "宜兴市", + "value": "320282" + } + ], + [{ + "label": "鼓楼区", + "value": "320302" + }, + { + "label": "云龙区", + "value": "320303" + }, + { + "label": "贾汪区", + "value": "320305" + }, + { + "label": "泉山区", + "value": "320311" + }, + { + "label": "铜山区", + "value": "320312" + }, + { + "label": "丰县", + "value": "320321" + }, + { + "label": "沛县", + "value": "320322" + }, + { + "label": "睢宁县", + "value": "320324" + }, + { + "label": "徐州经济技术开发区", + "value": "320371" + }, + { + "label": "新沂市", + "value": "320381" + }, + { + "label": "邳州市", + "value": "320382" + } + ], + [{ + "label": "天宁区", + "value": "320402" + }, + { + "label": "钟楼区", + "value": "320404" + }, + { + "label": "新北区", + "value": "320411" + }, + { + "label": "武进区", + "value": "320412" + }, + { + "label": "金坛区", + "value": "320413" + }, + { + "label": "溧阳市", + "value": "320481" + } + ], + [{ + "label": "虎丘区", + "value": "320505" + }, + { + "label": "吴中区", + "value": "320506" + }, + { + "label": "相城区", + "value": "320507" + }, + { + "label": "姑苏区", + "value": "320508" + }, + { + "label": "吴江区", + "value": "320509" + }, + { + "label": "苏州工业园区", + "value": "320571" + }, + { + "label": "常熟市", + "value": "320581" + }, + { + "label": "张家港市", + "value": "320582" + }, + { + "label": "昆山市", + "value": "320583" + }, + { + "label": "太仓市", + "value": "320585" + } + ], + [{ + "label": "崇川区", + "value": "320602" + }, + { + "label": "港闸区", + "value": "320611" + }, + { + "label": "通州区", + "value": "320612" + }, + { + "label": "海安县", + "value": "320621" + }, + { + "label": "如东县", + "value": "320623" + }, + { + "label": "南通经济技术开发区", + "value": "320671" + }, + { + "label": "启东市", + "value": "320681" + }, + { + "label": "如皋市", + "value": "320682" + }, + { + "label": "海门市", + "value": "320684" + } + ], + [{ + "label": "连云区", + "value": "320703" + }, + { + "label": "海州区", + "value": "320706" + }, + { + "label": "赣榆区", + "value": "320707" + }, + { + "label": "东海县", + "value": "320722" + }, + { + "label": "灌云县", + "value": "320723" + }, + { + "label": "灌南县", + "value": "320724" + }, + { + "label": "连云港经济技术开发区", + "value": "320771" + }, + { + "label": "连云港高新技术产业开发区", + "value": "320772" + } + ], + [{ + "label": "淮安区", + "value": "320803" + }, + { + "label": "淮阴区", + "value": "320804" + }, + { + "label": "清江浦区", + "value": "320812" + }, + { + "label": "洪泽区", + "value": "320813" + }, + { + "label": "涟水县", + "value": "320826" + }, + { + "label": "盱眙县", + "value": "320830" + }, + { + "label": "金湖县", + "value": "320831" + }, + { + "label": "淮安经济技术开发区", + "value": "320871" + } + ], + [{ + "label": "亭湖区", + "value": "320902" + }, + { + "label": "盐都区", + "value": "320903" + }, + { + "label": "大丰区", + "value": "320904" + }, + { + "label": "响水县", + "value": "320921" + }, + { + "label": "滨海县", + "value": "320922" + }, + { + "label": "阜宁县", + "value": "320923" + }, + { + "label": "射阳县", + "value": "320924" + }, + { + "label": "建湖县", + "value": "320925" + }, + { + "label": "盐城经济技术开发区", + "value": "320971" + }, + { + "label": "东台市", + "value": "320981" + } + ], + [{ + "label": "广陵区", + "value": "321002" + }, + { + "label": "邗江区", + "value": "321003" + }, + { + "label": "江都区", + "value": "321012" + }, + { + "label": "宝应县", + "value": "321023" + }, + { + "label": "扬州经济技术开发区", + "value": "321071" + }, + { + "label": "仪征市", + "value": "321081" + }, + { + "label": "高邮市", + "value": "321084" + } + ], + [{ + "label": "京口区", + "value": "321102" + }, + { + "label": "润州区", + "value": "321111" + }, + { + "label": "丹徒区", + "value": "321112" + }, + { + "label": "镇江新区", + "value": "321171" + }, + { + "label": "丹阳市", + "value": "321181" + }, + { + "label": "扬中市", + "value": "321182" + }, + { + "label": "句容市", + "value": "321183" + } + ], + [{ + "label": "海陵区", + "value": "321202" + }, + { + "label": "高港区", + "value": "321203" + }, + { + "label": "姜堰区", + "value": "321204" + }, + { + "label": "泰州医药高新技术产业开发区", + "value": "321271" + }, + { + "label": "兴化市", + "value": "321281" + }, + { + "label": "靖江市", + "value": "321282" + }, + { + "label": "泰兴市", + "value": "321283" + } + ], + [{ + "label": "宿城区", + "value": "321302" + }, + { + "label": "宿豫区", + "value": "321311" + }, + { + "label": "沭阳县", + "value": "321322" + }, + { + "label": "泗阳县", + "value": "321323" + }, + { + "label": "泗洪县", + "value": "321324" + }, + { + "label": "宿迁经济技术开发区", + "value": "321371" + } + ] + ], + [ + [{ + "label": "上城区", + "value": "330102" + }, + { + "label": "下城区", + "value": "330103" + }, + { + "label": "江干区", + "value": "330104" + }, + { + "label": "拱墅区", + "value": "330105" + }, + { + "label": "西湖区", + "value": "330106" + }, + { + "label": "滨江区", + "value": "330108" + }, + { + "label": "萧山区", + "value": "330109" + }, + { + "label": "余杭区", + "value": "330110" + }, + { + "label": "富阳区", + "value": "330111" + }, + { + "label": "临安区", + "value": "330112" + }, + { + "label": "桐庐县", + "value": "330122" + }, + { + "label": "淳安县", + "value": "330127" + }, + { + "label": "建德市", + "value": "330182" + } + ], + [{ + "label": "海曙区", + "value": "330203" + }, + { + "label": "江北区", + "value": "330205" + }, + { + "label": "北仑区", + "value": "330206" + }, + { + "label": "镇海区", + "value": "330211" + }, + { + "label": "鄞州区", + "value": "330212" + }, + { + "label": "奉化区", + "value": "330213" + }, + { + "label": "象山县", + "value": "330225" + }, + { + "label": "宁海县", + "value": "330226" + }, + { + "label": "余姚市", + "value": "330281" + }, + { + "label": "慈溪市", + "value": "330282" + } + ], + [{ + "label": "鹿城区", + "value": "330302" + }, + { + "label": "龙湾区", + "value": "330303" + }, + { + "label": "瓯海区", + "value": "330304" + }, + { + "label": "洞头区", + "value": "330305" + }, + { + "label": "永嘉县", + "value": "330324" + }, + { + "label": "平阳县", + "value": "330326" + }, + { + "label": "苍南县", + "value": "330327" + }, + { + "label": "文成县", + "value": "330328" + }, + { + "label": "泰顺县", + "value": "330329" + }, + { + "label": "温州经济技术开发区", + "value": "330371" + }, + { + "label": "瑞安市", + "value": "330381" + }, + { + "label": "乐清市", + "value": "330382" + } + ], + [{ + "label": "南湖区", + "value": "330402" + }, + { + "label": "秀洲区", + "value": "330411" + }, + { + "label": "嘉善县", + "value": "330421" + }, + { + "label": "海盐县", + "value": "330424" + }, + { + "label": "海宁市", + "value": "330481" + }, + { + "label": "平湖市", + "value": "330482" + }, + { + "label": "桐乡市", + "value": "330483" + } + ], + [{ + "label": "吴兴区", + "value": "330502" + }, + { + "label": "南浔区", + "value": "330503" + }, + { + "label": "德清县", + "value": "330521" + }, + { + "label": "长兴县", + "value": "330522" + }, + { + "label": "安吉县", + "value": "330523" + } + ], + [{ + "label": "越城区", + "value": "330602" + }, + { + "label": "柯桥区", + "value": "330603" + }, + { + "label": "上虞区", + "value": "330604" + }, + { + "label": "新昌县", + "value": "330624" + }, + { + "label": "诸暨市", + "value": "330681" + }, + { + "label": "嵊州市", + "value": "330683" + } + ], + [{ + "label": "婺城区", + "value": "330702" + }, + { + "label": "金东区", + "value": "330703" + }, + { + "label": "武义县", + "value": "330723" + }, + { + "label": "浦江县", + "value": "330726" + }, + { + "label": "磐安县", + "value": "330727" + }, + { + "label": "兰溪市", + "value": "330781" + }, + { + "label": "义乌市", + "value": "330782" + }, + { + "label": "东阳市", + "value": "330783" + }, + { + "label": "永康市", + "value": "330784" + } + ], + [{ + "label": "柯城区", + "value": "330802" + }, + { + "label": "衢江区", + "value": "330803" + }, + { + "label": "常山县", + "value": "330822" + }, + { + "label": "开化县", + "value": "330824" + }, + { + "label": "龙游县", + "value": "330825" + }, + { + "label": "江山市", + "value": "330881" + } + ], + [{ + "label": "定海区", + "value": "330902" + }, + { + "label": "普陀区", + "value": "330903" + }, + { + "label": "岱山县", + "value": "330921" + }, + { + "label": "嵊泗县", + "value": "330922" + } + ], + [{ + "label": "椒江区", + "value": "331002" + }, + { + "label": "黄岩区", + "value": "331003" + }, + { + "label": "路桥区", + "value": "331004" + }, + { + "label": "三门县", + "value": "331022" + }, + { + "label": "天台县", + "value": "331023" + }, + { + "label": "仙居县", + "value": "331024" + }, + { + "label": "温岭市", + "value": "331081" + }, + { + "label": "临海市", + "value": "331082" + }, + { + "label": "玉环市", + "value": "331083" + } + ], + [{ + "label": "莲都区", + "value": "331102" + }, + { + "label": "青田县", + "value": "331121" + }, + { + "label": "缙云县", + "value": "331122" + }, + { + "label": "遂昌县", + "value": "331123" + }, + { + "label": "松阳县", + "value": "331124" + }, + { + "label": "云和县", + "value": "331125" + }, + { + "label": "庆元县", + "value": "331126" + }, + { + "label": "景宁畲族自治县", + "value": "331127" + }, + { + "label": "龙泉市", + "value": "331181" + } + ] + ], + [ + [{ + "label": "瑶海区", + "value": "340102" + }, + { + "label": "庐阳区", + "value": "340103" + }, + { + "label": "蜀山区", + "value": "340104" + }, + { + "label": "包河区", + "value": "340111" + }, + { + "label": "长丰县", + "value": "340121" + }, + { + "label": "肥东县", + "value": "340122" + }, + { + "label": "肥西县", + "value": "340123" + }, + { + "label": "庐江县", + "value": "340124" + }, + { + "label": "合肥高新技术产业开发区", + "value": "340171" + }, + { + "label": "合肥经济技术开发区", + "value": "340172" + }, + { + "label": "合肥新站高新技术产业开发区", + "value": "340173" + }, + { + "label": "巢湖市", + "value": "340181" + } + ], + [{ + "label": "镜湖区", + "value": "340202" + }, + { + "label": "弋江区", + "value": "340203" + }, + { + "label": "鸠江区", + "value": "340207" + }, + { + "label": "三山区", + "value": "340208" + }, + { + "label": "芜湖县", + "value": "340221" + }, + { + "label": "繁昌县", + "value": "340222" + }, + { + "label": "南陵县", + "value": "340223" + }, + { + "label": "无为县", + "value": "340225" + }, + { + "label": "芜湖经济技术开发区", + "value": "340271" + }, + { + "label": "安徽芜湖长江大桥经济开发区", + "value": "340272" + } + ], + [{ + "label": "龙子湖区", + "value": "340302" + }, + { + "label": "蚌山区", + "value": "340303" + }, + { + "label": "禹会区", + "value": "340304" + }, + { + "label": "淮上区", + "value": "340311" + }, + { + "label": "怀远县", + "value": "340321" + }, + { + "label": "五河县", + "value": "340322" + }, + { + "label": "固镇县", + "value": "340323" + }, + { + "label": "蚌埠市高新技术开发区", + "value": "340371" + }, + { + "label": "蚌埠市经济开发区", + "value": "340372" + } + ], + [{ + "label": "大通区", + "value": "340402" + }, + { + "label": "田家庵区", + "value": "340403" + }, + { + "label": "谢家集区", + "value": "340404" + }, + { + "label": "八公山区", + "value": "340405" + }, + { + "label": "潘集区", + "value": "340406" + }, + { + "label": "凤台县", + "value": "340421" + }, + { + "label": "寿县", + "value": "340422" + } + ], + [{ + "label": "花山区", + "value": "340503" + }, + { + "label": "雨山区", + "value": "340504" + }, + { + "label": "博望区", + "value": "340506" + }, + { + "label": "当涂县", + "value": "340521" + }, + { + "label": "含山县", + "value": "340522" + }, + { + "label": "和县", + "value": "340523" + } + ], + [{ + "label": "杜集区", + "value": "340602" + }, + { + "label": "相山区", + "value": "340603" + }, + { + "label": "烈山区", + "value": "340604" + }, + { + "label": "濉溪县", + "value": "340621" + } + ], + [{ + "label": "铜官区", + "value": "340705" + }, + { + "label": "义安区", + "value": "340706" + }, + { + "label": "郊区", + "value": "340711" + }, + { + "label": "枞阳县", + "value": "340722" + } + ], + [{ + "label": "迎江区", + "value": "340802" + }, + { + "label": "大观区", + "value": "340803" + }, + { + "label": "宜秀区", + "value": "340811" + }, + { + "label": "怀宁县", + "value": "340822" + }, + { + "label": "潜山县", + "value": "340824" + }, + { + "label": "太湖县", + "value": "340825" + }, + { + "label": "宿松县", + "value": "340826" + }, + { + "label": "望江县", + "value": "340827" + }, + { + "label": "岳西县", + "value": "340828" + }, + { + "label": "安徽安庆经济开发区", + "value": "340871" + }, + { + "label": "桐城市", + "value": "340881" + } + ], + [{ + "label": "屯溪区", + "value": "341002" + }, + { + "label": "黄山区", + "value": "341003" + }, + { + "label": "徽州区", + "value": "341004" + }, + { + "label": "歙县", + "value": "341021" + }, + { + "label": "休宁县", + "value": "341022" + }, + { + "label": "黟县", + "value": "341023" + }, + { + "label": "祁门县", + "value": "341024" + } + ], + [{ + "label": "琅琊区", + "value": "341102" + }, + { + "label": "南谯区", + "value": "341103" + }, + { + "label": "来安县", + "value": "341122" + }, + { + "label": "全椒县", + "value": "341124" + }, + { + "label": "定远县", + "value": "341125" + }, + { + "label": "凤阳县", + "value": "341126" + }, + { + "label": "苏滁现代产业园", + "value": "341171" + }, + { + "label": "滁州经济技术开发区", + "value": "341172" + }, + { + "label": "天长市", + "value": "341181" + }, + { + "label": "明光市", + "value": "341182" + } + ], + [{ + "label": "颍州区", + "value": "341202" + }, + { + "label": "颍东区", + "value": "341203" + }, + { + "label": "颍泉区", + "value": "341204" + }, + { + "label": "临泉县", + "value": "341221" + }, + { + "label": "太和县", + "value": "341222" + }, + { + "label": "阜南县", + "value": "341225" + }, + { + "label": "颍上县", + "value": "341226" + }, + { + "label": "阜阳合肥现代产业园区", + "value": "341271" + }, + { + "label": "阜阳经济技术开发区", + "value": "341272" + }, + { + "label": "界首市", + "value": "341282" + } + ], + [{ + "label": "埇桥区", + "value": "341302" + }, + { + "label": "砀山县", + "value": "341321" + }, + { + "label": "萧县", + "value": "341322" + }, + { + "label": "灵璧县", + "value": "341323" + }, + { + "label": "泗县", + "value": "341324" + }, + { + "label": "宿州马鞍山现代产业园区", + "value": "341371" + }, + { + "label": "宿州经济技术开发区", + "value": "341372" + } + ], + [{ + "label": "金安区", + "value": "341502" + }, + { + "label": "裕安区", + "value": "341503" + }, + { + "label": "叶集区", + "value": "341504" + }, + { + "label": "霍邱县", + "value": "341522" + }, + { + "label": "舒城县", + "value": "341523" + }, + { + "label": "金寨县", + "value": "341524" + }, + { + "label": "霍山县", + "value": "341525" + } + ], + [{ + "label": "谯城区", + "value": "341602" + }, + { + "label": "涡阳县", + "value": "341621" + }, + { + "label": "蒙城县", + "value": "341622" + }, + { + "label": "利辛县", + "value": "341623" + } + ], + [{ + "label": "贵池区", + "value": "341702" + }, + { + "label": "东至县", + "value": "341721" + }, + { + "label": "石台县", + "value": "341722" + }, + { + "label": "青阳县", + "value": "341723" + } + ], + [{ + "label": "宣州区", + "value": "341802" + }, + { + "label": "郎溪县", + "value": "341821" + }, + { + "label": "广德县", + "value": "341822" + }, + { + "label": "泾县", + "value": "341823" + }, + { + "label": "绩溪县", + "value": "341824" + }, + { + "label": "旌德县", + "value": "341825" + }, + { + "label": "宣城市经济开发区", + "value": "341871" + }, + { + "label": "宁国市", + "value": "341881" + } + ] + ], + [ + [{ + "label": "鼓楼区", + "value": "350102" + }, + { + "label": "台江区", + "value": "350103" + }, + { + "label": "仓山区", + "value": "350104" + }, + { + "label": "马尾区", + "value": "350105" + }, + { + "label": "晋安区", + "value": "350111" + }, + { + "label": "闽侯县", + "value": "350121" + }, + { + "label": "连江县", + "value": "350122" + }, + { + "label": "罗源县", + "value": "350123" + }, + { + "label": "闽清县", + "value": "350124" + }, + { + "label": "永泰县", + "value": "350125" + }, + { + "label": "平潭县", + "value": "350128" + }, + { + "label": "福清市", + "value": "350181" + }, + { + "label": "长乐市", + "value": "350182" + } + ], + [{ + "label": "思明区", + "value": "350203" + }, + { + "label": "海沧区", + "value": "350205" + }, + { + "label": "湖里区", + "value": "350206" + }, + { + "label": "集美区", + "value": "350211" + }, + { + "label": "同安区", + "value": "350212" + }, + { + "label": "翔安区", + "value": "350213" + } + ], + [{ + "label": "城厢区", + "value": "350302" + }, + { + "label": "涵江区", + "value": "350303" + }, + { + "label": "荔城区", + "value": "350304" + }, + { + "label": "秀屿区", + "value": "350305" + }, + { + "label": "仙游县", + "value": "350322" + } + ], + [{ + "label": "梅列区", + "value": "350402" + }, + { + "label": "三元区", + "value": "350403" + }, + { + "label": "明溪县", + "value": "350421" + }, + { + "label": "清流县", + "value": "350423" + }, + { + "label": "宁化县", + "value": "350424" + }, + { + "label": "大田县", + "value": "350425" + }, + { + "label": "尤溪县", + "value": "350426" + }, + { + "label": "沙县", + "value": "350427" + }, + { + "label": "将乐县", + "value": "350428" + }, + { + "label": "泰宁县", + "value": "350429" + }, + { + "label": "建宁县", + "value": "350430" + }, + { + "label": "永安市", + "value": "350481" + } + ], + [{ + "label": "鲤城区", + "value": "350502" + }, + { + "label": "丰泽区", + "value": "350503" + }, + { + "label": "洛江区", + "value": "350504" + }, + { + "label": "泉港区", + "value": "350505" + }, + { + "label": "惠安县", + "value": "350521" + }, + { + "label": "安溪县", + "value": "350524" + }, + { + "label": "永春县", + "value": "350525" + }, + { + "label": "德化县", + "value": "350526" + }, + { + "label": "金门县", + "value": "350527" + }, + { + "label": "石狮市", + "value": "350581" + }, + { + "label": "晋江市", + "value": "350582" + }, + { + "label": "南安市", + "value": "350583" + } + ], + [{ + "label": "芗城区", + "value": "350602" + }, + { + "label": "龙文区", + "value": "350603" + }, + { + "label": "云霄县", + "value": "350622" + }, + { + "label": "漳浦县", + "value": "350623" + }, + { + "label": "诏安县", + "value": "350624" + }, + { + "label": "长泰县", + "value": "350625" + }, + { + "label": "东山县", + "value": "350626" + }, + { + "label": "南靖县", + "value": "350627" + }, + { + "label": "平和县", + "value": "350628" + }, + { + "label": "华安县", + "value": "350629" + }, + { + "label": "龙海市", + "value": "350681" + } + ], + [{ + "label": "延平区", + "value": "350702" + }, + { + "label": "建阳区", + "value": "350703" + }, + { + "label": "顺昌县", + "value": "350721" + }, + { + "label": "浦城县", + "value": "350722" + }, + { + "label": "光泽县", + "value": "350723" + }, + { + "label": "松溪县", + "value": "350724" + }, + { + "label": "政和县", + "value": "350725" + }, + { + "label": "邵武市", + "value": "350781" + }, + { + "label": "武夷山市", + "value": "350782" + }, + { + "label": "建瓯市", + "value": "350783" + } + ], + [{ + "label": "新罗区", + "value": "350802" + }, + { + "label": "永定区", + "value": "350803" + }, + { + "label": "长汀县", + "value": "350821" + }, + { + "label": "上杭县", + "value": "350823" + }, + { + "label": "武平县", + "value": "350824" + }, + { + "label": "连城县", + "value": "350825" + }, + { + "label": "漳平市", + "value": "350881" + } + ], + [{ + "label": "蕉城区", + "value": "350902" + }, + { + "label": "霞浦县", + "value": "350921" + }, + { + "label": "古田县", + "value": "350922" + }, + { + "label": "屏南县", + "value": "350923" + }, + { + "label": "寿宁县", + "value": "350924" + }, + { + "label": "周宁县", + "value": "350925" + }, + { + "label": "柘荣县", + "value": "350926" + }, + { + "label": "福安市", + "value": "350981" + }, + { + "label": "福鼎市", + "value": "350982" + } + ] + ], + [ + [{ + "label": "东湖区", + "value": "360102" + }, + { + "label": "西湖区", + "value": "360103" + }, + { + "label": "青云谱区", + "value": "360104" + }, + { + "label": "湾里区", + "value": "360105" + }, + { + "label": "青山湖区", + "value": "360111" + }, + { + "label": "新建区", + "value": "360112" + }, + { + "label": "南昌县", + "value": "360121" + }, + { + "label": "安义县", + "value": "360123" + }, + { + "label": "进贤县", + "value": "360124" + } + ], + [{ + "label": "昌江区", + "value": "360202" + }, + { + "label": "珠山区", + "value": "360203" + }, + { + "label": "浮梁县", + "value": "360222" + }, + { + "label": "乐平市", + "value": "360281" + } + ], + [{ + "label": "安源区", + "value": "360302" + }, + { + "label": "湘东区", + "value": "360313" + }, + { + "label": "莲花县", + "value": "360321" + }, + { + "label": "上栗县", + "value": "360322" + }, + { + "label": "芦溪县", + "value": "360323" + } + ], + [{ + "label": "濂溪区", + "value": "360402" + }, + { + "label": "浔阳区", + "value": "360403" + }, + { + "label": "柴桑区", + "value": "360404" + }, + { + "label": "武宁县", + "value": "360423" + }, + { + "label": "修水县", + "value": "360424" + }, + { + "label": "永修县", + "value": "360425" + }, + { + "label": "德安县", + "value": "360426" + }, + { + "label": "都昌县", + "value": "360428" + }, + { + "label": "湖口县", + "value": "360429" + }, + { + "label": "彭泽县", + "value": "360430" + }, + { + "label": "瑞昌市", + "value": "360481" + }, + { + "label": "共青城市", + "value": "360482" + }, + { + "label": "庐山市", + "value": "360483" + } + ], + [{ + "label": "渝水区", + "value": "360502" + }, + { + "label": "分宜县", + "value": "360521" + } + ], + [{ + "label": "月湖区", + "value": "360602" + }, + { + "label": "余江县", + "value": "360622" + }, + { + "label": "贵溪市", + "value": "360681" + } + ], + [{ + "label": "章贡区", + "value": "360702" + }, + { + "label": "南康区", + "value": "360703" + }, + { + "label": "赣县区", + "value": "360704" + }, + { + "label": "信丰县", + "value": "360722" + }, + { + "label": "大余县", + "value": "360723" + }, + { + "label": "上犹县", + "value": "360724" + }, + { + "label": "崇义县", + "value": "360725" + }, + { + "label": "安远县", + "value": "360726" + }, + { + "label": "龙南县", + "value": "360727" + }, + { + "label": "定南县", + "value": "360728" + }, + { + "label": "全南县", + "value": "360729" + }, + { + "label": "宁都县", + "value": "360730" + }, + { + "label": "于都县", + "value": "360731" + }, + { + "label": "兴国县", + "value": "360732" + }, + { + "label": "会昌县", + "value": "360733" + }, + { + "label": "寻乌县", + "value": "360734" + }, + { + "label": "石城县", + "value": "360735" + }, + { + "label": "瑞金市", + "value": "360781" + } + ], + [{ + "label": "吉州区", + "value": "360802" + }, + { + "label": "青原区", + "value": "360803" + }, + { + "label": "吉安县", + "value": "360821" + }, + { + "label": "吉水县", + "value": "360822" + }, + { + "label": "峡江县", + "value": "360823" + }, + { + "label": "新干县", + "value": "360824" + }, + { + "label": "永丰县", + "value": "360825" + }, + { + "label": "泰和县", + "value": "360826" + }, + { + "label": "遂川县", + "value": "360827" + }, + { + "label": "万安县", + "value": "360828" + }, + { + "label": "安福县", + "value": "360829" + }, + { + "label": "永新县", + "value": "360830" + }, + { + "label": "井冈山市", + "value": "360881" + } + ], + [{ + "label": "袁州区", + "value": "360902" + }, + { + "label": "奉新县", + "value": "360921" + }, + { + "label": "万载县", + "value": "360922" + }, + { + "label": "上高县", + "value": "360923" + }, + { + "label": "宜丰县", + "value": "360924" + }, + { + "label": "靖安县", + "value": "360925" + }, + { + "label": "铜鼓县", + "value": "360926" + }, + { + "label": "丰城市", + "value": "360981" + }, + { + "label": "樟树市", + "value": "360982" + }, + { + "label": "高安市", + "value": "360983" + } + ], + [{ + "label": "临川区", + "value": "361002" + }, + { + "label": "东乡区", + "value": "361003" + }, + { + "label": "南城县", + "value": "361021" + }, + { + "label": "黎川县", + "value": "361022" + }, + { + "label": "南丰县", + "value": "361023" + }, + { + "label": "崇仁县", + "value": "361024" + }, + { + "label": "乐安县", + "value": "361025" + }, + { + "label": "宜黄县", + "value": "361026" + }, + { + "label": "金溪县", + "value": "361027" + }, + { + "label": "资溪县", + "value": "361028" + }, + { + "label": "广昌县", + "value": "361030" + } + ], + [{ + "label": "信州区", + "value": "361102" + }, + { + "label": "广丰区", + "value": "361103" + }, + { + "label": "上饶县", + "value": "361121" + }, + { + "label": "玉山县", + "value": "361123" + }, + { + "label": "铅山县", + "value": "361124" + }, + { + "label": "横峰县", + "value": "361125" + }, + { + "label": "弋阳县", + "value": "361126" + }, + { + "label": "余干县", + "value": "361127" + }, + { + "label": "鄱阳县", + "value": "361128" + }, + { + "label": "万年县", + "value": "361129" + }, + { + "label": "婺源县", + "value": "361130" + }, + { + "label": "德兴市", + "value": "361181" + } + ] + ], + [ + [{ + "label": "历下区", + "value": "370102" + }, + { + "label": "市中区", + "value": "370103" + }, + { + "label": "槐荫区", + "value": "370104" + }, + { + "label": "天桥区", + "value": "370105" + }, + { + "label": "历城区", + "value": "370112" + }, + { + "label": "长清区", + "value": "370113" + }, + { + "label": "章丘区", + "value": "370114" + }, + { + "label": "平阴县", + "value": "370124" + }, + { + "label": "济阳县", + "value": "370125" + }, + { + "label": "商河县", + "value": "370126" + }, + { + "label": "济南高新技术产业开发区", + "value": "370171" + } + ], + [{ + "label": "市南区", + "value": "370202" + }, + { + "label": "市北区", + "value": "370203" + }, + { + "label": "黄岛区", + "value": "370211" + }, + { + "label": "崂山区", + "value": "370212" + }, + { + "label": "李沧区", + "value": "370213" + }, + { + "label": "城阳区", + "value": "370214" + }, + { + "label": "即墨区", + "value": "370215" + }, + { + "label": "青岛高新技术产业开发区", + "value": "370271" + }, + { + "label": "胶州市", + "value": "370281" + }, + { + "label": "平度市", + "value": "370283" + }, + { + "label": "莱西市", + "value": "370285" + } + ], + [{ + "label": "淄川区", + "value": "370302" + }, + { + "label": "张店区", + "value": "370303" + }, + { + "label": "博山区", + "value": "370304" + }, + { + "label": "临淄区", + "value": "370305" + }, + { + "label": "周村区", + "value": "370306" + }, + { + "label": "桓台县", + "value": "370321" + }, + { + "label": "高青县", + "value": "370322" + }, + { + "label": "沂源县", + "value": "370323" + } + ], + [{ + "label": "市中区", + "value": "370402" + }, + { + "label": "薛城区", + "value": "370403" + }, + { + "label": "峄城区", + "value": "370404" + }, + { + "label": "台儿庄区", + "value": "370405" + }, + { + "label": "山亭区", + "value": "370406" + }, + { + "label": "滕州市", + "value": "370481" + } + ], + [{ + "label": "东营区", + "value": "370502" + }, + { + "label": "河口区", + "value": "370503" + }, + { + "label": "垦利区", + "value": "370505" + }, + { + "label": "利津县", + "value": "370522" + }, + { + "label": "广饶县", + "value": "370523" + }, + { + "label": "东营经济技术开发区", + "value": "370571" + }, + { + "label": "东营港经济开发区", + "value": "370572" + } + ], + [{ + "label": "芝罘区", + "value": "370602" + }, + { + "label": "福山区", + "value": "370611" + }, + { + "label": "牟平区", + "value": "370612" + }, + { + "label": "莱山区", + "value": "370613" + }, + { + "label": "长岛县", + "value": "370634" + }, + { + "label": "烟台高新技术产业开发区", + "value": "370671" + }, + { + "label": "烟台经济技术开发区", + "value": "370672" + }, + { + "label": "龙口市", + "value": "370681" + }, + { + "label": "莱阳市", + "value": "370682" + }, + { + "label": "莱州市", + "value": "370683" + }, + { + "label": "蓬莱市", + "value": "370684" + }, + { + "label": "招远市", + "value": "370685" + }, + { + "label": "栖霞市", + "value": "370686" + }, + { + "label": "海阳市", + "value": "370687" + } + ], + [{ + "label": "潍城区", + "value": "370702" + }, + { + "label": "寒亭区", + "value": "370703" + }, + { + "label": "坊子区", + "value": "370704" + }, + { + "label": "奎文区", + "value": "370705" + }, + { + "label": "临朐县", + "value": "370724" + }, + { + "label": "昌乐县", + "value": "370725" + }, + { + "label": "潍坊滨海经济技术开发区", + "value": "370772" + }, + { + "label": "青州市", + "value": "370781" + }, + { + "label": "诸城市", + "value": "370782" + }, + { + "label": "寿光市", + "value": "370783" + }, + { + "label": "安丘市", + "value": "370784" + }, + { + "label": "高密市", + "value": "370785" + }, + { + "label": "昌邑市", + "value": "370786" + } + ], + [{ + "label": "任城区", + "value": "370811" + }, + { + "label": "兖州区", + "value": "370812" + }, + { + "label": "微山县", + "value": "370826" + }, + { + "label": "鱼台县", + "value": "370827" + }, + { + "label": "金乡县", + "value": "370828" + }, + { + "label": "嘉祥县", + "value": "370829" + }, + { + "label": "汶上县", + "value": "370830" + }, + { + "label": "泗水县", + "value": "370831" + }, + { + "label": "梁山县", + "value": "370832" + }, + { + "label": "济宁高新技术产业开发区", + "value": "370871" + }, + { + "label": "曲阜市", + "value": "370881" + }, + { + "label": "邹城市", + "value": "370883" + } + ], + [{ + "label": "泰山区", + "value": "370902" + }, + { + "label": "岱岳区", + "value": "370911" + }, + { + "label": "宁阳县", + "value": "370921" + }, + { + "label": "东平县", + "value": "370923" + }, + { + "label": "新泰市", + "value": "370982" + }, + { + "label": "肥城市", + "value": "370983" + } + ], + [{ + "label": "环翠区", + "value": "371002" + }, + { + "label": "文登区", + "value": "371003" + }, + { + "label": "威海火炬高技术产业开发区", + "value": "371071" + }, + { + "label": "威海经济技术开发区", + "value": "371072" + }, + { + "label": "威海临港经济技术开发区", + "value": "371073" + }, + { + "label": "荣成市", + "value": "371082" + }, + { + "label": "乳山市", + "value": "371083" + } + ], + [{ + "label": "东港区", + "value": "371102" + }, + { + "label": "岚山区", + "value": "371103" + }, + { + "label": "五莲县", + "value": "371121" + }, + { + "label": "莒县", + "value": "371122" + }, + { + "label": "日照经济技术开发区", + "value": "371171" + }, + { + "label": "日照国际海洋城", + "value": "371172" + } + ], + [{ + "label": "莱城区", + "value": "371202" + }, + { + "label": "钢城区", + "value": "371203" + } + ], + [{ + "label": "兰山区", + "value": "371302" + }, + { + "label": "罗庄区", + "value": "371311" + }, + { + "label": "河东区", + "value": "371312" + }, + { + "label": "沂南县", + "value": "371321" + }, + { + "label": "郯城县", + "value": "371322" + }, + { + "label": "沂水县", + "value": "371323" + }, + { + "label": "兰陵县", + "value": "371324" + }, + { + "label": "费县", + "value": "371325" + }, + { + "label": "平邑县", + "value": "371326" + }, + { + "label": "莒南县", + "value": "371327" + }, + { + "label": "蒙阴县", + "value": "371328" + }, + { + "label": "临沭县", + "value": "371329" + }, + { + "label": "临沂高新技术产业开发区", + "value": "371371" + }, + { + "label": "临沂经济技术开发区", + "value": "371372" + }, + { + "label": "临沂临港经济开发区", + "value": "371373" + } + ], + [{ + "label": "德城区", + "value": "371402" + }, + { + "label": "陵城区", + "value": "371403" + }, + { + "label": "宁津县", + "value": "371422" + }, + { + "label": "庆云县", + "value": "371423" + }, + { + "label": "临邑县", + "value": "371424" + }, + { + "label": "齐河县", + "value": "371425" + }, + { + "label": "平原县", + "value": "371426" + }, + { + "label": "夏津县", + "value": "371427" + }, + { + "label": "武城县", + "value": "371428" + }, + { + "label": "德州经济技术开发区", + "value": "371471" + }, + { + "label": "德州运河经济开发区", + "value": "371472" + }, + { + "label": "乐陵市", + "value": "371481" + }, + { + "label": "禹城市", + "value": "371482" + } + ], + [{ + "label": "东昌府区", + "value": "371502" + }, + { + "label": "阳谷县", + "value": "371521" + }, + { + "label": "莘县", + "value": "371522" + }, + { + "label": "茌平县", + "value": "371523" + }, + { + "label": "东阿县", + "value": "371524" + }, + { + "label": "冠县", + "value": "371525" + }, + { + "label": "高唐县", + "value": "371526" + }, + { + "label": "临清市", + "value": "371581" + } + ], + [{ + "label": "滨城区", + "value": "371602" + }, + { + "label": "沾化区", + "value": "371603" + }, + { + "label": "惠民县", + "value": "371621" + }, + { + "label": "阳信县", + "value": "371622" + }, + { + "label": "无棣县", + "value": "371623" + }, + { + "label": "博兴县", + "value": "371625" + }, + { + "label": "邹平县", + "value": "371626" + } + ], + [{ + "label": "牡丹区", + "value": "371702" + }, + { + "label": "定陶区", + "value": "371703" + }, + { + "label": "曹县", + "value": "371721" + }, + { + "label": "单县", + "value": "371722" + }, + { + "label": "成武县", + "value": "371723" + }, + { + "label": "巨野县", + "value": "371724" + }, + { + "label": "郓城县", + "value": "371725" + }, + { + "label": "鄄城县", + "value": "371726" + }, + { + "label": "东明县", + "value": "371728" + }, + { + "label": "菏泽经济技术开发区", + "value": "371771" + }, + { + "label": "菏泽高新技术开发区", + "value": "371772" + } + ] + ], + [ + [{ + "label": "中原区", + "value": "410102" + }, + { + "label": "二七区", + "value": "410103" + }, + { + "label": "管城回族区", + "value": "410104" + }, + { + "label": "金水区", + "value": "410105" + }, + { + "label": "上街区", + "value": "410106" + }, + { + "label": "惠济区", + "value": "410108" + }, + { + "label": "中牟县", + "value": "410122" + }, + { + "label": "郑州经济技术开发区", + "value": "410171" + }, + { + "label": "郑州高新技术产业开发区", + "value": "410172" + }, + { + "label": "郑州航空港经济综合实验区", + "value": "410173" + }, + { + "label": "巩义市", + "value": "410181" + }, + { + "label": "荥阳市", + "value": "410182" + }, + { + "label": "新密市", + "value": "410183" + }, + { + "label": "新郑市", + "value": "410184" + }, + { + "label": "登封市", + "value": "410185" + } + ], + [{ + "label": "龙亭区", + "value": "410202" + }, + { + "label": "顺河回族区", + "value": "410203" + }, + { + "label": "鼓楼区", + "value": "410204" + }, + { + "label": "禹王台区", + "value": "410205" + }, + { + "label": "祥符区", + "value": "410212" + }, + { + "label": "杞县", + "value": "410221" + }, + { + "label": "通许县", + "value": "410222" + }, + { + "label": "尉氏县", + "value": "410223" + }, + { + "label": "兰考县", + "value": "410225" + } + ], + [{ + "label": "老城区", + "value": "410302" + }, + { + "label": "西工区", + "value": "410303" + }, + { + "label": "瀍河回族区", + "value": "410304" + }, + { + "label": "涧西区", + "value": "410305" + }, + { + "label": "吉利区", + "value": "410306" + }, + { + "label": "洛龙区", + "value": "410311" + }, + { + "label": "孟津县", + "value": "410322" + }, + { + "label": "新安县", + "value": "410323" + }, + { + "label": "栾川县", + "value": "410324" + }, + { + "label": "嵩县", + "value": "410325" + }, + { + "label": "汝阳县", + "value": "410326" + }, + { + "label": "宜阳县", + "value": "410327" + }, + { + "label": "洛宁县", + "value": "410328" + }, + { + "label": "伊川县", + "value": "410329" + }, + { + "label": "洛阳高新技术产业开发区", + "value": "410371" + }, + { + "label": "偃师市", + "value": "410381" + } + ], + [{ + "label": "新华区", + "value": "410402" + }, + { + "label": "卫东区", + "value": "410403" + }, + { + "label": "石龙区", + "value": "410404" + }, + { + "label": "湛河区", + "value": "410411" + }, + { + "label": "宝丰县", + "value": "410421" + }, + { + "label": "叶县", + "value": "410422" + }, + { + "label": "鲁山县", + "value": "410423" + }, + { + "label": "郏县", + "value": "410425" + }, + { + "label": "平顶山高新技术产业开发区", + "value": "410471" + }, + { + "label": "平顶山市新城区", + "value": "410472" + }, + { + "label": "舞钢市", + "value": "410481" + }, + { + "label": "汝州市", + "value": "410482" + } + ], + [{ + "label": "文峰区", + "value": "410502" + }, + { + "label": "北关区", + "value": "410503" + }, + { + "label": "殷都区", + "value": "410505" + }, + { + "label": "龙安区", + "value": "410506" + }, + { + "label": "安阳县", + "value": "410522" + }, + { + "label": "汤阴县", + "value": "410523" + }, + { + "label": "滑县", + "value": "410526" + }, + { + "label": "内黄县", + "value": "410527" + }, + { + "label": "安阳高新技术产业开发区", + "value": "410571" + }, + { + "label": "林州市", + "value": "410581" + } + ], + [{ + "label": "鹤山区", + "value": "410602" + }, + { + "label": "山城区", + "value": "410603" + }, + { + "label": "淇滨区", + "value": "410611" + }, + { + "label": "浚县", + "value": "410621" + }, + { + "label": "淇县", + "value": "410622" + }, + { + "label": "鹤壁经济技术开发区", + "value": "410671" + } + ], + [{ + "label": "红旗区", + "value": "410702" + }, + { + "label": "卫滨区", + "value": "410703" + }, + { + "label": "凤泉区", + "value": "410704" + }, + { + "label": "牧野区", + "value": "410711" + }, + { + "label": "新乡县", + "value": "410721" + }, + { + "label": "获嘉县", + "value": "410724" + }, + { + "label": "原阳县", + "value": "410725" + }, + { + "label": "延津县", + "value": "410726" + }, + { + "label": "封丘县", + "value": "410727" + }, + { + "label": "长垣县", + "value": "410728" + }, + { + "label": "新乡高新技术产业开发区", + "value": "410771" + }, + { + "label": "新乡经济技术开发区", + "value": "410772" + }, + { + "label": "新乡市平原城乡一体化示范区", + "value": "410773" + }, + { + "label": "卫辉市", + "value": "410781" + }, + { + "label": "辉县市", + "value": "410782" + } + ], + [{ + "label": "解放区", + "value": "410802" + }, + { + "label": "中站区", + "value": "410803" + }, + { + "label": "马村区", + "value": "410804" + }, + { + "label": "山阳区", + "value": "410811" + }, + { + "label": "修武县", + "value": "410821" + }, + { + "label": "博爱县", + "value": "410822" + }, + { + "label": "武陟县", + "value": "410823" + }, + { + "label": "温县", + "value": "410825" + }, + { + "label": "焦作城乡一体化示范区", + "value": "410871" + }, + { + "label": "沁阳市", + "value": "410882" + }, + { + "label": "孟州市", + "value": "410883" + } + ], + [{ + "label": "华龙区", + "value": "410902" + }, + { + "label": "清丰县", + "value": "410922" + }, + { + "label": "南乐县", + "value": "410923" + }, + { + "label": "范县", + "value": "410926" + }, + { + "label": "台前县", + "value": "410927" + }, + { + "label": "濮阳县", + "value": "410928" + }, + { + "label": "河南濮阳工业园区", + "value": "410971" + }, + { + "label": "濮阳经济技术开发区", + "value": "410972" + } + ], + [{ + "label": "魏都区", + "value": "411002" + }, + { + "label": "建安区", + "value": "411003" + }, + { + "label": "鄢陵县", + "value": "411024" + }, + { + "label": "襄城县", + "value": "411025" + }, + { + "label": "许昌经济技术开发区", + "value": "411071" + }, + { + "label": "禹州市", + "value": "411081" + }, + { + "label": "长葛市", + "value": "411082" + } + ], + [{ + "label": "源汇区", + "value": "411102" + }, + { + "label": "郾城区", + "value": "411103" + }, + { + "label": "召陵区", + "value": "411104" + }, + { + "label": "舞阳县", + "value": "411121" + }, + { + "label": "临颍县", + "value": "411122" + }, + { + "label": "漯河经济技术开发区", + "value": "411171" + } + ], + [{ + "label": "湖滨区", + "value": "411202" + }, + { + "label": "陕州区", + "value": "411203" + }, + { + "label": "渑池县", + "value": "411221" + }, + { + "label": "卢氏县", + "value": "411224" + }, + { + "label": "河南三门峡经济开发区", + "value": "411271" + }, + { + "label": "义马市", + "value": "411281" + }, + { + "label": "灵宝市", + "value": "411282" + } + ], + [{ + "label": "宛城区", + "value": "411302" + }, + { + "label": "卧龙区", + "value": "411303" + }, + { + "label": "南召县", + "value": "411321" + }, + { + "label": "方城县", + "value": "411322" + }, + { + "label": "西峡县", + "value": "411323" + }, + { + "label": "镇平县", + "value": "411324" + }, + { + "label": "内乡县", + "value": "411325" + }, + { + "label": "淅川县", + "value": "411326" + }, + { + "label": "社旗县", + "value": "411327" + }, + { + "label": "唐河县", + "value": "411328" + }, + { + "label": "新野县", + "value": "411329" + }, + { + "label": "桐柏县", + "value": "411330" + }, + { + "label": "南阳高新技术产业开发区", + "value": "411371" + }, + { + "label": "南阳市城乡一体化示范区", + "value": "411372" + }, + { + "label": "邓州市", + "value": "411381" + } + ], + [{ + "label": "梁园区", + "value": "411402" + }, + { + "label": "睢阳区", + "value": "411403" + }, + { + "label": "民权县", + "value": "411421" + }, + { + "label": "睢县", + "value": "411422" + }, + { + "label": "宁陵县", + "value": "411423" + }, + { + "label": "柘城县", + "value": "411424" + }, + { + "label": "虞城县", + "value": "411425" + }, + { + "label": "夏邑县", + "value": "411426" + }, + { + "label": "豫东综合物流产业聚集区", + "value": "411471" + }, + { + "label": "河南商丘经济开发区", + "value": "411472" + }, + { + "label": "永城市", + "value": "411481" + } + ], + [{ + "label": "浉河区", + "value": "411502" + }, + { + "label": "平桥区", + "value": "411503" + }, + { + "label": "罗山县", + "value": "411521" + }, + { + "label": "光山县", + "value": "411522" + }, + { + "label": "新县", + "value": "411523" + }, + { + "label": "商城县", + "value": "411524" + }, + { + "label": "固始县", + "value": "411525" + }, + { + "label": "潢川县", + "value": "411526" + }, + { + "label": "淮滨县", + "value": "411527" + }, + { + "label": "息县", + "value": "411528" + }, + { + "label": "信阳高新技术产业开发区", + "value": "411571" + } + ], + [{ + "label": "川汇区", + "value": "411602" + }, + { + "label": "扶沟县", + "value": "411621" + }, + { + "label": "西华县", + "value": "411622" + }, + { + "label": "商水县", + "value": "411623" + }, + { + "label": "沈丘县", + "value": "411624" + }, + { + "label": "郸城县", + "value": "411625" + }, + { + "label": "淮阳县", + "value": "411626" + }, + { + "label": "太康县", + "value": "411627" + }, + { + "label": "鹿邑县", + "value": "411628" + }, + { + "label": "河南周口经济开发区", + "value": "411671" + }, + { + "label": "项城市", + "value": "411681" + } + ], + [{ + "label": "驿城区", + "value": "411702" + }, + { + "label": "西平县", + "value": "411721" + }, + { + "label": "上蔡县", + "value": "411722" + }, + { + "label": "平舆县", + "value": "411723" + }, + { + "label": "正阳县", + "value": "411724" + }, + { + "label": "确山县", + "value": "411725" + }, + { + "label": "泌阳县", + "value": "411726" + }, + { + "label": "汝南县", + "value": "411727" + }, + { + "label": "遂平县", + "value": "411728" + }, + { + "label": "新蔡县", + "value": "411729" + }, + { + "label": "河南驻马店经济开发区", + "value": "411771" + } + ], + [{ + "label": "济源市", + "value": "419001" + }] + ], + [ + [{ + "label": "江岸区", + "value": "420102" + }, + { + "label": "江汉区", + "value": "420103" + }, + { + "label": "硚口区", + "value": "420104" + }, + { + "label": "汉阳区", + "value": "420105" + }, + { + "label": "武昌区", + "value": "420106" + }, + { + "label": "青山区", + "value": "420107" + }, + { + "label": "洪山区", + "value": "420111" + }, + { + "label": "东西湖区", + "value": "420112" + }, + { + "label": "汉南区", + "value": "420113" + }, + { + "label": "蔡甸区", + "value": "420114" + }, + { + "label": "江夏区", + "value": "420115" + }, + { + "label": "黄陂区", + "value": "420116" + }, + { + "label": "新洲区", + "value": "420117" + } + ], + [{ + "label": "黄石港区", + "value": "420202" + }, + { + "label": "西塞山区", + "value": "420203" + }, + { + "label": "下陆区", + "value": "420204" + }, + { + "label": "铁山区", + "value": "420205" + }, + { + "label": "阳新县", + "value": "420222" + }, + { + "label": "大冶市", + "value": "420281" + } + ], + [{ + "label": "茅箭区", + "value": "420302" + }, + { + "label": "张湾区", + "value": "420303" + }, + { + "label": "郧阳区", + "value": "420304" + }, + { + "label": "郧西县", + "value": "420322" + }, + { + "label": "竹山县", + "value": "420323" + }, + { + "label": "竹溪县", + "value": "420324" + }, + { + "label": "房县", + "value": "420325" + }, + { + "label": "丹江口市", + "value": "420381" + } + ], + [{ + "label": "西陵区", + "value": "420502" + }, + { + "label": "伍家岗区", + "value": "420503" + }, + { + "label": "点军区", + "value": "420504" + }, + { + "label": "猇亭区", + "value": "420505" + }, + { + "label": "夷陵区", + "value": "420506" + }, + { + "label": "远安县", + "value": "420525" + }, + { + "label": "兴山县", + "value": "420526" + }, + { + "label": "秭归县", + "value": "420527" + }, + { + "label": "长阳土家族自治县", + "value": "420528" + }, + { + "label": "五峰土家族自治县", + "value": "420529" + }, + { + "label": "宜都市", + "value": "420581" + }, + { + "label": "当阳市", + "value": "420582" + }, + { + "label": "枝江市", + "value": "420583" + } + ], + [{ + "label": "襄城区", + "value": "420602" + }, + { + "label": "樊城区", + "value": "420606" + }, + { + "label": "襄州区", + "value": "420607" + }, + { + "label": "南漳县", + "value": "420624" + }, + { + "label": "谷城县", + "value": "420625" + }, + { + "label": "保康县", + "value": "420626" + }, + { + "label": "老河口市", + "value": "420682" + }, + { + "label": "枣阳市", + "value": "420683" + }, + { + "label": "宜城市", + "value": "420684" + } + ], + [{ + "label": "梁子湖区", + "value": "420702" + }, + { + "label": "华容区", + "value": "420703" + }, + { + "label": "鄂城区", + "value": "420704" + } + ], + [{ + "label": "东宝区", + "value": "420802" + }, + { + "label": "掇刀区", + "value": "420804" + }, + { + "label": "京山县", + "value": "420821" + }, + { + "label": "沙洋县", + "value": "420822" + }, + { + "label": "钟祥市", + "value": "420881" + } + ], + [{ + "label": "孝南区", + "value": "420902" + }, + { + "label": "孝昌县", + "value": "420921" + }, + { + "label": "大悟县", + "value": "420922" + }, + { + "label": "云梦县", + "value": "420923" + }, + { + "label": "应城市", + "value": "420981" + }, + { + "label": "安陆市", + "value": "420982" + }, + { + "label": "汉川市", + "value": "420984" + } + ], + [{ + "label": "沙市区", + "value": "421002" + }, + { + "label": "荆州区", + "value": "421003" + }, + { + "label": "公安县", + "value": "421022" + }, + { + "label": "监利县", + "value": "421023" + }, + { + "label": "江陵县", + "value": "421024" + }, + { + "label": "荆州经济技术开发区", + "value": "421071" + }, + { + "label": "石首市", + "value": "421081" + }, + { + "label": "洪湖市", + "value": "421083" + }, + { + "label": "松滋市", + "value": "421087" + } + ], + [{ + "label": "黄州区", + "value": "421102" + }, + { + "label": "团风县", + "value": "421121" + }, + { + "label": "红安县", + "value": "421122" + }, + { + "label": "罗田县", + "value": "421123" + }, + { + "label": "英山县", + "value": "421124" + }, + { + "label": "浠水县", + "value": "421125" + }, + { + "label": "蕲春县", + "value": "421126" + }, + { + "label": "黄梅县", + "value": "421127" + }, + { + "label": "龙感湖管理区", + "value": "421171" + }, + { + "label": "麻城市", + "value": "421181" + }, + { + "label": "武穴市", + "value": "421182" + } + ], + [{ + "label": "咸安区", + "value": "421202" + }, + { + "label": "嘉鱼县", + "value": "421221" + }, + { + "label": "通城县", + "value": "421222" + }, + { + "label": "崇阳县", + "value": "421223" + }, + { + "label": "通山县", + "value": "421224" + }, + { + "label": "赤壁市", + "value": "421281" + } + ], + [{ + "label": "曾都区", + "value": "421303" + }, + { + "label": "随县", + "value": "421321" + }, + { + "label": "广水市", + "value": "421381" + } + ], + [{ + "label": "恩施市", + "value": "422801" + }, + { + "label": "利川市", + "value": "422802" + }, + { + "label": "建始县", + "value": "422822" + }, + { + "label": "巴东县", + "value": "422823" + }, + { + "label": "宣恩县", + "value": "422825" + }, + { + "label": "咸丰县", + "value": "422826" + }, + { + "label": "来凤县", + "value": "422827" + }, + { + "label": "鹤峰县", + "value": "422828" + } + ], + [{ + "label": "仙桃市", + "value": "429004" + }, + { + "label": "潜江市", + "value": "429005" + }, + { + "label": "天门市", + "value": "429006" + }, + { + "label": "神农架林区", + "value": "429021" + } + ] + ], + [ + [{ + "label": "芙蓉区", + "value": "430102" + }, + { + "label": "天心区", + "value": "430103" + }, + { + "label": "岳麓区", + "value": "430104" + }, + { + "label": "开福区", + "value": "430105" + }, + { + "label": "雨花区", + "value": "430111" + }, + { + "label": "望城区", + "value": "430112" + }, + { + "label": "长沙县", + "value": "430121" + }, + { + "label": "浏阳市", + "value": "430181" + }, + { + "label": "宁乡市", + "value": "430182" + } + ], + [{ + "label": "荷塘区", + "value": "430202" + }, + { + "label": "芦淞区", + "value": "430203" + }, + { + "label": "石峰区", + "value": "430204" + }, + { + "label": "天元区", + "value": "430211" + }, + { + "label": "株洲县", + "value": "430221" + }, + { + "label": "攸县", + "value": "430223" + }, + { + "label": "茶陵县", + "value": "430224" + }, + { + "label": "炎陵县", + "value": "430225" + }, + { + "label": "云龙示范区", + "value": "430271" + }, + { + "label": "醴陵市", + "value": "430281" + } + ], + [{ + "label": "雨湖区", + "value": "430302" + }, + { + "label": "岳塘区", + "value": "430304" + }, + { + "label": "湘潭县", + "value": "430321" + }, + { + "label": "湖南湘潭高新技术产业园区", + "value": "430371" + }, + { + "label": "湘潭昭山示范区", + "value": "430372" + }, + { + "label": "湘潭九华示范区", + "value": "430373" + }, + { + "label": "湘乡市", + "value": "430381" + }, + { + "label": "韶山市", + "value": "430382" + } + ], + [{ + "label": "珠晖区", + "value": "430405" + }, + { + "label": "雁峰区", + "value": "430406" + }, + { + "label": "石鼓区", + "value": "430407" + }, + { + "label": "蒸湘区", + "value": "430408" + }, + { + "label": "南岳区", + "value": "430412" + }, + { + "label": "衡阳县", + "value": "430421" + }, + { + "label": "衡南县", + "value": "430422" + }, + { + "label": "衡山县", + "value": "430423" + }, + { + "label": "衡东县", + "value": "430424" + }, + { + "label": "祁东县", + "value": "430426" + }, + { + "label": "衡阳综合保税区", + "value": "430471" + }, + { + "label": "湖南衡阳高新技术产业园区", + "value": "430472" + }, + { + "label": "湖南衡阳松木经济开发区", + "value": "430473" + }, + { + "label": "耒阳市", + "value": "430481" + }, + { + "label": "常宁市", + "value": "430482" + } + ], + [{ + "label": "双清区", + "value": "430502" + }, + { + "label": "大祥区", + "value": "430503" + }, + { + "label": "北塔区", + "value": "430511" + }, + { + "label": "邵东县", + "value": "430521" + }, + { + "label": "新邵县", + "value": "430522" + }, + { + "label": "邵阳县", + "value": "430523" + }, + { + "label": "隆回县", + "value": "430524" + }, + { + "label": "洞口县", + "value": "430525" + }, + { + "label": "绥宁县", + "value": "430527" + }, + { + "label": "新宁县", + "value": "430528" + }, + { + "label": "城步苗族自治县", + "value": "430529" + }, + { + "label": "武冈市", + "value": "430581" + } + ], + [{ + "label": "岳阳楼区", + "value": "430602" + }, + { + "label": "云溪区", + "value": "430603" + }, + { + "label": "君山区", + "value": "430611" + }, + { + "label": "岳阳县", + "value": "430621" + }, + { + "label": "华容县", + "value": "430623" + }, + { + "label": "湘阴县", + "value": "430624" + }, + { + "label": "平江县", + "value": "430626" + }, + { + "label": "岳阳市屈原管理区", + "value": "430671" + }, + { + "label": "汨罗市", + "value": "430681" + }, + { + "label": "临湘市", + "value": "430682" + } + ], + [{ + "label": "武陵区", + "value": "430702" + }, + { + "label": "鼎城区", + "value": "430703" + }, + { + "label": "安乡县", + "value": "430721" + }, + { + "label": "汉寿县", + "value": "430722" + }, + { + "label": "澧县", + "value": "430723" + }, + { + "label": "临澧县", + "value": "430724" + }, + { + "label": "桃源县", + "value": "430725" + }, + { + "label": "石门县", + "value": "430726" + }, + { + "label": "常德市西洞庭管理区", + "value": "430771" + }, + { + "label": "津市市", + "value": "430781" + } + ], + [{ + "label": "永定区", + "value": "430802" + }, + { + "label": "武陵源区", + "value": "430811" + }, + { + "label": "慈利县", + "value": "430821" + }, + { + "label": "桑植县", + "value": "430822" + } + ], + [{ + "label": "资阳区", + "value": "430902" + }, + { + "label": "赫山区", + "value": "430903" + }, + { + "label": "南县", + "value": "430921" + }, + { + "label": "桃江县", + "value": "430922" + }, + { + "label": "安化县", + "value": "430923" + }, + { + "label": "益阳市大通湖管理区", + "value": "430971" + }, + { + "label": "湖南益阳高新技术产业园区", + "value": "430972" + }, + { + "label": "沅江市", + "value": "430981" + } + ], + [{ + "label": "北湖区", + "value": "431002" + }, + { + "label": "苏仙区", + "value": "431003" + }, + { + "label": "桂阳县", + "value": "431021" + }, + { + "label": "宜章县", + "value": "431022" + }, + { + "label": "永兴县", + "value": "431023" + }, + { + "label": "嘉禾县", + "value": "431024" + }, + { + "label": "临武县", + "value": "431025" + }, + { + "label": "汝城县", + "value": "431026" + }, + { + "label": "桂东县", + "value": "431027" + }, + { + "label": "安仁县", + "value": "431028" + }, + { + "label": "资兴市", + "value": "431081" + } + ], + [{ + "label": "零陵区", + "value": "431102" + }, + { + "label": "冷水滩区", + "value": "431103" + }, + { + "label": "祁阳县", + "value": "431121" + }, + { + "label": "东安县", + "value": "431122" + }, + { + "label": "双牌县", + "value": "431123" + }, + { + "label": "道县", + "value": "431124" + }, + { + "label": "江永县", + "value": "431125" + }, + { + "label": "宁远县", + "value": "431126" + }, + { + "label": "蓝山县", + "value": "431127" + }, + { + "label": "新田县", + "value": "431128" + }, + { + "label": "江华瑶族自治县", + "value": "431129" + }, + { + "label": "永州经济技术开发区", + "value": "431171" + }, + { + "label": "永州市金洞管理区", + "value": "431172" + }, + { + "label": "永州市回龙圩管理区", + "value": "431173" + } + ], + [{ + "label": "鹤城区", + "value": "431202" + }, + { + "label": "中方县", + "value": "431221" + }, + { + "label": "沅陵县", + "value": "431222" + }, + { + "label": "辰溪县", + "value": "431223" + }, + { + "label": "溆浦县", + "value": "431224" + }, + { + "label": "会同县", + "value": "431225" + }, + { + "label": "麻阳苗族自治县", + "value": "431226" + }, + { + "label": "新晃侗族自治县", + "value": "431227" + }, + { + "label": "芷江侗族自治县", + "value": "431228" + }, + { + "label": "靖州苗族侗族自治县", + "value": "431229" + }, + { + "label": "通道侗族自治县", + "value": "431230" + }, + { + "label": "怀化市洪江管理区", + "value": "431271" + }, + { + "label": "洪江市", + "value": "431281" + } + ], + [{ + "label": "娄星区", + "value": "431302" + }, + { + "label": "双峰县", + "value": "431321" + }, + { + "label": "新化县", + "value": "431322" + }, + { + "label": "冷水江市", + "value": "431381" + }, + { + "label": "涟源市", + "value": "431382" + } + ], + [{ + "label": "吉首市", + "value": "433101" + }, + { + "label": "泸溪县", + "value": "433122" + }, + { + "label": "凤凰县", + "value": "433123" + }, + { + "label": "花垣县", + "value": "433124" + }, + { + "label": "保靖县", + "value": "433125" + }, + { + "label": "古丈县", + "value": "433126" + }, + { + "label": "永顺县", + "value": "433127" + }, + { + "label": "龙山县", + "value": "433130" + }, + { + "label": "湖南吉首经济开发区", + "value": "433172" + }, + { + "label": "湖南永顺经济开发区", + "value": "433173" + } + ] + ], + [ + [{ + "label": "荔湾区", + "value": "440103" + }, + { + "label": "越秀区", + "value": "440104" + }, + { + "label": "海珠区", + "value": "440105" + }, + { + "label": "天河区", + "value": "440106" + }, + { + "label": "白云区", + "value": "440111" + }, + { + "label": "黄埔区", + "value": "440112" + }, + { + "label": "番禺区", + "value": "440113" + }, + { + "label": "花都区", + "value": "440114" + }, + { + "label": "南沙区", + "value": "440115" + }, + { + "label": "从化区", + "value": "440117" + }, + { + "label": "增城区", + "value": "440118" + } + ], + [{ + "label": "武江区", + "value": "440203" + }, + { + "label": "浈江区", + "value": "440204" + }, + { + "label": "曲江区", + "value": "440205" + }, + { + "label": "始兴县", + "value": "440222" + }, + { + "label": "仁化县", + "value": "440224" + }, + { + "label": "翁源县", + "value": "440229" + }, + { + "label": "乳源瑶族自治县", + "value": "440232" + }, + { + "label": "新丰县", + "value": "440233" + }, + { + "label": "乐昌市", + "value": "440281" + }, + { + "label": "南雄市", + "value": "440282" + } + ], + [{ + "label": "罗湖区", + "value": "440303" + }, + { + "label": "福田区", + "value": "440304" + }, + { + "label": "南山区", + "value": "440305" + }, + { + "label": "宝安区", + "value": "440306" + }, + { + "label": "龙岗区", + "value": "440307" + }, + { + "label": "盐田区", + "value": "440308" + }, + { + "label": "龙华区", + "value": "440309" + }, + { + "label": "坪山区", + "value": "440310" + } + ], + [{ + "label": "香洲区", + "value": "440402" + }, + { + "label": "斗门区", + "value": "440403" + }, + { + "label": "金湾区", + "value": "440404" + } + ], + [{ + "label": "龙湖区", + "value": "440507" + }, + { + "label": "金平区", + "value": "440511" + }, + { + "label": "濠江区", + "value": "440512" + }, + { + "label": "潮阳区", + "value": "440513" + }, + { + "label": "潮南区", + "value": "440514" + }, + { + "label": "澄海区", + "value": "440515" + }, + { + "label": "南澳县", + "value": "440523" + } + ], + [{ + "label": "禅城区", + "value": "440604" + }, + { + "label": "南海区", + "value": "440605" + }, + { + "label": "顺德区", + "value": "440606" + }, + { + "label": "三水区", + "value": "440607" + }, + { + "label": "高明区", + "value": "440608" + } + ], + [{ + "label": "蓬江区", + "value": "440703" + }, + { + "label": "江海区", + "value": "440704" + }, + { + "label": "新会区", + "value": "440705" + }, + { + "label": "台山市", + "value": "440781" + }, + { + "label": "开平市", + "value": "440783" + }, + { + "label": "鹤山市", + "value": "440784" + }, + { + "label": "恩平市", + "value": "440785" + } + ], + [{ + "label": "赤坎区", + "value": "440802" + }, + { + "label": "霞山区", + "value": "440803" + }, + { + "label": "坡头区", + "value": "440804" + }, + { + "label": "麻章区", + "value": "440811" + }, + { + "label": "遂溪县", + "value": "440823" + }, + { + "label": "徐闻县", + "value": "440825" + }, + { + "label": "廉江市", + "value": "440881" + }, + { + "label": "雷州市", + "value": "440882" + }, + { + "label": "吴川市", + "value": "440883" + } + ], + [{ + "label": "茂南区", + "value": "440902" + }, + { + "label": "电白区", + "value": "440904" + }, + { + "label": "高州市", + "value": "440981" + }, + { + "label": "化州市", + "value": "440982" + }, + { + "label": "信宜市", + "value": "440983" + } + ], + [{ + "label": "端州区", + "value": "441202" + }, + { + "label": "鼎湖区", + "value": "441203" + }, + { + "label": "高要区", + "value": "441204" + }, + { + "label": "广宁县", + "value": "441223" + }, + { + "label": "怀集县", + "value": "441224" + }, + { + "label": "封开县", + "value": "441225" + }, + { + "label": "德庆县", + "value": "441226" + }, + { + "label": "四会市", + "value": "441284" + } + ], + [{ + "label": "惠城区", + "value": "441302" + }, + { + "label": "惠阳区", + "value": "441303" + }, + { + "label": "博罗县", + "value": "441322" + }, + { + "label": "惠东县", + "value": "441323" + }, + { + "label": "龙门县", + "value": "441324" + } + ], + [{ + "label": "梅江区", + "value": "441402" + }, + { + "label": "梅县区", + "value": "441403" + }, + { + "label": "大埔县", + "value": "441422" + }, + { + "label": "丰顺县", + "value": "441423" + }, + { + "label": "五华县", + "value": "441424" + }, + { + "label": "平远县", + "value": "441426" + }, + { + "label": "蕉岭县", + "value": "441427" + }, + { + "label": "兴宁市", + "value": "441481" + } + ], + [{ + "label": "城区", + "value": "441502" + }, + { + "label": "海丰县", + "value": "441521" + }, + { + "label": "陆河县", + "value": "441523" + }, + { + "label": "陆丰市", + "value": "441581" + } + ], + [{ + "label": "源城区", + "value": "441602" + }, + { + "label": "紫金县", + "value": "441621" + }, + { + "label": "龙川县", + "value": "441622" + }, + { + "label": "连平县", + "value": "441623" + }, + { + "label": "和平县", + "value": "441624" + }, + { + "label": "东源县", + "value": "441625" + } + ], + [{ + "label": "江城区", + "value": "441702" + }, + { + "label": "阳东区", + "value": "441704" + }, + { + "label": "阳西县", + "value": "441721" + }, + { + "label": "阳春市", + "value": "441781" + } + ], + [{ + "label": "清城区", + "value": "441802" + }, + { + "label": "清新区", + "value": "441803" + }, + { + "label": "佛冈县", + "value": "441821" + }, + { + "label": "阳山县", + "value": "441823" + }, + { + "label": "连山壮族瑶族自治县", + "value": "441825" + }, + { + "label": "连南瑶族自治县", + "value": "441826" + }, + { + "label": "英德市", + "value": "441881" + }, + { + "label": "连州市", + "value": "441882" + } + ], + [{ + "label": "东莞市", + "value": "441900" + }], + [{ + "label": "中山市", + "value": "442000" + }], + [{ + "label": "湘桥区", + "value": "445102" + }, + { + "label": "潮安区", + "value": "445103" + }, + { + "label": "饶平县", + "value": "445122" + } + ], + [{ + "label": "榕城区", + "value": "445202" + }, + { + "label": "揭东区", + "value": "445203" + }, + { + "label": "揭西县", + "value": "445222" + }, + { + "label": "惠来县", + "value": "445224" + }, + { + "label": "普宁市", + "value": "445281" + } + ], + [{ + "label": "云城区", + "value": "445302" + }, + { + "label": "云安区", + "value": "445303" + }, + { + "label": "新兴县", + "value": "445321" + }, + { + "label": "郁南县", + "value": "445322" + }, + { + "label": "罗定市", + "value": "445381" + } + ] + ], + [ + [{ + "label": "兴宁区", + "value": "450102" + }, + { + "label": "青秀区", + "value": "450103" + }, + { + "label": "江南区", + "value": "450105" + }, + { + "label": "西乡塘区", + "value": "450107" + }, + { + "label": "良庆区", + "value": "450108" + }, + { + "label": "邕宁区", + "value": "450109" + }, + { + "label": "武鸣区", + "value": "450110" + }, + { + "label": "隆安县", + "value": "450123" + }, + { + "label": "马山县", + "value": "450124" + }, + { + "label": "上林县", + "value": "450125" + }, + { + "label": "宾阳县", + "value": "450126" + }, + { + "label": "横县", + "value": "450127" + } + ], + [{ + "label": "城中区", + "value": "450202" + }, + { + "label": "鱼峰区", + "value": "450203" + }, + { + "label": "柳南区", + "value": "450204" + }, + { + "label": "柳北区", + "value": "450205" + }, + { + "label": "柳江区", + "value": "450206" + }, + { + "label": "柳城县", + "value": "450222" + }, + { + "label": "鹿寨县", + "value": "450223" + }, + { + "label": "融安县", + "value": "450224" + }, + { + "label": "融水苗族自治县", + "value": "450225" + }, + { + "label": "三江侗族自治县", + "value": "450226" + } + ], + [{ + "label": "秀峰区", + "value": "450302" + }, + { + "label": "叠彩区", + "value": "450303" + }, + { + "label": "象山区", + "value": "450304" + }, + { + "label": "七星区", + "value": "450305" + }, + { + "label": "雁山区", + "value": "450311" + }, + { + "label": "临桂区", + "value": "450312" + }, + { + "label": "阳朔县", + "value": "450321" + }, + { + "label": "灵川县", + "value": "450323" + }, + { + "label": "全州县", + "value": "450324" + }, + { + "label": "兴安县", + "value": "450325" + }, + { + "label": "永福县", + "value": "450326" + }, + { + "label": "灌阳县", + "value": "450327" + }, + { + "label": "龙胜各族自治县", + "value": "450328" + }, + { + "label": "资源县", + "value": "450329" + }, + { + "label": "平乐县", + "value": "450330" + }, + { + "label": "荔浦县", + "value": "450331" + }, + { + "label": "恭城瑶族自治县", + "value": "450332" + } + ], + [{ + "label": "万秀区", + "value": "450403" + }, + { + "label": "长洲区", + "value": "450405" + }, + { + "label": "龙圩区", + "value": "450406" + }, + { + "label": "苍梧县", + "value": "450421" + }, + { + "label": "藤县", + "value": "450422" + }, + { + "label": "蒙山县", + "value": "450423" + }, + { + "label": "岑溪市", + "value": "450481" + } + ], + [{ + "label": "海城区", + "value": "450502" + }, + { + "label": "银海区", + "value": "450503" + }, + { + "label": "铁山港区", + "value": "450512" + }, + { + "label": "合浦县", + "value": "450521" + } + ], + [{ + "label": "港口区", + "value": "450602" + }, + { + "label": "防城区", + "value": "450603" + }, + { + "label": "上思县", + "value": "450621" + }, + { + "label": "东兴市", + "value": "450681" + } + ], + [{ + "label": "钦南区", + "value": "450702" + }, + { + "label": "钦北区", + "value": "450703" + }, + { + "label": "灵山县", + "value": "450721" + }, + { + "label": "浦北县", + "value": "450722" + } + ], + [{ + "label": "港北区", + "value": "450802" + }, + { + "label": "港南区", + "value": "450803" + }, + { + "label": "覃塘区", + "value": "450804" + }, + { + "label": "平南县", + "value": "450821" + }, + { + "label": "桂平市", + "value": "450881" + } + ], + [{ + "label": "玉州区", + "value": "450902" + }, + { + "label": "福绵区", + "value": "450903" + }, + { + "label": "容县", + "value": "450921" + }, + { + "label": "陆川县", + "value": "450922" + }, + { + "label": "博白县", + "value": "450923" + }, + { + "label": "兴业县", + "value": "450924" + }, + { + "label": "北流市", + "value": "450981" + } + ], + [{ + "label": "右江区", + "value": "451002" + }, + { + "label": "田阳县", + "value": "451021" + }, + { + "label": "田东县", + "value": "451022" + }, + { + "label": "平果县", + "value": "451023" + }, + { + "label": "德保县", + "value": "451024" + }, + { + "label": "那坡县", + "value": "451026" + }, + { + "label": "凌云县", + "value": "451027" + }, + { + "label": "乐业县", + "value": "451028" + }, + { + "label": "田林县", + "value": "451029" + }, + { + "label": "西林县", + "value": "451030" + }, + { + "label": "隆林各族自治县", + "value": "451031" + }, + { + "label": "靖西市", + "value": "451081" + } + ], + [{ + "label": "八步区", + "value": "451102" + }, + { + "label": "平桂区", + "value": "451103" + }, + { + "label": "昭平县", + "value": "451121" + }, + { + "label": "钟山县", + "value": "451122" + }, + { + "label": "富川瑶族自治县", + "value": "451123" + } + ], + [{ + "label": "金城江区", + "value": "451202" + }, + { + "label": "宜州区", + "value": "451203" + }, + { + "label": "南丹县", + "value": "451221" + }, + { + "label": "天峨县", + "value": "451222" + }, + { + "label": "凤山县", + "value": "451223" + }, + { + "label": "东兰县", + "value": "451224" + }, + { + "label": "罗城仫佬族自治县", + "value": "451225" + }, + { + "label": "环江毛南族自治县", + "value": "451226" + }, + { + "label": "巴马瑶族自治县", + "value": "451227" + }, + { + "label": "都安瑶族自治县", + "value": "451228" + }, + { + "label": "大化瑶族自治县", + "value": "451229" + } + ], + [{ + "label": "兴宾区", + "value": "451302" + }, + { + "label": "忻城县", + "value": "451321" + }, + { + "label": "象州县", + "value": "451322" + }, + { + "label": "武宣县", + "value": "451323" + }, + { + "label": "金秀瑶族自治县", + "value": "451324" + }, + { + "label": "合山市", + "value": "451381" + } + ], + [{ + "label": "江州区", + "value": "451402" + }, + { + "label": "扶绥县", + "value": "451421" + }, + { + "label": "宁明县", + "value": "451422" + }, + { + "label": "龙州县", + "value": "451423" + }, + { + "label": "大新县", + "value": "451424" + }, + { + "label": "天等县", + "value": "451425" + }, + { + "label": "凭祥市", + "value": "451481" + } + ] + ], + [ + [{ + "label": "秀英区", + "value": "460105" + }, + { + "label": "龙华区", + "value": "460106" + }, + { + "label": "琼山区", + "value": "460107" + }, + { + "label": "美兰区", + "value": "460108" + } + ], + [{ + "label": "海棠区", + "value": "460202" + }, + { + "label": "吉阳区", + "value": "460203" + }, + { + "label": "天涯区", + "value": "460204" + }, + { + "label": "崖州区", + "value": "460205" + } + ], + [{ + "label": "西沙群岛", + "value": "460321" + }, + { + "label": "南沙群岛", + "value": "460322" + }, + { + "label": "中沙群岛的岛礁及其海域", + "value": "460323" + } + ], + [{ + "label": "儋州市", + "value": "460400" + }], + [{ + "label": "五指山市", + "value": "469001" + }, + { + "label": "琼海市", + "value": "469002" + }, + { + "label": "文昌市", + "value": "469005" + }, + { + "label": "万宁市", + "value": "469006" + }, + { + "label": "东方市", + "value": "469007" + }, + { + "label": "定安县", + "value": "469021" + }, + { + "label": "屯昌县", + "value": "469022" + }, + { + "label": "澄迈县", + "value": "469023" + }, + { + "label": "临高县", + "value": "469024" + }, + { + "label": "白沙黎族自治县", + "value": "469025" + }, + { + "label": "昌江黎族自治县", + "value": "469026" + }, + { + "label": "乐东黎族自治县", + "value": "469027" + }, + { + "label": "陵水黎族自治县", + "value": "469028" + }, + { + "label": "保亭黎族苗族自治县", + "value": "469029" + }, + { + "label": "琼中黎族苗族自治县", + "value": "469030" + } + ] + ], + [ + [{ + "label": "万州区", + "value": "500101" + }, + { + "label": "涪陵区", + "value": "500102" + }, + { + "label": "渝中区", + "value": "500103" + }, + { + "label": "大渡口区", + "value": "500104" + }, + { + "label": "江北区", + "value": "500105" + }, + { + "label": "沙坪坝区", + "value": "500106" + }, + { + "label": "九龙坡区", + "value": "500107" + }, + { + "label": "南岸区", + "value": "500108" + }, + { + "label": "北碚区", + "value": "500109" + }, + { + "label": "綦江区", + "value": "500110" + }, + { + "label": "大足区", + "value": "500111" + }, + { + "label": "渝北区", + "value": "500112" + }, + { + "label": "巴南区", + "value": "500113" + }, + { + "label": "黔江区", + "value": "500114" + }, + { + "label": "长寿区", + "value": "500115" + }, + { + "label": "江津区", + "value": "500116" + }, + { + "label": "合川区", + "value": "500117" + }, + { + "label": "永川区", + "value": "500118" + }, + { + "label": "南川区", + "value": "500119" + }, + { + "label": "璧山区", + "value": "500120" + }, + { + "label": "铜梁区", + "value": "500151" + }, + { + "label": "潼南区", + "value": "500152" + }, + { + "label": "荣昌区", + "value": "500153" + }, + { + "label": "开州区", + "value": "500154" + }, + { + "label": "梁平区", + "value": "500155" + }, + { + "label": "武隆区", + "value": "500156" + } + ], + [{ + "label": "城口县", + "value": "500229" + }, + { + "label": "丰都县", + "value": "500230" + }, + { + "label": "垫江县", + "value": "500231" + }, + { + "label": "忠县", + "value": "500233" + }, + { + "label": "云阳县", + "value": "500235" + }, + { + "label": "奉节县", + "value": "500236" + }, + { + "label": "巫山县", + "value": "500237" + }, + { + "label": "巫溪县", + "value": "500238" + }, + { + "label": "石柱土家族自治县", + "value": "500240" + }, + { + "label": "秀山土家族苗族自治县", + "value": "500241" + }, + { + "label": "酉阳土家族苗族自治县", + "value": "500242" + }, + { + "label": "彭水苗族土家族自治县", + "value": "500243" + } + ] + ], + [ + [{ + "label": "锦江区", + "value": "510104" + }, + { + "label": "青羊区", + "value": "510105" + }, + { + "label": "金牛区", + "value": "510106" + }, + { + "label": "武侯区", + "value": "510107" + }, + { + "label": "成华区", + "value": "510108" + }, + { + "label": "龙泉驿区", + "value": "510112" + }, + { + "label": "青白江区", + "value": "510113" + }, + { + "label": "新都区", + "value": "510114" + }, + { + "label": "温江区", + "value": "510115" + }, + { + "label": "双流区", + "value": "510116" + }, + { + "label": "郫都区", + "value": "510117" + }, + { + "label": "金堂县", + "value": "510121" + }, + { + "label": "大邑县", + "value": "510129" + }, + { + "label": "蒲江县", + "value": "510131" + }, + { + "label": "新津县", + "value": "510132" + }, + { + "label": "都江堰市", + "value": "510181" + }, + { + "label": "彭州市", + "value": "510182" + }, + { + "label": "邛崃市", + "value": "510183" + }, + { + "label": "崇州市", + "value": "510184" + }, + { + "label": "简阳市", + "value": "510185" + } + ], + [{ + "label": "自流井区", + "value": "510302" + }, + { + "label": "贡井区", + "value": "510303" + }, + { + "label": "大安区", + "value": "510304" + }, + { + "label": "沿滩区", + "value": "510311" + }, + { + "label": "荣县", + "value": "510321" + }, + { + "label": "富顺县", + "value": "510322" + } + ], + [{ + "label": "东区", + "value": "510402" + }, + { + "label": "西区", + "value": "510403" + }, + { + "label": "仁和区", + "value": "510411" + }, + { + "label": "米易县", + "value": "510421" + }, + { + "label": "盐边县", + "value": "510422" + } + ], + [{ + "label": "江阳区", + "value": "510502" + }, + { + "label": "纳溪区", + "value": "510503" + }, + { + "label": "龙马潭区", + "value": "510504" + }, + { + "label": "泸县", + "value": "510521" + }, + { + "label": "合江县", + "value": "510522" + }, + { + "label": "叙永县", + "value": "510524" + }, + { + "label": "古蔺县", + "value": "510525" + } + ], + [{ + "label": "旌阳区", + "value": "510603" + }, + { + "label": "罗江区", + "value": "510604" + }, + { + "label": "中江县", + "value": "510623" + }, + { + "label": "广汉市", + "value": "510681" + }, + { + "label": "什邡市", + "value": "510682" + }, + { + "label": "绵竹市", + "value": "510683" + } + ], + [{ + "label": "涪城区", + "value": "510703" + }, + { + "label": "游仙区", + "value": "510704" + }, + { + "label": "安州区", + "value": "510705" + }, + { + "label": "三台县", + "value": "510722" + }, + { + "label": "盐亭县", + "value": "510723" + }, + { + "label": "梓潼县", + "value": "510725" + }, + { + "label": "北川羌族自治县", + "value": "510726" + }, + { + "label": "平武县", + "value": "510727" + }, + { + "label": "江油市", + "value": "510781" + } + ], + [{ + "label": "利州区", + "value": "510802" + }, + { + "label": "昭化区", + "value": "510811" + }, + { + "label": "朝天区", + "value": "510812" + }, + { + "label": "旺苍县", + "value": "510821" + }, + { + "label": "青川县", + "value": "510822" + }, + { + "label": "剑阁县", + "value": "510823" + }, + { + "label": "苍溪县", + "value": "510824" + } + ], + [{ + "label": "船山区", + "value": "510903" + }, + { + "label": "安居区", + "value": "510904" + }, + { + "label": "蓬溪县", + "value": "510921" + }, + { + "label": "射洪县", + "value": "510922" + }, + { + "label": "大英县", + "value": "510923" + } + ], + [{ + "label": "市中区", + "value": "511002" + }, + { + "label": "东兴区", + "value": "511011" + }, + { + "label": "威远县", + "value": "511024" + }, + { + "label": "资中县", + "value": "511025" + }, + { + "label": "内江经济开发区", + "value": "511071" + }, + { + "label": "隆昌市", + "value": "511083" + } + ], + [{ + "label": "市中区", + "value": "511102" + }, + { + "label": "沙湾区", + "value": "511111" + }, + { + "label": "五通桥区", + "value": "511112" + }, + { + "label": "金口河区", + "value": "511113" + }, + { + "label": "犍为县", + "value": "511123" + }, + { + "label": "井研县", + "value": "511124" + }, + { + "label": "夹江县", + "value": "511126" + }, + { + "label": "沐川县", + "value": "511129" + }, + { + "label": "峨边彝族自治县", + "value": "511132" + }, + { + "label": "马边彝族自治县", + "value": "511133" + }, + { + "label": "峨眉山市", + "value": "511181" + } + ], + [{ + "label": "顺庆区", + "value": "511302" + }, + { + "label": "高坪区", + "value": "511303" + }, + { + "label": "嘉陵区", + "value": "511304" + }, + { + "label": "南部县", + "value": "511321" + }, + { + "label": "营山县", + "value": "511322" + }, + { + "label": "蓬安县", + "value": "511323" + }, + { + "label": "仪陇县", + "value": "511324" + }, + { + "label": "西充县", + "value": "511325" + }, + { + "label": "阆中市", + "value": "511381" + } + ], + [{ + "label": "东坡区", + "value": "511402" + }, + { + "label": "彭山区", + "value": "511403" + }, + { + "label": "仁寿县", + "value": "511421" + }, + { + "label": "洪雅县", + "value": "511423" + }, + { + "label": "丹棱县", + "value": "511424" + }, + { + "label": "青神县", + "value": "511425" + } + ], + [{ + "label": "翠屏区", + "value": "511502" + }, + { + "label": "南溪区", + "value": "511503" + }, + { + "label": "宜宾县", + "value": "511521" + }, + { + "label": "江安县", + "value": "511523" + }, + { + "label": "长宁县", + "value": "511524" + }, + { + "label": "高县", + "value": "511525" + }, + { + "label": "珙县", + "value": "511526" + }, + { + "label": "筠连县", + "value": "511527" + }, + { + "label": "兴文县", + "value": "511528" + }, + { + "label": "屏山县", + "value": "511529" + } + ], + [{ + "label": "广安区", + "value": "511602" + }, + { + "label": "前锋区", + "value": "511603" + }, + { + "label": "岳池县", + "value": "511621" + }, + { + "label": "武胜县", + "value": "511622" + }, + { + "label": "邻水县", + "value": "511623" + }, + { + "label": "华蓥市", + "value": "511681" + } + ], + [{ + "label": "通川区", + "value": "511702" + }, + { + "label": "达川区", + "value": "511703" + }, + { + "label": "宣汉县", + "value": "511722" + }, + { + "label": "开江县", + "value": "511723" + }, + { + "label": "大竹县", + "value": "511724" + }, + { + "label": "渠县", + "value": "511725" + }, + { + "label": "达州经济开发区", + "value": "511771" + }, + { + "label": "万源市", + "value": "511781" + } + ], + [{ + "label": "雨城区", + "value": "511802" + }, + { + "label": "名山区", + "value": "511803" + }, + { + "label": "荥经县", + "value": "511822" + }, + { + "label": "汉源县", + "value": "511823" + }, + { + "label": "石棉县", + "value": "511824" + }, + { + "label": "天全县", + "value": "511825" + }, + { + "label": "芦山县", + "value": "511826" + }, + { + "label": "宝兴县", + "value": "511827" + } + ], + [{ + "label": "巴州区", + "value": "511902" + }, + { + "label": "恩阳区", + "value": "511903" + }, + { + "label": "通江县", + "value": "511921" + }, + { + "label": "南江县", + "value": "511922" + }, + { + "label": "平昌县", + "value": "511923" + }, + { + "label": "巴中经济开发区", + "value": "511971" + } + ], + [{ + "label": "雁江区", + "value": "512002" + }, + { + "label": "安岳县", + "value": "512021" + }, + { + "label": "乐至县", + "value": "512022" + } + ], + [{ + "label": "马尔康市", + "value": "513201" + }, + { + "label": "汶川县", + "value": "513221" + }, + { + "label": "理县", + "value": "513222" + }, + { + "label": "茂县", + "value": "513223" + }, + { + "label": "松潘县", + "value": "513224" + }, + { + "label": "九寨沟县", + "value": "513225" + }, + { + "label": "金川县", + "value": "513226" + }, + { + "label": "小金县", + "value": "513227" + }, + { + "label": "黑水县", + "value": "513228" + }, + { + "label": "壤塘县", + "value": "513230" + }, + { + "label": "阿坝县", + "value": "513231" + }, + { + "label": "若尔盖县", + "value": "513232" + }, + { + "label": "红原县", + "value": "513233" + } + ], + [{ + "label": "康定市", + "value": "513301" + }, + { + "label": "泸定县", + "value": "513322" + }, + { + "label": "丹巴县", + "value": "513323" + }, + { + "label": "九龙县", + "value": "513324" + }, + { + "label": "雅江县", + "value": "513325" + }, + { + "label": "道孚县", + "value": "513326" + }, + { + "label": "炉霍县", + "value": "513327" + }, + { + "label": "甘孜县", + "value": "513328" + }, + { + "label": "新龙县", + "value": "513329" + }, + { + "label": "德格县", + "value": "513330" + }, + { + "label": "白玉县", + "value": "513331" + }, + { + "label": "石渠县", + "value": "513332" + }, + { + "label": "色达县", + "value": "513333" + }, + { + "label": "理塘县", + "value": "513334" + }, + { + "label": "巴塘县", + "value": "513335" + }, + { + "label": "乡城县", + "value": "513336" + }, + { + "label": "稻城县", + "value": "513337" + }, + { + "label": "得荣县", + "value": "513338" + } + ], + [{ + "label": "西昌市", + "value": "513401" + }, + { + "label": "木里藏族自治县", + "value": "513422" + }, + { + "label": "盐源县", + "value": "513423" + }, + { + "label": "德昌县", + "value": "513424" + }, + { + "label": "会理县", + "value": "513425" + }, + { + "label": "会东县", + "value": "513426" + }, + { + "label": "宁南县", + "value": "513427" + }, + { + "label": "普格县", + "value": "513428" + }, + { + "label": "布拖县", + "value": "513429" + }, + { + "label": "金阳县", + "value": "513430" + }, + { + "label": "昭觉县", + "value": "513431" + }, + { + "label": "喜德县", + "value": "513432" + }, + { + "label": "冕宁县", + "value": "513433" + }, + { + "label": "越西县", + "value": "513434" + }, + { + "label": "甘洛县", + "value": "513435" + }, + { + "label": "美姑县", + "value": "513436" + }, + { + "label": "雷波县", + "value": "513437" + } + ] + ], + [ + [{ + "label": "南明区", + "value": "520102" + }, + { + "label": "云岩区", + "value": "520103" + }, + { + "label": "花溪区", + "value": "520111" + }, + { + "label": "乌当区", + "value": "520112" + }, + { + "label": "白云区", + "value": "520113" + }, + { + "label": "观山湖区", + "value": "520115" + }, + { + "label": "开阳县", + "value": "520121" + }, + { + "label": "息烽县", + "value": "520122" + }, + { + "label": "修文县", + "value": "520123" + }, + { + "label": "清镇市", + "value": "520181" + } + ], + [{ + "label": "钟山区", + "value": "520201" + }, + { + "label": "六枝特区", + "value": "520203" + }, + { + "label": "水城县", + "value": "520221" + }, + { + "label": "盘州市", + "value": "520281" + } + ], + [{ + "label": "红花岗区", + "value": "520302" + }, + { + "label": "汇川区", + "value": "520303" + }, + { + "label": "播州区", + "value": "520304" + }, + { + "label": "桐梓县", + "value": "520322" + }, + { + "label": "绥阳县", + "value": "520323" + }, + { + "label": "正安县", + "value": "520324" + }, + { + "label": "道真仡佬族苗族自治县", + "value": "520325" + }, + { + "label": "务川仡佬族苗族自治县", + "value": "520326" + }, + { + "label": "凤冈县", + "value": "520327" + }, + { + "label": "湄潭县", + "value": "520328" + }, + { + "label": "余庆县", + "value": "520329" + }, + { + "label": "习水县", + "value": "520330" + }, + { + "label": "赤水市", + "value": "520381" + }, + { + "label": "仁怀市", + "value": "520382" + } + ], + [{ + "label": "西秀区", + "value": "520402" + }, + { + "label": "平坝区", + "value": "520403" + }, + { + "label": "普定县", + "value": "520422" + }, + { + "label": "镇宁布依族苗族自治县", + "value": "520423" + }, + { + "label": "关岭布依族苗族自治县", + "value": "520424" + }, + { + "label": "紫云苗族布依族自治县", + "value": "520425" + } + ], + [{ + "label": "七星关区", + "value": "520502" + }, + { + "label": "大方县", + "value": "520521" + }, + { + "label": "黔西县", + "value": "520522" + }, + { + "label": "金沙县", + "value": "520523" + }, + { + "label": "织金县", + "value": "520524" + }, + { + "label": "纳雍县", + "value": "520525" + }, + { + "label": "威宁彝族回族苗族自治县", + "value": "520526" + }, + { + "label": "赫章县", + "value": "520527" + } + ], + [{ + "label": "碧江区", + "value": "520602" + }, + { + "label": "万山区", + "value": "520603" + }, + { + "label": "江口县", + "value": "520621" + }, + { + "label": "玉屏侗族自治县", + "value": "520622" + }, + { + "label": "石阡县", + "value": "520623" + }, + { + "label": "思南县", + "value": "520624" + }, + { + "label": "印江土家族苗族自治县", + "value": "520625" + }, + { + "label": "德江县", + "value": "520626" + }, + { + "label": "沿河土家族自治县", + "value": "520627" + }, + { + "label": "松桃苗族自治县", + "value": "520628" + } + ], + [{ + "label": "兴义市", + "value": "522301" + }, + { + "label": "兴仁县", + "value": "522322" + }, + { + "label": "普安县", + "value": "522323" + }, + { + "label": "晴隆县", + "value": "522324" + }, + { + "label": "贞丰县", + "value": "522325" + }, + { + "label": "望谟县", + "value": "522326" + }, + { + "label": "册亨县", + "value": "522327" + }, + { + "label": "安龙县", + "value": "522328" + } + ], + [{ + "label": "凯里市", + "value": "522601" + }, + { + "label": "黄平县", + "value": "522622" + }, + { + "label": "施秉县", + "value": "522623" + }, + { + "label": "三穗县", + "value": "522624" + }, + { + "label": "镇远县", + "value": "522625" + }, + { + "label": "岑巩县", + "value": "522626" + }, + { + "label": "天柱县", + "value": "522627" + }, + { + "label": "锦屏县", + "value": "522628" + }, + { + "label": "剑河县", + "value": "522629" + }, + { + "label": "台江县", + "value": "522630" + }, + { + "label": "黎平县", + "value": "522631" + }, + { + "label": "榕江县", + "value": "522632" + }, + { + "label": "从江县", + "value": "522633" + }, + { + "label": "雷山县", + "value": "522634" + }, + { + "label": "麻江县", + "value": "522635" + }, + { + "label": "丹寨县", + "value": "522636" + } + ], + [{ + "label": "都匀市", + "value": "522701" + }, + { + "label": "福泉市", + "value": "522702" + }, + { + "label": "荔波县", + "value": "522722" + }, + { + "label": "贵定县", + "value": "522723" + }, + { + "label": "瓮安县", + "value": "522725" + }, + { + "label": "独山县", + "value": "522726" + }, + { + "label": "平塘县", + "value": "522727" + }, + { + "label": "罗甸县", + "value": "522728" + }, + { + "label": "长顺县", + "value": "522729" + }, + { + "label": "龙里县", + "value": "522730" + }, + { + "label": "惠水县", + "value": "522731" + }, + { + "label": "三都水族自治县", + "value": "522732" + } + ] + ], + [ + [{ + "label": "五华区", + "value": "530102" + }, + { + "label": "盘龙区", + "value": "530103" + }, + { + "label": "官渡区", + "value": "530111" + }, + { + "label": "西山区", + "value": "530112" + }, + { + "label": "东川区", + "value": "530113" + }, + { + "label": "呈贡区", + "value": "530114" + }, + { + "label": "晋宁区", + "value": "530115" + }, + { + "label": "富民县", + "value": "530124" + }, + { + "label": "宜良县", + "value": "530125" + }, + { + "label": "石林彝族自治县", + "value": "530126" + }, + { + "label": "嵩明县", + "value": "530127" + }, + { + "label": "禄劝彝族苗族自治县", + "value": "530128" + }, + { + "label": "寻甸回族彝族自治县", + "value": "530129" + }, + { + "label": "安宁市", + "value": "530181" + } + ], + [{ + "label": "麒麟区", + "value": "530302" + }, + { + "label": "沾益区", + "value": "530303" + }, + { + "label": "马龙县", + "value": "530321" + }, + { + "label": "陆良县", + "value": "530322" + }, + { + "label": "师宗县", + "value": "530323" + }, + { + "label": "罗平县", + "value": "530324" + }, + { + "label": "富源县", + "value": "530325" + }, + { + "label": "会泽县", + "value": "530326" + }, + { + "label": "宣威市", + "value": "530381" + } + ], + [{ + "label": "红塔区", + "value": "530402" + }, + { + "label": "江川区", + "value": "530403" + }, + { + "label": "澄江县", + "value": "530422" + }, + { + "label": "通海县", + "value": "530423" + }, + { + "label": "华宁县", + "value": "530424" + }, + { + "label": "易门县", + "value": "530425" + }, + { + "label": "峨山彝族自治县", + "value": "530426" + }, + { + "label": "新平彝族傣族自治县", + "value": "530427" + }, + { + "label": "元江哈尼族彝族傣族自治县", + "value": "530428" + } + ], + [{ + "label": "隆阳区", + "value": "530502" + }, + { + "label": "施甸县", + "value": "530521" + }, + { + "label": "龙陵县", + "value": "530523" + }, + { + "label": "昌宁县", + "value": "530524" + }, + { + "label": "腾冲市", + "value": "530581" + } + ], + [{ + "label": "昭阳区", + "value": "530602" + }, + { + "label": "鲁甸县", + "value": "530621" + }, + { + "label": "巧家县", + "value": "530622" + }, + { + "label": "盐津县", + "value": "530623" + }, + { + "label": "大关县", + "value": "530624" + }, + { + "label": "永善县", + "value": "530625" + }, + { + "label": "绥江县", + "value": "530626" + }, + { + "label": "镇雄县", + "value": "530627" + }, + { + "label": "彝良县", + "value": "530628" + }, + { + "label": "威信县", + "value": "530629" + }, + { + "label": "水富县", + "value": "530630" + } + ], + [{ + "label": "古城区", + "value": "530702" + }, + { + "label": "玉龙纳西族自治县", + "value": "530721" + }, + { + "label": "永胜县", + "value": "530722" + }, + { + "label": "华坪县", + "value": "530723" + }, + { + "label": "宁蒗彝族自治县", + "value": "530724" + } + ], + [{ + "label": "思茅区", + "value": "530802" + }, + { + "label": "宁洱哈尼族彝族自治县", + "value": "530821" + }, + { + "label": "墨江哈尼族自治县", + "value": "530822" + }, + { + "label": "景东彝族自治县", + "value": "530823" + }, + { + "label": "景谷傣族彝族自治县", + "value": "530824" + }, + { + "label": "镇沅彝族哈尼族拉祜族自治县", + "value": "530825" + }, + { + "label": "江城哈尼族彝族自治县", + "value": "530826" + }, + { + "label": "孟连傣族拉祜族佤族自治县", + "value": "530827" + }, + { + "label": "澜沧拉祜族自治县", + "value": "530828" + }, + { + "label": "西盟佤族自治县", + "value": "530829" + } + ], + [{ + "label": "临翔区", + "value": "530902" + }, + { + "label": "凤庆县", + "value": "530921" + }, + { + "label": "云县", + "value": "530922" + }, + { + "label": "永德县", + "value": "530923" + }, + { + "label": "镇康县", + "value": "530924" + }, + { + "label": "双江拉祜族佤族布朗族傣族自治县", + "value": "530925" + }, + { + "label": "耿马傣族佤族自治县", + "value": "530926" + }, + { + "label": "沧源佤族自治县", + "value": "530927" + } + ], + [{ + "label": "楚雄市", + "value": "532301" + }, + { + "label": "双柏县", + "value": "532322" + }, + { + "label": "牟定县", + "value": "532323" + }, + { + "label": "南华县", + "value": "532324" + }, + { + "label": "姚安县", + "value": "532325" + }, + { + "label": "大姚县", + "value": "532326" + }, + { + "label": "永仁县", + "value": "532327" + }, + { + "label": "元谋县", + "value": "532328" + }, + { + "label": "武定县", + "value": "532329" + }, + { + "label": "禄丰县", + "value": "532331" + } + ], + [{ + "label": "个旧市", + "value": "532501" + }, + { + "label": "开远市", + "value": "532502" + }, + { + "label": "蒙自市", + "value": "532503" + }, + { + "label": "弥勒市", + "value": "532504" + }, + { + "label": "屏边苗族自治县", + "value": "532523" + }, + { + "label": "建水县", + "value": "532524" + }, + { + "label": "石屏县", + "value": "532525" + }, + { + "label": "泸西县", + "value": "532527" + }, + { + "label": "元阳县", + "value": "532528" + }, + { + "label": "红河县", + "value": "532529" + }, + { + "label": "金平苗族瑶族傣族自治县", + "value": "532530" + }, + { + "label": "绿春县", + "value": "532531" + }, + { + "label": "河口瑶族自治县", + "value": "532532" + } + ], + [{ + "label": "文山市", + "value": "532601" + }, + { + "label": "砚山县", + "value": "532622" + }, + { + "label": "西畴县", + "value": "532623" + }, + { + "label": "麻栗坡县", + "value": "532624" + }, + { + "label": "马关县", + "value": "532625" + }, + { + "label": "丘北县", + "value": "532626" + }, + { + "label": "广南县", + "value": "532627" + }, + { + "label": "富宁县", + "value": "532628" + } + ], + [{ + "label": "景洪市", + "value": "532801" + }, + { + "label": "勐海县", + "value": "532822" + }, + { + "label": "勐腊县", + "value": "532823" + } + ], + [{ + "label": "大理市", + "value": "532901" + }, + { + "label": "漾濞彝族自治县", + "value": "532922" + }, + { + "label": "祥云县", + "value": "532923" + }, + { + "label": "宾川县", + "value": "532924" + }, + { + "label": "弥渡县", + "value": "532925" + }, + { + "label": "南涧彝族自治县", + "value": "532926" + }, + { + "label": "巍山彝族回族自治县", + "value": "532927" + }, + { + "label": "永平县", + "value": "532928" + }, + { + "label": "云龙县", + "value": "532929" + }, + { + "label": "洱源县", + "value": "532930" + }, + { + "label": "剑川县", + "value": "532931" + }, + { + "label": "鹤庆县", + "value": "532932" + } + ], + [{ + "label": "瑞丽市", + "value": "533102" + }, + { + "label": "芒市", + "value": "533103" + }, + { + "label": "梁河县", + "value": "533122" + }, + { + "label": "盈江县", + "value": "533123" + }, + { + "label": "陇川县", + "value": "533124" + } + ], + [{ + "label": "泸水市", + "value": "533301" + }, + { + "label": "福贡县", + "value": "533323" + }, + { + "label": "贡山独龙族怒族自治县", + "value": "533324" + }, + { + "label": "兰坪白族普米族自治县", + "value": "533325" + } + ], + [{ + "label": "香格里拉市", + "value": "533401" + }, + { + "label": "德钦县", + "value": "533422" + }, + { + "label": "维西傈僳族自治县", + "value": "533423" + } + ] + ], + [ + [{ + "label": "城关区", + "value": "540102" + }, + { + "label": "堆龙德庆区", + "value": "540103" + }, + { + "label": "林周县", + "value": "540121" + }, + { + "label": "当雄县", + "value": "540122" + }, + { + "label": "尼木县", + "value": "540123" + }, + { + "label": "曲水县", + "value": "540124" + }, + { + "label": "达孜县", + "value": "540126" + }, + { + "label": "墨竹工卡县", + "value": "540127" + }, + { + "label": "格尔木藏青工业园区", + "value": "540171" + }, + { + "label": "拉萨经济技术开发区", + "value": "540172" + }, + { + "label": "西藏文化旅游创意园区", + "value": "540173" + }, + { + "label": "达孜工业园区", + "value": "540174" + } + ], + [{ + "label": "桑珠孜区", + "value": "540202" + }, + { + "label": "南木林县", + "value": "540221" + }, + { + "label": "江孜县", + "value": "540222" + }, + { + "label": "定日县", + "value": "540223" + }, + { + "label": "萨迦县", + "value": "540224" + }, + { + "label": "拉孜县", + "value": "540225" + }, + { + "label": "昂仁县", + "value": "540226" + }, + { + "label": "谢通门县", + "value": "540227" + }, + { + "label": "白朗县", + "value": "540228" + }, + { + "label": "仁布县", + "value": "540229" + }, + { + "label": "康马县", + "value": "540230" + }, + { + "label": "定结县", + "value": "540231" + }, + { + "label": "仲巴县", + "value": "540232" + }, + { + "label": "亚东县", + "value": "540233" + }, + { + "label": "吉隆县", + "value": "540234" + }, + { + "label": "聂拉木县", + "value": "540235" + }, + { + "label": "萨嘎县", + "value": "540236" + }, + { + "label": "岗巴县", + "value": "540237" + } + ], + [{ + "label": "卡若区", + "value": "540302" + }, + { + "label": "江达县", + "value": "540321" + }, + { + "label": "贡觉县", + "value": "540322" + }, + { + "label": "类乌齐县", + "value": "540323" + }, + { + "label": "丁青县", + "value": "540324" + }, + { + "label": "察雅县", + "value": "540325" + }, + { + "label": "八宿县", + "value": "540326" + }, + { + "label": "左贡县", + "value": "540327" + }, + { + "label": "芒康县", + "value": "540328" + }, + { + "label": "洛隆县", + "value": "540329" + }, + { + "label": "边坝县", + "value": "540330" + } + ], + [{ + "label": "巴宜区", + "value": "540402" + }, + { + "label": "工布江达县", + "value": "540421" + }, + { + "label": "米林县", + "value": "540422" + }, + { + "label": "墨脱县", + "value": "540423" + }, + { + "label": "波密县", + "value": "540424" + }, + { + "label": "察隅县", + "value": "540425" + }, + { + "label": "朗县", + "value": "540426" + } + ], + [{ + "label": "乃东区", + "value": "540502" + }, + { + "label": "扎囊县", + "value": "540521" + }, + { + "label": "贡嘎县", + "value": "540522" + }, + { + "label": "桑日县", + "value": "540523" + }, + { + "label": "琼结县", + "value": "540524" + }, + { + "label": "曲松县", + "value": "540525" + }, + { + "label": "措美县", + "value": "540526" + }, + { + "label": "洛扎县", + "value": "540527" + }, + { + "label": "加查县", + "value": "540528" + }, + { + "label": "隆子县", + "value": "540529" + }, + { + "label": "错那县", + "value": "540530" + }, + { + "label": "浪卡子县", + "value": "540531" + } + ], + [{ + "label": "那曲县", + "value": "542421" + }, + { + "label": "嘉黎县", + "value": "542422" + }, + { + "label": "比如县", + "value": "542423" + }, + { + "label": "聂荣县", + "value": "542424" + }, + { + "label": "安多县", + "value": "542425" + }, + { + "label": "申扎县", + "value": "542426" + }, + { + "label": "索县", + "value": "542427" + }, + { + "label": "班戈县", + "value": "542428" + }, + { + "label": "巴青县", + "value": "542429" + }, + { + "label": "尼玛县", + "value": "542430" + }, + { + "label": "双湖县", + "value": "542431" + } + ], + [{ + "label": "普兰县", + "value": "542521" + }, + { + "label": "札达县", + "value": "542522" + }, + { + "label": "噶尔县", + "value": "542523" + }, + { + "label": "日土县", + "value": "542524" + }, + { + "label": "革吉县", + "value": "542525" + }, + { + "label": "改则县", + "value": "542526" + }, + { + "label": "措勤县", + "value": "542527" + } + ] + ], + [ + [{ + "label": "新城区", + "value": "610102" + }, + { + "label": "碑林区", + "value": "610103" + }, + { + "label": "莲湖区", + "value": "610104" + }, + { + "label": "灞桥区", + "value": "610111" + }, + { + "label": "未央区", + "value": "610112" + }, + { + "label": "雁塔区", + "value": "610113" + }, + { + "label": "阎良区", + "value": "610114" + }, + { + "label": "临潼区", + "value": "610115" + }, + { + "label": "长安区", + "value": "610116" + }, + { + "label": "高陵区", + "value": "610117" + }, + { + "label": "鄠邑区", + "value": "610118" + }, + { + "label": "蓝田县", + "value": "610122" + }, + { + "label": "周至县", + "value": "610124" + } + ], + [{ + "label": "王益区", + "value": "610202" + }, + { + "label": "印台区", + "value": "610203" + }, + { + "label": "耀州区", + "value": "610204" + }, + { + "label": "宜君县", + "value": "610222" + } + ], + [{ + "label": "渭滨区", + "value": "610302" + }, + { + "label": "金台区", + "value": "610303" + }, + { + "label": "陈仓区", + "value": "610304" + }, + { + "label": "凤翔县", + "value": "610322" + }, + { + "label": "岐山县", + "value": "610323" + }, + { + "label": "扶风县", + "value": "610324" + }, + { + "label": "眉县", + "value": "610326" + }, + { + "label": "陇县", + "value": "610327" + }, + { + "label": "千阳县", + "value": "610328" + }, + { + "label": "麟游县", + "value": "610329" + }, + { + "label": "凤县", + "value": "610330" + }, + { + "label": "太白县", + "value": "610331" + } + ], + [{ + "label": "秦都区", + "value": "610402" + }, + { + "label": "杨陵区", + "value": "610403" + }, + { + "label": "渭城区", + "value": "610404" + }, + { + "label": "三原县", + "value": "610422" + }, + { + "label": "泾阳县", + "value": "610423" + }, + { + "label": "乾县", + "value": "610424" + }, + { + "label": "礼泉县", + "value": "610425" + }, + { + "label": "永寿县", + "value": "610426" + }, + { + "label": "彬县", + "value": "610427" + }, + { + "label": "长武县", + "value": "610428" + }, + { + "label": "旬邑县", + "value": "610429" + }, + { + "label": "淳化县", + "value": "610430" + }, + { + "label": "武功县", + "value": "610431" + }, + { + "label": "兴平市", + "value": "610481" + } + ], + [{ + "label": "临渭区", + "value": "610502" + }, + { + "label": "华州区", + "value": "610503" + }, + { + "label": "潼关县", + "value": "610522" + }, + { + "label": "大荔县", + "value": "610523" + }, + { + "label": "合阳县", + "value": "610524" + }, + { + "label": "澄城县", + "value": "610525" + }, + { + "label": "蒲城县", + "value": "610526" + }, + { + "label": "白水县", + "value": "610527" + }, + { + "label": "富平县", + "value": "610528" + }, + { + "label": "韩城市", + "value": "610581" + }, + { + "label": "华阴市", + "value": "610582" + } + ], + [{ + "label": "宝塔区", + "value": "610602" + }, + { + "label": "安塞区", + "value": "610603" + }, + { + "label": "延长县", + "value": "610621" + }, + { + "label": "延川县", + "value": "610622" + }, + { + "label": "子长县", + "value": "610623" + }, + { + "label": "志丹县", + "value": "610625" + }, + { + "label": "吴起县", + "value": "610626" + }, + { + "label": "甘泉县", + "value": "610627" + }, + { + "label": "富县", + "value": "610628" + }, + { + "label": "洛川县", + "value": "610629" + }, + { + "label": "宜川县", + "value": "610630" + }, + { + "label": "黄龙县", + "value": "610631" + }, + { + "label": "黄陵县", + "value": "610632" + } + ], + [{ + "label": "汉台区", + "value": "610702" + }, + { + "label": "南郑区", + "value": "610703" + }, + { + "label": "城固县", + "value": "610722" + }, + { + "label": "洋县", + "value": "610723" + }, + { + "label": "西乡县", + "value": "610724" + }, + { + "label": "勉县", + "value": "610725" + }, + { + "label": "宁强县", + "value": "610726" + }, + { + "label": "略阳县", + "value": "610727" + }, + { + "label": "镇巴县", + "value": "610728" + }, + { + "label": "留坝县", + "value": "610729" + }, + { + "label": "佛坪县", + "value": "610730" + } + ], + [{ + "label": "榆阳区", + "value": "610802" + }, + { + "label": "横山区", + "value": "610803" + }, + { + "label": "府谷县", + "value": "610822" + }, + { + "label": "靖边县", + "value": "610824" + }, + { + "label": "定边县", + "value": "610825" + }, + { + "label": "绥德县", + "value": "610826" + }, + { + "label": "米脂县", + "value": "610827" + }, + { + "label": "佳县", + "value": "610828" + }, + { + "label": "吴堡县", + "value": "610829" + }, + { + "label": "清涧县", + "value": "610830" + }, + { + "label": "子洲县", + "value": "610831" + }, + { + "label": "神木市", + "value": "610881" + } + ], + [{ + "label": "汉滨区", + "value": "610902" + }, + { + "label": "汉阴县", + "value": "610921" + }, + { + "label": "石泉县", + "value": "610922" + }, + { + "label": "宁陕县", + "value": "610923" + }, + { + "label": "紫阳县", + "value": "610924" + }, + { + "label": "岚皋县", + "value": "610925" + }, + { + "label": "平利县", + "value": "610926" + }, + { + "label": "镇坪县", + "value": "610927" + }, + { + "label": "旬阳县", + "value": "610928" + }, + { + "label": "白河县", + "value": "610929" + } + ], + [{ + "label": "商州区", + "value": "611002" + }, + { + "label": "洛南县", + "value": "611021" + }, + { + "label": "丹凤县", + "value": "611022" + }, + { + "label": "商南县", + "value": "611023" + }, + { + "label": "山阳县", + "value": "611024" + }, + { + "label": "镇安县", + "value": "611025" + }, + { + "label": "柞水县", + "value": "611026" + } + ] + ], + [ + [{ + "label": "城关区", + "value": "620102" + }, + { + "label": "七里河区", + "value": "620103" + }, + { + "label": "西固区", + "value": "620104" + }, + { + "label": "安宁区", + "value": "620105" + }, + { + "label": "红古区", + "value": "620111" + }, + { + "label": "永登县", + "value": "620121" + }, + { + "label": "皋兰县", + "value": "620122" + }, + { + "label": "榆中县", + "value": "620123" + }, + { + "label": "兰州新区", + "value": "620171" + } + ], + [{ + "label": "嘉峪关市", + "value": "620201" + }], + [{ + "label": "金川区", + "value": "620302" + }, + { + "label": "永昌县", + "value": "620321" + } + ], + [{ + "label": "白银区", + "value": "620402" + }, + { + "label": "平川区", + "value": "620403" + }, + { + "label": "靖远县", + "value": "620421" + }, + { + "label": "会宁县", + "value": "620422" + }, + { + "label": "景泰县", + "value": "620423" + } + ], + [{ + "label": "秦州区", + "value": "620502" + }, + { + "label": "麦积区", + "value": "620503" + }, + { + "label": "清水县", + "value": "620521" + }, + { + "label": "秦安县", + "value": "620522" + }, + { + "label": "甘谷县", + "value": "620523" + }, + { + "label": "武山县", + "value": "620524" + }, + { + "label": "张家川回族自治县", + "value": "620525" + } + ], + [{ + "label": "凉州区", + "value": "620602" + }, + { + "label": "民勤县", + "value": "620621" + }, + { + "label": "古浪县", + "value": "620622" + }, + { + "label": "天祝藏族自治县", + "value": "620623" + } + ], + [{ + "label": "甘州区", + "value": "620702" + }, + { + "label": "肃南裕固族自治县", + "value": "620721" + }, + { + "label": "民乐县", + "value": "620722" + }, + { + "label": "临泽县", + "value": "620723" + }, + { + "label": "高台县", + "value": "620724" + }, + { + "label": "山丹县", + "value": "620725" + } + ], + [{ + "label": "崆峒区", + "value": "620802" + }, + { + "label": "泾川县", + "value": "620821" + }, + { + "label": "灵台县", + "value": "620822" + }, + { + "label": "崇信县", + "value": "620823" + }, + { + "label": "华亭县", + "value": "620824" + }, + { + "label": "庄浪县", + "value": "620825" + }, + { + "label": "静宁县", + "value": "620826" + }, + { + "label": "平凉工业园区", + "value": "620871" + } + ], + [{ + "label": "肃州区", + "value": "620902" + }, + { + "label": "金塔县", + "value": "620921" + }, + { + "label": "瓜州县", + "value": "620922" + }, + { + "label": "肃北蒙古族自治县", + "value": "620923" + }, + { + "label": "阿克塞哈萨克族自治县", + "value": "620924" + }, + { + "label": "玉门市", + "value": "620981" + }, + { + "label": "敦煌市", + "value": "620982" + } + ], + [{ + "label": "西峰区", + "value": "621002" + }, + { + "label": "庆城县", + "value": "621021" + }, + { + "label": "环县", + "value": "621022" + }, + { + "label": "华池县", + "value": "621023" + }, + { + "label": "合水县", + "value": "621024" + }, + { + "label": "正宁县", + "value": "621025" + }, + { + "label": "宁县", + "value": "621026" + }, + { + "label": "镇原县", + "value": "621027" + } + ], + [{ + "label": "安定区", + "value": "621102" + }, + { + "label": "通渭县", + "value": "621121" + }, + { + "label": "陇西县", + "value": "621122" + }, + { + "label": "渭源县", + "value": "621123" + }, + { + "label": "临洮县", + "value": "621124" + }, + { + "label": "漳县", + "value": "621125" + }, + { + "label": "岷县", + "value": "621126" + } + ], + [{ + "label": "武都区", + "value": "621202" + }, + { + "label": "成县", + "value": "621221" + }, + { + "label": "文县", + "value": "621222" + }, + { + "label": "宕昌县", + "value": "621223" + }, + { + "label": "康县", + "value": "621224" + }, + { + "label": "西和县", + "value": "621225" + }, + { + "label": "礼县", + "value": "621226" + }, + { + "label": "徽县", + "value": "621227" + }, + { + "label": "两当县", + "value": "621228" + } + ], + [{ + "label": "临夏市", + "value": "622901" + }, + { + "label": "临夏县", + "value": "622921" + }, + { + "label": "康乐县", + "value": "622922" + }, + { + "label": "永靖县", + "value": "622923" + }, + { + "label": "广河县", + "value": "622924" + }, + { + "label": "和政县", + "value": "622925" + }, + { + "label": "东乡族自治县", + "value": "622926" + }, + { + "label": "积石山保安族东乡族撒拉族自治县", + "value": "622927" + } + ], + [{ + "label": "合作市", + "value": "623001" + }, + { + "label": "临潭县", + "value": "623021" + }, + { + "label": "卓尼县", + "value": "623022" + }, + { + "label": "舟曲县", + "value": "623023" + }, + { + "label": "迭部县", + "value": "623024" + }, + { + "label": "玛曲县", + "value": "623025" + }, + { + "label": "碌曲县", + "value": "623026" + }, + { + "label": "夏河县", + "value": "623027" + } + ] + ], + [ + [{ + "label": "城东区", + "value": "630102" + }, + { + "label": "城中区", + "value": "630103" + }, + { + "label": "城西区", + "value": "630104" + }, + { + "label": "城北区", + "value": "630105" + }, + { + "label": "大通回族土族自治县", + "value": "630121" + }, + { + "label": "湟中县", + "value": "630122" + }, + { + "label": "湟源县", + "value": "630123" + } + ], + [{ + "label": "乐都区", + "value": "630202" + }, + { + "label": "平安区", + "value": "630203" + }, + { + "label": "民和回族土族自治县", + "value": "630222" + }, + { + "label": "互助土族自治县", + "value": "630223" + }, + { + "label": "化隆回族自治县", + "value": "630224" + }, + { + "label": "循化撒拉族自治县", + "value": "630225" + } + ], + [{ + "label": "门源回族自治县", + "value": "632221" + }, + { + "label": "祁连县", + "value": "632222" + }, + { + "label": "海晏县", + "value": "632223" + }, + { + "label": "刚察县", + "value": "632224" + } + ], + [{ + "label": "同仁县", + "value": "632321" + }, + { + "label": "尖扎县", + "value": "632322" + }, + { + "label": "泽库县", + "value": "632323" + }, + { + "label": "河南蒙古族自治县", + "value": "632324" + } + ], + [{ + "label": "共和县", + "value": "632521" + }, + { + "label": "同德县", + "value": "632522" + }, + { + "label": "贵德县", + "value": "632523" + }, + { + "label": "兴海县", + "value": "632524" + }, + { + "label": "贵南县", + "value": "632525" + } + ], + [{ + "label": "玛沁县", + "value": "632621" + }, + { + "label": "班玛县", + "value": "632622" + }, + { + "label": "甘德县", + "value": "632623" + }, + { + "label": "达日县", + "value": "632624" + }, + { + "label": "久治县", + "value": "632625" + }, + { + "label": "玛多县", + "value": "632626" + } + ], + [{ + "label": "玉树市", + "value": "632701" + }, + { + "label": "杂多县", + "value": "632722" + }, + { + "label": "称多县", + "value": "632723" + }, + { + "label": "治多县", + "value": "632724" + }, + { + "label": "囊谦县", + "value": "632725" + }, + { + "label": "曲麻莱县", + "value": "632726" + } + ], + [{ + "label": "格尔木市", + "value": "632801" + }, + { + "label": "德令哈市", + "value": "632802" + }, + { + "label": "乌兰县", + "value": "632821" + }, + { + "label": "都兰县", + "value": "632822" + }, + { + "label": "天峻县", + "value": "632823" + }, + { + "label": "大柴旦行政委员会", + "value": "632857" + }, + { + "label": "冷湖行政委员会", + "value": "632858" + }, + { + "label": "茫崖行政委员会", + "value": "632859" + } + ] + ], + [ + [{ + "label": "兴庆区", + "value": "640104" + }, + { + "label": "西夏区", + "value": "640105" + }, + { + "label": "金凤区", + "value": "640106" + }, + { + "label": "永宁县", + "value": "640121" + }, + { + "label": "贺兰县", + "value": "640122" + }, + { + "label": "灵武市", + "value": "640181" + } + ], + [{ + "label": "大武口区", + "value": "640202" + }, + { + "label": "惠农区", + "value": "640205" + }, + { + "label": "平罗县", + "value": "640221" + } + ], + [{ + "label": "利通区", + "value": "640302" + }, + { + "label": "红寺堡区", + "value": "640303" + }, + { + "label": "盐池县", + "value": "640323" + }, + { + "label": "同心县", + "value": "640324" + }, + { + "label": "青铜峡市", + "value": "640381" + } + ], + [{ + "label": "原州区", + "value": "640402" + }, + { + "label": "西吉县", + "value": "640422" + }, + { + "label": "隆德县", + "value": "640423" + }, + { + "label": "泾源县", + "value": "640424" + }, + { + "label": "彭阳县", + "value": "640425" + } + ], + [{ + "label": "沙坡头区", + "value": "640502" + }, + { + "label": "中宁县", + "value": "640521" + }, + { + "label": "海原县", + "value": "640522" + } + ] + ], + [ + [{ + "label": "天山区", + "value": "650102" + }, + { + "label": "沙依巴克区", + "value": "650103" + }, + { + "label": "新市区", + "value": "650104" + }, + { + "label": "水磨沟区", + "value": "650105" + }, + { + "label": "头屯河区", + "value": "650106" + }, + { + "label": "达坂城区", + "value": "650107" + }, + { + "label": "米东区", + "value": "650109" + }, + { + "label": "乌鲁木齐县", + "value": "650121" + }, + { + "label": "乌鲁木齐经济技术开发区", + "value": "650171" + }, + { + "label": "乌鲁木齐高新技术产业开发区", + "value": "650172" + } + ], + [{ + "label": "独山子区", + "value": "650202" + }, + { + "label": "克拉玛依区", + "value": "650203" + }, + { + "label": "白碱滩区", + "value": "650204" + }, + { + "label": "乌尔禾区", + "value": "650205" + } + ], + [{ + "label": "高昌区", + "value": "650402" + }, + { + "label": "鄯善县", + "value": "650421" + }, + { + "label": "托克逊县", + "value": "650422" + } + ], + [{ + "label": "伊州区", + "value": "650502" + }, + { + "label": "巴里坤哈萨克自治县", + "value": "650521" + }, + { + "label": "伊吾县", + "value": "650522" + } + ], + [{ + "label": "昌吉市", + "value": "652301" + }, + { + "label": "阜康市", + "value": "652302" + }, + { + "label": "呼图壁县", + "value": "652323" + }, + { + "label": "玛纳斯县", + "value": "652324" + }, + { + "label": "奇台县", + "value": "652325" + }, + { + "label": "吉木萨尔县", + "value": "652327" + }, + { + "label": "木垒哈萨克自治县", + "value": "652328" + } + ], + [{ + "label": "博乐市", + "value": "652701" + }, + { + "label": "阿拉山口市", + "value": "652702" + }, + { + "label": "精河县", + "value": "652722" + }, + { + "label": "温泉县", + "value": "652723" + } + ], + [{ + "label": "库尔勒市", + "value": "652801" + }, + { + "label": "轮台县", + "value": "652822" + }, + { + "label": "尉犁县", + "value": "652823" + }, + { + "label": "若羌县", + "value": "652824" + }, + { + "label": "且末县", + "value": "652825" + }, + { + "label": "焉耆回族自治县", + "value": "652826" + }, + { + "label": "和静县", + "value": "652827" + }, + { + "label": "和硕县", + "value": "652828" + }, + { + "label": "博湖县", + "value": "652829" + }, + { + "label": "库尔勒经济技术开发区", + "value": "652871" + } + ], + [{ + "label": "阿克苏市", + "value": "652901" + }, + { + "label": "温宿县", + "value": "652922" + }, + { + "label": "库车县", + "value": "652923" + }, + { + "label": "沙雅县", + "value": "652924" + }, + { + "label": "新和县", + "value": "652925" + }, + { + "label": "拜城县", + "value": "652926" + }, + { + "label": "乌什县", + "value": "652927" + }, + { + "label": "阿瓦提县", + "value": "652928" + }, + { + "label": "柯坪县", + "value": "652929" + } + ], + [{ + "label": "阿图什市", + "value": "653001" + }, + { + "label": "阿克陶县", + "value": "653022" + }, + { + "label": "阿合奇县", + "value": "653023" + }, + { + "label": "乌恰县", + "value": "653024" + } + ], + [{ + "label": "喀什市", + "value": "653101" + }, + { + "label": "疏附县", + "value": "653121" + }, + { + "label": "疏勒县", + "value": "653122" + }, + { + "label": "英吉沙县", + "value": "653123" + }, + { + "label": "泽普县", + "value": "653124" + }, + { + "label": "莎车县", + "value": "653125" + }, + { + "label": "叶城县", + "value": "653126" + }, + { + "label": "麦盖提县", + "value": "653127" + }, + { + "label": "岳普湖县", + "value": "653128" + }, + { + "label": "伽师县", + "value": "653129" + }, + { + "label": "巴楚县", + "value": "653130" + }, + { + "label": "塔什库尔干塔吉克自治县", + "value": "653131" + } + ], + [{ + "label": "和田市", + "value": "653201" + }, + { + "label": "和田县", + "value": "653221" + }, + { + "label": "墨玉县", + "value": "653222" + }, + { + "label": "皮山县", + "value": "653223" + }, + { + "label": "洛浦县", + "value": "653224" + }, + { + "label": "策勒县", + "value": "653225" + }, + { + "label": "于田县", + "value": "653226" + }, + { + "label": "民丰县", + "value": "653227" + } + ], + [{ + "label": "伊宁市", + "value": "654002" + }, + { + "label": "奎屯市", + "value": "654003" + }, + { + "label": "霍尔果斯市", + "value": "654004" + }, + { + "label": "伊宁县", + "value": "654021" + }, + { + "label": "察布查尔锡伯自治县", + "value": "654022" + }, + { + "label": "霍城县", + "value": "654023" + }, + { + "label": "巩留县", + "value": "654024" + }, + { + "label": "新源县", + "value": "654025" + }, + { + "label": "昭苏县", + "value": "654026" + }, + { + "label": "特克斯县", + "value": "654027" + }, + { + "label": "尼勒克县", + "value": "654028" + } + ], + [{ + "label": "塔城市", + "value": "654201" + }, + { + "label": "乌苏市", + "value": "654202" + }, + { + "label": "额敏县", + "value": "654221" + }, + { + "label": "沙湾县", + "value": "654223" + }, + { + "label": "托里县", + "value": "654224" + }, + { + "label": "裕民县", + "value": "654225" + }, + { + "label": "和布克赛尔蒙古自治县", + "value": "654226" + } + ], + [{ + "label": "阿勒泰市", + "value": "654301" + }, + { + "label": "布尔津县", + "value": "654321" + }, + { + "label": "富蕴县", + "value": "654322" + }, + { + "label": "福海县", + "value": "654323" + }, + { + "label": "哈巴河县", + "value": "654324" + }, + { + "label": "青河县", + "value": "654325" + }, + { + "label": "吉木乃县", + "value": "654326" + } + ], + [{ + "label": "石河子市", + "value": "659001" + }, + { + "label": "阿拉尔市", + "value": "659002" + }, + { + "label": "图木舒克市", + "value": "659003" + }, + { + "label": "五家渠市", + "value": "659004" + }, + { + "label": "铁门关市", + "value": "659006" + } + ] + ], + [ + [{ + "label": "台北", + "value": "660101" + }], + [{ + "label": "高雄", + "value": "660201" + }], + [{ + "label": "基隆", + "value": "660301" + }], + [{ + "label": "台中", + "value": "660401" + }], + [{ + "label": "台南", + "value": "660501" + }], + [{ + "label": "新竹", + "value": "660601" + }], + [{ + "label": "嘉义", + "value": "660701" + }], + [{ + "label": "宜兰", + "value": "660801" + }], + [{ + "label": "桃园", + "value": "660901" + }], + [{ + "label": "苗栗", + "value": "661001" + }], + [{ + "label": "彰化", + "value": "661101" + }], + [{ + "label": "南投", + "value": "661201" + }], + [{ + "label": "云林", + "value": "661301" + }], + [{ + "label": "屏东", + "value": "661401" + }], + [{ + "label": "台东", + "value": "661501" + }], + [{ + "label": "花莲", + "value": "661601" + }], + [{ + "label": "澎湖", + "value": "661701" + }] + ], + [ + [{ + "label": "香港岛", + "value": "670101" + }], + [{ + "label": "九龙", + "value": "670201" + }], + [{ + "label": "新界", + "value": "670301" + }] + ], + [ + [{ + "label": "澳门半岛", + "value": "680101" + }], + [{ + "label": "氹仔岛", + "value": "680201" + }], + [{ + "label": "路环岛", + "value": "680301" + }], + [{ + "label": "路氹城", + "value": "680401" + }] + ] +] +export default areaData; diff --git a/components/mpvue-citypicker/city-data/city.js b/components/mpvue-citypicker/city-data/city.js new file mode 100644 index 00000000..8c1dc262 --- /dev/null +++ b/components/mpvue-citypicker/city-data/city.js @@ -0,0 +1,1503 @@ +/* eslint-disable */ +var cityData = [ + [{ + "label": "市辖区", + "value": "1101" + }], + [{ + "label": "市辖区", + "value": "1201" + }], + [{ + "label": "石家庄市", + "value": "1301" + }, + { + "label": "唐山市", + "value": "1302" + }, + { + "label": "秦皇岛市", + "value": "1303" + }, + { + "label": "邯郸市", + "value": "1304" + }, + { + "label": "邢台市", + "value": "1305" + }, + { + "label": "保定市", + "value": "1306" + }, + { + "label": "张家口市", + "value": "1307" + }, + { + "label": "承德市", + "value": "1308" + }, + { + "label": "沧州市", + "value": "1309" + }, + { + "label": "廊坊市", + "value": "1310" + }, + { + "label": "衡水市", + "value": "1311" + } + ], + [{ + "label": "太原市", + "value": "1401" + }, + { + "label": "大同市", + "value": "1402" + }, + { + "label": "阳泉市", + "value": "1403" + }, + { + "label": "长治市", + "value": "1404" + }, + { + "label": "晋城市", + "value": "1405" + }, + { + "label": "朔州市", + "value": "1406" + }, + { + "label": "晋中市", + "value": "1407" + }, + { + "label": "运城市", + "value": "1408" + }, + { + "label": "忻州市", + "value": "1409" + }, + { + "label": "临汾市", + "value": "1410" + }, + { + "label": "吕梁市", + "value": "1411" + } + ], + [{ + "label": "呼和浩特市", + "value": "1501" + }, + { + "label": "包头市", + "value": "1502" + }, + { + "label": "乌海市", + "value": "1503" + }, + { + "label": "赤峰市", + "value": "1504" + }, + { + "label": "通辽市", + "value": "1505" + }, + { + "label": "鄂尔多斯市", + "value": "1506" + }, + { + "label": "呼伦贝尔市", + "value": "1507" + }, + { + "label": "巴彦淖尔市", + "value": "1508" + }, + { + "label": "乌兰察布市", + "value": "1509" + }, + { + "label": "兴安盟", + "value": "1522" + }, + { + "label": "锡林郭勒盟", + "value": "1525" + }, + { + "label": "阿拉善盟", + "value": "1529" + } + ], + [{ + "label": "沈阳市", + "value": "2101" + }, + { + "label": "大连市", + "value": "2102" + }, + { + "label": "鞍山市", + "value": "2103" + }, + { + "label": "抚顺市", + "value": "2104" + }, + { + "label": "本溪市", + "value": "2105" + }, + { + "label": "丹东市", + "value": "2106" + }, + { + "label": "锦州市", + "value": "2107" + }, + { + "label": "营口市", + "value": "2108" + }, + { + "label": "阜新市", + "value": "2109" + }, + { + "label": "辽阳市", + "value": "2110" + }, + { + "label": "盘锦市", + "value": "2111" + }, + { + "label": "铁岭市", + "value": "2112" + }, + { + "label": "朝阳市", + "value": "2113" + }, + { + "label": "葫芦岛市", + "value": "2114" + } + ], + [{ + "label": "长春市", + "value": "2201" + }, + { + "label": "吉林市", + "value": "2202" + }, + { + "label": "四平市", + "value": "2203" + }, + { + "label": "辽源市", + "value": "2204" + }, + { + "label": "通化市", + "value": "2205" + }, + { + "label": "白山市", + "value": "2206" + }, + { + "label": "松原市", + "value": "2207" + }, + { + "label": "白城市", + "value": "2208" + }, + { + "label": "延边朝鲜族自治州", + "value": "2224" + } + ], + [{ + "label": "哈尔滨市", + "value": "2301" + }, + { + "label": "齐齐哈尔市", + "value": "2302" + }, + { + "label": "鸡西市", + "value": "2303" + }, + { + "label": "鹤岗市", + "value": "2304" + }, + { + "label": "双鸭山市", + "value": "2305" + }, + { + "label": "大庆市", + "value": "2306" + }, + { + "label": "伊春市", + "value": "2307" + }, + { + "label": "佳木斯市", + "value": "2308" + }, + { + "label": "七台河市", + "value": "2309" + }, + { + "label": "牡丹江市", + "value": "2310" + }, + { + "label": "黑河市", + "value": "2311" + }, + { + "label": "绥化市", + "value": "2312" + }, + { + "label": "大兴安岭地区", + "value": "2327" + } + ], + [{ + "label": "市辖区", + "value": "3101" + }], + [{ + "label": "南京市", + "value": "3201" + }, + { + "label": "无锡市", + "value": "3202" + }, + { + "label": "徐州市", + "value": "3203" + }, + { + "label": "常州市", + "value": "3204" + }, + { + "label": "苏州市", + "value": "3205" + }, + { + "label": "南通市", + "value": "3206" + }, + { + "label": "连云港市", + "value": "3207" + }, + { + "label": "淮安市", + "value": "3208" + }, + { + "label": "盐城市", + "value": "3209" + }, + { + "label": "扬州市", + "value": "3210" + }, + { + "label": "镇江市", + "value": "3211" + }, + { + "label": "泰州市", + "value": "3212" + }, + { + "label": "宿迁市", + "value": "3213" + } + ], + [{ + "label": "杭州市", + "value": "3301" + }, + { + "label": "宁波市", + "value": "3302" + }, + { + "label": "温州市", + "value": "3303" + }, + { + "label": "嘉兴市", + "value": "3304" + }, + { + "label": "湖州市", + "value": "3305" + }, + { + "label": "绍兴市", + "value": "3306" + }, + { + "label": "金华市", + "value": "3307" + }, + { + "label": "衢州市", + "value": "3308" + }, + { + "label": "舟山市", + "value": "3309" + }, + { + "label": "台州市", + "value": "3310" + }, + { + "label": "丽水市", + "value": "3311" + } + ], + [{ + "label": "合肥市", + "value": "3401" + }, + { + "label": "芜湖市", + "value": "3402" + }, + { + "label": "蚌埠市", + "value": "3403" + }, + { + "label": "淮南市", + "value": "3404" + }, + { + "label": "马鞍山市", + "value": "3405" + }, + { + "label": "淮北市", + "value": "3406" + }, + { + "label": "铜陵市", + "value": "3407" + }, + { + "label": "安庆市", + "value": "3408" + }, + { + "label": "黄山市", + "value": "3410" + }, + { + "label": "滁州市", + "value": "3411" + }, + { + "label": "阜阳市", + "value": "3412" + }, + { + "label": "宿州市", + "value": "3413" + }, + { + "label": "六安市", + "value": "3415" + }, + { + "label": "亳州市", + "value": "3416" + }, + { + "label": "池州市", + "value": "3417" + }, + { + "label": "宣城市", + "value": "3418" + } + ], + [{ + "label": "福州市", + "value": "3501" + }, + { + "label": "厦门市", + "value": "3502" + }, + { + "label": "莆田市", + "value": "3503" + }, + { + "label": "三明市", + "value": "3504" + }, + { + "label": "泉州市", + "value": "3505" + }, + { + "label": "漳州市", + "value": "3506" + }, + { + "label": "南平市", + "value": "3507" + }, + { + "label": "龙岩市", + "value": "3508" + }, + { + "label": "宁德市", + "value": "3509" + } + ], + [{ + "label": "南昌市", + "value": "3601" + }, + { + "label": "景德镇市", + "value": "3602" + }, + { + "label": "萍乡市", + "value": "3603" + }, + { + "label": "九江市", + "value": "3604" + }, + { + "label": "新余市", + "value": "3605" + }, + { + "label": "鹰潭市", + "value": "3606" + }, + { + "label": "赣州市", + "value": "3607" + }, + { + "label": "吉安市", + "value": "3608" + }, + { + "label": "宜春市", + "value": "3609" + }, + { + "label": "抚州市", + "value": "3610" + }, + { + "label": "上饶市", + "value": "3611" + } + ], + [{ + "label": "济南市", + "value": "3701" + }, + { + "label": "青岛市", + "value": "3702" + }, + { + "label": "淄博市", + "value": "3703" + }, + { + "label": "枣庄市", + "value": "3704" + }, + { + "label": "东营市", + "value": "3705" + }, + { + "label": "烟台市", + "value": "3706" + }, + { + "label": "潍坊市", + "value": "3707" + }, + { + "label": "济宁市", + "value": "3708" + }, + { + "label": "泰安市", + "value": "3709" + }, + { + "label": "威海市", + "value": "3710" + }, + { + "label": "日照市", + "value": "3711" + }, + { + "label": "莱芜市", + "value": "3712" + }, + { + "label": "临沂市", + "value": "3713" + }, + { + "label": "德州市", + "value": "3714" + }, + { + "label": "聊城市", + "value": "3715" + }, + { + "label": "滨州市", + "value": "3716" + }, + { + "label": "菏泽市", + "value": "3717" + } + ], + [{ + "label": "郑州市", + "value": "4101" + }, + { + "label": "开封市", + "value": "4102" + }, + { + "label": "洛阳市", + "value": "4103" + }, + { + "label": "平顶山市", + "value": "4104" + }, + { + "label": "安阳市", + "value": "4105" + }, + { + "label": "鹤壁市", + "value": "4106" + }, + { + "label": "新乡市", + "value": "4107" + }, + { + "label": "焦作市", + "value": "4108" + }, + { + "label": "濮阳市", + "value": "4109" + }, + { + "label": "许昌市", + "value": "4110" + }, + { + "label": "漯河市", + "value": "4111" + }, + { + "label": "三门峡市", + "value": "4112" + }, + { + "label": "南阳市", + "value": "4113" + }, + { + "label": "商丘市", + "value": "4114" + }, + { + "label": "信阳市", + "value": "4115" + }, + { + "label": "周口市", + "value": "4116" + }, + { + "label": "驻马店市", + "value": "4117" + }, + { + "label": "省直辖县级行政区划", + "value": "4190" + } + ], + [{ + "label": "武汉市", + "value": "4201" + }, + { + "label": "黄石市", + "value": "4202" + }, + { + "label": "十堰市", + "value": "4203" + }, + { + "label": "宜昌市", + "value": "4205" + }, + { + "label": "襄阳市", + "value": "4206" + }, + { + "label": "鄂州市", + "value": "4207" + }, + { + "label": "荆门市", + "value": "4208" + }, + { + "label": "孝感市", + "value": "4209" + }, + { + "label": "荆州市", + "value": "4210" + }, + { + "label": "黄冈市", + "value": "4211" + }, + { + "label": "咸宁市", + "value": "4212" + }, + { + "label": "随州市", + "value": "4213" + }, + { + "label": "恩施土家族苗族自治州", + "value": "4228" + }, + { + "label": "省直辖县级行政区划", + "value": "4290" + } + ], + [{ + "label": "长沙市", + "value": "4301" + }, + { + "label": "株洲市", + "value": "4302" + }, + { + "label": "湘潭市", + "value": "4303" + }, + { + "label": "衡阳市", + "value": "4304" + }, + { + "label": "邵阳市", + "value": "4305" + }, + { + "label": "岳阳市", + "value": "4306" + }, + { + "label": "常德市", + "value": "4307" + }, + { + "label": "张家界市", + "value": "4308" + }, + { + "label": "益阳市", + "value": "4309" + }, + { + "label": "郴州市", + "value": "4310" + }, + { + "label": "永州市", + "value": "4311" + }, + { + "label": "怀化市", + "value": "4312" + }, + { + "label": "娄底市", + "value": "4313" + }, + { + "label": "湘西土家族苗族自治州", + "value": "4331" + } + ], + [{ + "label": "广州市", + "value": "4401" + }, + { + "label": "韶关市", + "value": "4402" + }, + { + "label": "深圳市", + "value": "4403" + }, + { + "label": "珠海市", + "value": "4404" + }, + { + "label": "汕头市", + "value": "4405" + }, + { + "label": "佛山市", + "value": "4406" + }, + { + "label": "江门市", + "value": "4407" + }, + { + "label": "湛江市", + "value": "4408" + }, + { + "label": "茂名市", + "value": "4409" + }, + { + "label": "肇庆市", + "value": "4412" + }, + { + "label": "惠州市", + "value": "4413" + }, + { + "label": "梅州市", + "value": "4414" + }, + { + "label": "汕尾市", + "value": "4415" + }, + { + "label": "河源市", + "value": "4416" + }, + { + "label": "阳江市", + "value": "4417" + }, + { + "label": "清远市", + "value": "4418" + }, + { + "label": "东莞市", + "value": "4419" + }, + { + "label": "中山市", + "value": "4420" + }, + { + "label": "潮州市", + "value": "4451" + }, + { + "label": "揭阳市", + "value": "4452" + }, + { + "label": "云浮市", + "value": "4453" + } + ], + [{ + "label": "南宁市", + "value": "4501" + }, + { + "label": "柳州市", + "value": "4502" + }, + { + "label": "桂林市", + "value": "4503" + }, + { + "label": "梧州市", + "value": "4504" + }, + { + "label": "北海市", + "value": "4505" + }, + { + "label": "防城港市", + "value": "4506" + }, + { + "label": "钦州市", + "value": "4507" + }, + { + "label": "贵港市", + "value": "4508" + }, + { + "label": "玉林市", + "value": "4509" + }, + { + "label": "百色市", + "value": "4510" + }, + { + "label": "贺州市", + "value": "4511" + }, + { + "label": "河池市", + "value": "4512" + }, + { + "label": "来宾市", + "value": "4513" + }, + { + "label": "崇左市", + "value": "4514" + } + ], + [{ + "label": "海口市", + "value": "4601" + }, + { + "label": "三亚市", + "value": "4602" + }, + { + "label": "三沙市", + "value": "4603" + }, + { + "label": "儋州市", + "value": "4604" + }, + { + "label": "省直辖县级行政区划", + "value": "4690" + } + ], + [{ + "label": "市辖区", + "value": "5001" + }, + { + "label": "县", + "value": "5002" + } + ], + [{ + "label": "成都市", + "value": "5101" + }, + { + "label": "自贡市", + "value": "5103" + }, + { + "label": "攀枝花市", + "value": "5104" + }, + { + "label": "泸州市", + "value": "5105" + }, + { + "label": "德阳市", + "value": "5106" + }, + { + "label": "绵阳市", + "value": "5107" + }, + { + "label": "广元市", + "value": "5108" + }, + { + "label": "遂宁市", + "value": "5109" + }, + { + "label": "内江市", + "value": "5110" + }, + { + "label": "乐山市", + "value": "5111" + }, + { + "label": "南充市", + "value": "5113" + }, + { + "label": "眉山市", + "value": "5114" + }, + { + "label": "宜宾市", + "value": "5115" + }, + { + "label": "广安市", + "value": "5116" + }, + { + "label": "达州市", + "value": "5117" + }, + { + "label": "雅安市", + "value": "5118" + }, + { + "label": "巴中市", + "value": "5119" + }, + { + "label": "资阳市", + "value": "5120" + }, + { + "label": "阿坝藏族羌族自治州", + "value": "5132" + }, + { + "label": "甘孜藏族自治州", + "value": "5133" + }, + { + "label": "凉山彝族自治州", + "value": "5134" + } + ], + [{ + "label": "贵阳市", + "value": "5201" + }, + { + "label": "六盘水市", + "value": "5202" + }, + { + "label": "遵义市", + "value": "5203" + }, + { + "label": "安顺市", + "value": "5204" + }, + { + "label": "毕节市", + "value": "5205" + }, + { + "label": "铜仁市", + "value": "5206" + }, + { + "label": "黔西南布依族苗族自治州", + "value": "5223" + }, + { + "label": "黔东南苗族侗族自治州", + "value": "5226" + }, + { + "label": "黔南布依族苗族自治州", + "value": "5227" + } + ], + [{ + "label": "昆明市", + "value": "5301" + }, + { + "label": "曲靖市", + "value": "5303" + }, + { + "label": "玉溪市", + "value": "5304" + }, + { + "label": "保山市", + "value": "5305" + }, + { + "label": "昭通市", + "value": "5306" + }, + { + "label": "丽江市", + "value": "5307" + }, + { + "label": "普洱市", + "value": "5308" + }, + { + "label": "临沧市", + "value": "5309" + }, + { + "label": "楚雄彝族自治州", + "value": "5323" + }, + { + "label": "红河哈尼族彝族自治州", + "value": "5325" + }, + { + "label": "文山壮族苗族自治州", + "value": "5326" + }, + { + "label": "西双版纳傣族自治州", + "value": "5328" + }, + { + "label": "大理白族自治州", + "value": "5329" + }, + { + "label": "德宏傣族景颇族自治州", + "value": "5331" + }, + { + "label": "怒江傈僳族自治州", + "value": "5333" + }, + { + "label": "迪庆藏族自治州", + "value": "5334" + } + ], + [{ + "label": "拉萨市", + "value": "5401" + }, + { + "label": "日喀则市", + "value": "5402" + }, + { + "label": "昌都市", + "value": "5403" + }, + { + "label": "林芝市", + "value": "5404" + }, + { + "label": "山南市", + "value": "5405" + }, + { + "label": "那曲地区", + "value": "5424" + }, + { + "label": "阿里地区", + "value": "5425" + } + ], + [{ + "label": "西安市", + "value": "6101" + }, + { + "label": "铜川市", + "value": "6102" + }, + { + "label": "宝鸡市", + "value": "6103" + }, + { + "label": "咸阳市", + "value": "6104" + }, + { + "label": "渭南市", + "value": "6105" + }, + { + "label": "延安市", + "value": "6106" + }, + { + "label": "汉中市", + "value": "6107" + }, + { + "label": "榆林市", + "value": "6108" + }, + { + "label": "安康市", + "value": "6109" + }, + { + "label": "商洛市", + "value": "6110" + } + ], + [{ + "label": "兰州市", + "value": "6201" + }, + { + "label": "嘉峪关市", + "value": "6202" + }, + { + "label": "金昌市", + "value": "6203" + }, + { + "label": "白银市", + "value": "6204" + }, + { + "label": "天水市", + "value": "6205" + }, + { + "label": "武威市", + "value": "6206" + }, + { + "label": "张掖市", + "value": "6207" + }, + { + "label": "平凉市", + "value": "6208" + }, + { + "label": "酒泉市", + "value": "6209" + }, + { + "label": "庆阳市", + "value": "6210" + }, + { + "label": "定西市", + "value": "6211" + }, + { + "label": "陇南市", + "value": "6212" + }, + { + "label": "临夏回族自治州", + "value": "6229" + }, + { + "label": "甘南藏族自治州", + "value": "6230" + } + ], + [{ + "label": "西宁市", + "value": "6301" + }, + { + "label": "海东市", + "value": "6302" + }, + { + "label": "海北藏族自治州", + "value": "6322" + }, + { + "label": "黄南藏族自治州", + "value": "6323" + }, + { + "label": "海南藏族自治州", + "value": "6325" + }, + { + "label": "果洛藏族自治州", + "value": "6326" + }, + { + "label": "玉树藏族自治州", + "value": "6327" + }, + { + "label": "海西蒙古族藏族自治州", + "value": "6328" + } + ], + [{ + "label": "银川市", + "value": "6401" + }, + { + "label": "石嘴山市", + "value": "6402" + }, + { + "label": "吴忠市", + "value": "6403" + }, + { + "label": "固原市", + "value": "6404" + }, + { + "label": "中卫市", + "value": "6405" + } + ], + [{ + "label": "乌鲁木齐市", + "value": "6501" + }, + { + "label": "克拉玛依市", + "value": "6502" + }, + { + "label": "吐鲁番市", + "value": "6504" + }, + { + "label": "哈密市", + "value": "6505" + }, + { + "label": "昌吉回族自治州", + "value": "6523" + }, + { + "label": "博尔塔拉蒙古自治州", + "value": "6527" + }, + { + "label": "巴音郭楞蒙古自治州", + "value": "6528" + }, + { + "label": "阿克苏地区", + "value": "6529" + }, + { + "label": "克孜勒苏柯尔克孜自治州", + "value": "6530" + }, + { + "label": "喀什地区", + "value": "6531" + }, + { + "label": "和田地区", + "value": "6532" + }, + { + "label": "伊犁哈萨克自治州", + "value": "6540" + }, + { + "label": "塔城地区", + "value": "6542" + }, + { + "label": "阿勒泰地区", + "value": "6543" + }, + { + "label": "自治区直辖县级行政区划", + "value": "6590" + } + ], + [{ + "label": "台北", + "value": "6601" + }, + { + "label": "高雄", + "value": "6602" + }, + { + "label": "基隆", + "value": "6603" + }, + { + "label": "台中", + "value": "6604" + }, + { + "label": "台南", + "value": "6605" + }, + { + "label": "新竹", + "value": "6606" + }, + { + "label": "嘉义", + "value": "6607" + }, + { + "label": "宜兰", + "value": "6608" + }, + { + "label": "桃园", + "value": "6609" + }, + { + "label": "苗栗", + "value": "6610" + }, + { + "label": "彰化", + "value": "6611" + }, + { + "label": "南投", + "value": "6612" + }, + { + "label": "云林", + "value": "6613" + }, + { + "label": "屏东", + "value": "6614" + }, + { + "label": "台东", + "value": "6615" + }, + { + "label": "花莲", + "value": "6616" + }, + { + "label": "澎湖", + "value": "6617" + } + ], + [{ + "label": "香港岛", + "value": "6701" + }, + { + "label": "九龙", + "value": "6702" + }, + { + "label": "新界", + "value": "6703" + } + ], + [{ + "label": "澳门半岛", + "value": "6801" + }, + { + "label": "氹仔岛", + "value": "6802" + }, + { + "label": "路环岛", + "value": "6803" + }, + { + "label": "路氹城", + "value": "6804" + } + ] +] +export default cityData; diff --git a/components/mpvue-citypicker/city-data/province.js b/components/mpvue-citypicker/city-data/province.js new file mode 100644 index 00000000..1bd680e8 --- /dev/null +++ b/components/mpvue-citypicker/city-data/province.js @@ -0,0 +1,139 @@ +/* eslint-disable */ +var provinceData = [{ + "label": "北京市", + "value": "11" + }, + { + "label": "天津市", + "value": "12" + }, + { + "label": "河北省", + "value": "13" + }, + { + "label": "山西省", + "value": "14" + }, + { + "label": "内蒙古自治区", + "value": "15" + }, + { + "label": "辽宁省", + "value": "21" + }, + { + "label": "吉林省", + "value": "22" + }, + { + "label": "黑龙江省", + "value": "23" + }, + { + "label": "上海市", + "value": "31" + }, + { + "label": "江苏省", + "value": "32" + }, + { + "label": "浙江省", + "value": "33" + }, + { + "label": "安徽省", + "value": "34" + }, + { + "label": "福建省", + "value": "35" + }, + { + "label": "江西省", + "value": "36" + }, + { + "label": "山东省", + "value": "37" + }, + { + "label": "河南省", + "value": "41" + }, + { + "label": "湖北省", + "value": "42" + }, + { + "label": "湖南省", + "value": "43" + }, + { + "label": "广东省", + "value": "44" + }, + { + "label": "广西壮族自治区", + "value": "45" + }, + { + "label": "海南省", + "value": "46" + }, + { + "label": "重庆市", + "value": "50" + }, + { + "label": "四川省", + "value": "51" + }, + { + "label": "贵州省", + "value": "52" + }, + { + "label": "云南省", + "value": "53" + }, + { + "label": "西藏自治区", + "value": "54" + }, + { + "label": "陕西省", + "value": "61" + }, + { + "label": "甘肃省", + "value": "62" + }, + { + "label": "青海省", + "value": "63" + }, + { + "label": "宁夏回族自治区", + "value": "64" + }, + { + "label": "新疆维吾尔自治区", + "value": "65" + }, + { + "label": "台湾", + "value": "66" + }, + { + "label": "香港", + "value": "67" + }, + { + "label": "澳门", + "value": "68" + } +] +export default provinceData; diff --git a/components/mpvue-citypicker/mpvueCityPicker.vue b/components/mpvue-citypicker/mpvueCityPicker.vue new file mode 100644 index 00000000..ec02c8bc --- /dev/null +++ b/components/mpvue-citypicker/mpvueCityPicker.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/components/mpvue-echarts/src/echarts.vue b/components/mpvue-echarts/src/echarts.vue new file mode 100644 index 00000000..e1cbb661 --- /dev/null +++ b/components/mpvue-echarts/src/echarts.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/components/mpvue-echarts/src/wx-canvas.js b/components/mpvue-echarts/src/wx-canvas.js new file mode 100644 index 00000000..ef588931 --- /dev/null +++ b/components/mpvue-echarts/src/wx-canvas.js @@ -0,0 +1,73 @@ +export default class WxCanvas { + constructor(ctx, canvasId) { + this.ctx = ctx; + this.canvasId = canvasId; + this.chart = null; + + WxCanvas.initStyle(ctx); + this.initEvent(); + } + + getContext(contextType) { + return contextType === '2d' ? this.ctx : null; + } + + setChart(chart) { + this.chart = chart; + } + + attachEvent() { + // noop + } + + detachEvent() { + // noop + } + + static initStyle(ctx) { + const styles = ['fillStyle', 'strokeStyle', 'globalAlpha', + 'textAlign', 'textBaseAlign', 'shadow', 'lineWidth', + 'lineCap', 'lineJoin', 'lineDash', 'miterLimit', 'fontSize']; + + styles.forEach((style) => { + Object.defineProperty(ctx, style, { + set: (value) => { + if ((style !== 'fillStyle' && style !== 'strokeStyle') + || (value !== 'none' && value !== null) + ) { + ctx[`set${style.charAt(0).toUpperCase()}${style.slice(1)}`](value); + } + }, + }); + }); + + ctx.createRadialGradient = () => ctx.createCircularGradient(arguments); + } + + initEvent() { + this.event = {}; + const eventNames = [{ + wxName: 'touchStart', + ecName: 'mousedown', + }, { + wxName: 'touchMove', + ecName: 'mousemove', + }, { + wxName: 'touchEnd', + ecName: 'mouseup', + }, { + wxName: 'touchEnd', + ecName: 'click', + }]; + + eventNames.forEach((name) => { + this.event[name.wxName] = (e) => { + const touch = e.mp.touches[0]; + this.chart._zr.handler.dispatch(name.ecName, { + zrX: name.wxName === 'tap' ? touch.clientX : touch.x, + zrY: name.wxName === 'tap' ? touch.clientY : touch.y, + }); + }; + }); + } +} diff --git a/components/mpvue-picker/mpvuePicker.vue b/components/mpvue-picker/mpvuePicker.vue new file mode 100644 index 00000000..93397ee8 --- /dev/null +++ b/components/mpvue-picker/mpvuePicker.vue @@ -0,0 +1,484 @@ + + + + + diff --git a/components/mpvueGestureLock/gestureLock.js b/components/mpvueGestureLock/gestureLock.js new file mode 100644 index 00000000..21cf4594 --- /dev/null +++ b/components/mpvueGestureLock/gestureLock.js @@ -0,0 +1,175 @@ +class GestureLock { + + constructor(containerWidth, cycleRadius) { + this.containerWidth = containerWidth; // 容器宽度 + this.cycleRadius = cycleRadius; // 圆的半径 + + this.circleArray = []; // 全部圆的对象数组 + this.checkPoints = []; // 选中的圆的对象数组 + this.lineArray = []; // 已激活锁之间的线段数组 + this.lastCheckPoint = 0; // 最后一个激活的锁 + this.offsetX = 0; // 容器的 X 偏移 + this.offsetY = 0; // 容器的 Y 偏移 + this.activeLine = {}; // 最后一个激活的锁与当前位置之间的线段 + + this.windowWidth = wx.getSystemInfoSync().windowWidth; // 窗口大小(用于rpx 和 px 转换) + + this.initCircleArray(); + } + + // 初始化 画布上的 9个圆 + initCircleArray() { + const cycleMargin = (this.containerWidth - 6 * this.cycleRadius) / 6; + let count = 0; + for (let i = 0; i < 3; i++) { + for (let j = 0; j < 3; j++) { + count++; + this.circleArray.push({ + count: count, + x: this.rpxTopx((cycleMargin + this.cycleRadius) * (j * 2 + 1)), + y: this.rpxTopx((cycleMargin + this.cycleRadius) * (i * 2 + 1)), + radius: this.rpxTopx(this.cycleRadius), + check: false, + style: { + left: (cycleMargin + this.cycleRadius) * (j * 2 + 1) - this.cycleRadius + 'rpx', + top: (cycleMargin + this.cycleRadius) * (i * 2 + 1) - this.cycleRadius + 'rpx', + width: this.cycleRadius * 2 + 'rpx', + } + }); + } + } + } + + onTouchStart(e) { + this.setOffset(e); + this.checkTouch({ + x: e.touches[0].pageX - this.offsetX, + y: e.touches[0].pageY - this.offsetY + }); + } + + onTouchMove(e) { + this.moveDraw(e) + } + + onTouchEnd(e) { + const checkPoints = this.checkPoints; + this.reset(); + return checkPoints; + } + + // 初始化 偏移量 + setOffset(e) { + this.offsetX = e.currentTarget.offsetLeft; + this.offsetY = e.currentTarget.offsetTop; + } + + // 检测当时 触摸位置是否位于 锁上 + checkTouch({ + x, + y + }) { + for (let i = 0; i < this.circleArray.length; i++) { + let point = this.circleArray[i]; + if (this.isPointInCycle(x, y, point.x, point.y, point.radius)) { + if (!point.check) { + this.checkPoints.push(point.count); + if (this.lastCheckPoint != 0) { + // 已激活锁之间的线段 + const line = this.drawLine(this.lastCheckPoint, point); + this.lineArray.push(line); + } + this.lastCheckPoint = point; + } + point.check = true; + return; + } + } + } + + // 画线 - 返回 样式 对象 + drawLine(start, end) { + const width = this.getPointDis(start.x, start.y, end.x, end.y); + const rotate = this.getAngle(start, end); + + return { + activeLeft: start.x + 'px', + activeTop: start.y + 'px', + activeWidth: width + 'px', + activeRotate: rotate + 'deg' + } + + } + + // 获取 画线的 角度 + getAngle(start, end) { + var diff_x = end.x - start.x, + diff_y = end.y - start.y; + if (diff_x >= 0) { + return 360 * Math.atan(diff_y / diff_x) / (2 * Math.PI); + } else { + return 180 + 360 * Math.atan(diff_y / diff_x) / (2 * Math.PI); + } + } + + // 判断 当前点是否位于 锁内 + isPointInCycle(x, y, circleX, circleY, radius) { + return (this.getPointDis(x, y, circleX, circleY) < radius) ? true : false; + } + + // 获取两点之间距离 + getPointDis(ax, ay, bx, by) { + return Math.sqrt(Math.pow(ax - bx, 2) + Math.pow(ay - by, 2)); + } + + // 移动 绘制 + moveDraw(e) { + // 画经过的圆 + const x = e.touches[0].pageX - this.offsetX; + const y = e.touches[0].pageY - this.offsetY; + this.checkTouch({ + x, + y + }); + + // 画 最后一个激活的锁与当前位置之间的线段 + this.activeLine = this.drawLine(this.lastCheckPoint, { + x, + y + }); + } + + // 使 画布 恢复初始状态 + reset() { + this.circleArray.forEach((item) => { + item.check = false; + }); + this.checkPoints = []; + this.lineArray = []; + this.activeLine = {}; + this.lastCheckPoint = 0; + } + + + // 获取 最后一个激活的锁与当前位置之间的线段 + getActiveLine() { + return this.activeLine; + } + + // 获取 圆对象数组 + getCycleArray() { + return this.circleArray; + } + + // 获取 已激活锁之间的线段 + getLineArray() { + return this.lineArray; + } + + // 将 RPX 转换成 PX + rpxTopx(rpx) { + return rpx / 750 * this.windowWidth; + } +} + +export default GestureLock; diff --git a/components/mpvueGestureLock/index.vue b/components/mpvueGestureLock/index.vue new file mode 100644 index 00000000..a2cefdd3 --- /dev/null +++ b/components/mpvueGestureLock/index.vue @@ -0,0 +1,138 @@ + + + + diff --git a/components/my-paging/my-paging.vue b/components/my-paging/my-paging.vue new file mode 100644 index 00000000..7c049290 --- /dev/null +++ b/components/my-paging/my-paging.vue @@ -0,0 +1,157 @@ + + + + + + diff --git a/components/page-foot/page-foot.vue b/components/page-foot/page-foot.vue new file mode 100644 index 00000000..1154dbe7 --- /dev/null +++ b/components/page-foot/page-foot.vue @@ -0,0 +1,38 @@ + + + + diff --git a/components/page-head/page-head.vue b/components/page-head/page-head.vue new file mode 100644 index 00000000..07ed46dd --- /dev/null +++ b/components/page-head/page-head.vue @@ -0,0 +1,16 @@ + + diff --git a/components/product.vue b/components/product.vue new file mode 100644 index 00000000..bfa97265 --- /dev/null +++ b/components/product.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/components/pullDown/pullDown.vue b/components/pullDown/pullDown.vue new file mode 100644 index 00000000..bddf9758 --- /dev/null +++ b/components/pullDown/pullDown.vue @@ -0,0 +1,590 @@ + + + + + diff --git a/components/show-modal/show-modal.vue b/components/show-modal/show-modal.vue new file mode 100644 index 00000000..f8b523a3 --- /dev/null +++ b/components/show-modal/show-modal.vue @@ -0,0 +1,456 @@ + + + + diff --git a/components/tab-nvue/mediaList.vue b/components/tab-nvue/mediaList.vue new file mode 100644 index 00000000..ea3d2247 --- /dev/null +++ b/components/tab-nvue/mediaList.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/components/u-charts/u-charts.js b/components/u-charts/u-charts.js new file mode 100644 index 00000000..3b1b7989 --- /dev/null +++ b/components/u-charts/u-charts.js @@ -0,0 +1,5046 @@ +/* + * uCharts v1.8.5.20190815 + * uni-app平台高性能跨全端图表,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360) + * Copyright (c) 2019 QIUN秋云 https://www.ucharts.cn All rights reserved. + * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) + * + * uCharts官方网站 + * https://www.uCharts.cn + * + * 开源地址: + * https://gitee.com/uCharts/uCharts + * + * uni-app插件市场地址: + * http://ext.dcloud.net.cn/plugin?id=271 + * + */ + +'use strict'; + +var config = { + yAxisWidth: 15, + yAxisSplit: 5, + xAxisHeight: 15, + xAxisLineHeight: 15, + legendHeight: 15, + yAxisTitleWidth: 15, + padding: [10, 10, 10, 10], + pixelRatio: 1, + rotate: false, + columePadding: 3, + fontSize: 13, + //dataPointShape: ['diamond', 'circle', 'triangle', 'rect'], + dataPointShape: ['circle', 'circle', 'circle', 'circle'], + colors: ['#1890ff', '#2fc25b', '#facc14', '#f04864', '#8543e0', '#90ed7d'], + pieChartLinePadding: 15, + pieChartTextPadding: 5, + xAxisTextPadding: 3, + titleColor: '#333333', + titleFontSize: 20, + subtitleColor: '#999999', + subtitleFontSize: 15, + toolTipPadding: 3, + toolTipBackground: '#000000', + toolTipOpacity: 0.7, + toolTipLineHeight: 20, + radarGridCount: 3, + radarLabelTextMargin: 15, + gaugeLabelTextMargin: 15 +}; + +let assign; +if (Object.assign) { + assign = Object.assign; +} else { + // 使用polyfill + assign = function(target, varArgs) { + if (target == null) { + throw new TypeError('Cannot convert undefined or null to object'); + } + var to = Object(target); + for (var index = 1; index < arguments.length; index++) { + var nextSource = arguments[index]; + if (nextSource != null) { + for (var nextKey in nextSource) { + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + } +} + +var util = { + toFixed: function toFixed(num, limit) { + limit = limit || 2; + if (this.isFloat(num)) { + num = num.toFixed(limit); + } + return num; + }, + isFloat: function isFloat(num) { + return num % 1 !== 0; + }, + approximatelyEqual: function approximatelyEqual(num1, num2) { + return Math.abs(num1 - num2) < 1e-10; + }, + isSameSign: function isSameSign(num1, num2) { + return Math.abs(num1) === num1 && Math.abs(num2) === num2 || Math.abs(num1) !== num1 && Math.abs(num2) !== num2; + }, + isSameXCoordinateArea: function isSameXCoordinateArea(p1, p2) { + return this.isSameSign(p1.x, p2.x); + }, + isCollision: function isCollision(obj1, obj2) { + obj1.end = {}; + obj1.end.x = obj1.start.x + obj1.width; + obj1.end.y = obj1.start.y - obj1.height; + obj2.end = {}; + obj2.end.x = obj2.start.x + obj2.width; + obj2.end.y = obj2.start.y - obj2.height; + var flag = obj2.start.x > obj1.end.x || obj2.end.x < obj1.start.x || obj2.end.y > obj1.start.y || obj2.start.y < obj1.end.y; + return !flag; + } +}; + +//兼容H5点击事件 +function getH5Offset(e) { + e.mp = { + changedTouches: [] + }; + e.mp.changedTouches.push({ + x: e.offsetX, + y: e.offsetY + }); + return e; +} + +// hex 转 rgba +function hexToRgb(hexValue, opc) { + var rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + var hex = hexValue.replace(rgx, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + var r = parseInt(rgb[1], 16); + var g = parseInt(rgb[2], 16); + var b = parseInt(rgb[3], 16); + return 'rgba(' + r + ',' + g + ',' + b + ',' + opc + ')'; +} + +function findRange(num, type, limit) { + if (isNaN(num)) { + throw new Error('[uCharts] unvalid series data!'); + } + limit = limit || 10; + type = type ? type : 'upper'; + var multiple = 1; + while (limit < 1) { + limit *= 10; + multiple *= 10; + } + if (type === 'upper') { + num = Math.ceil(num * multiple); + } else { + num = Math.floor(num * multiple); + } + while (num % limit !== 0) { + if (type === 'upper') { + num++; + } else { + num--; + } + } + return num / multiple; +} + +function calCandleMA(dayArr, nameArr, colorArr, kdata) { + let seriesTemp = []; + for (let k = 0; k < dayArr.length; k++) { + let seriesItem = { + data: [], + name: nameArr[k], + color: colorArr[k] + }; + for (let i = 0, len = kdata.length; i < len; i++) { + if (i < dayArr[k]) { + seriesItem.data.push(null); + continue; + } + let sum = 0; + for (let j = 0; j < dayArr[k]; j++) { + sum += kdata[i - j][1]; + } + seriesItem.data.push(+(sum / dayArr[k]).toFixed(3)); + } + seriesTemp.push(seriesItem); + } + return seriesTemp; +} + +function calValidDistance(distance, chartData, config, opts) { + var dataChartAreaWidth = opts.width - opts.area[1] - opts.area[3]; + var dataChartWidth = chartData.eachSpacing * (opts.chartData.xAxisData.xAxisPoints.length-1); + var validDistance = distance; + if (distance >= 0) { + validDistance = 0; + } else if (Math.abs(distance) >= dataChartWidth - dataChartAreaWidth) { + validDistance = dataChartAreaWidth - dataChartWidth; + } + return validDistance; +} + +function isInAngleRange(angle, startAngle, endAngle) { + function adjust(angle) { + while (angle < 0) { + angle += 2 * Math.PI; + } + while (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + } + angle = adjust(angle); + startAngle = adjust(startAngle); + endAngle = adjust(endAngle); + if (startAngle > endAngle) { + endAngle += 2 * Math.PI; + if (angle < startAngle) { + angle += 2 * Math.PI; + } + } + return angle >= startAngle && angle <= endAngle; +} + +function calRotateTranslate(x, y, h) { + var xv = x; + var yv = h - y; + var transX = xv + (h - yv - xv) / Math.sqrt(2); + transX *= -1; + var transY = (h - yv) * (Math.sqrt(2) - 1) - (h - yv - xv) / Math.sqrt(2); + return { + transX: transX, + transY: transY + }; +} + +function createCurveControlPoints(points, i) { + + function isNotMiddlePoint(points, i) { + if (points[i - 1] && points[i + 1]) { + return points[i].y >= Math.max(points[i - 1].y, points[i + 1].y) || points[i].y <= Math.min(points[i - 1].y, + points[ + i + 1].y); + } else { + return false; + } + } + var a = 0.2; + var b = 0.2; + var pAx = null; + var pAy = null; + var pBx = null; + var pBy = null; + if (i < 1) { + pAx = points[0].x + (points[1].x - points[0].x) * a; + pAy = points[0].y + (points[1].y - points[0].y) * a; + } else { + pAx = points[i].x + (points[i + 1].x - points[i - 1].x) * a; + pAy = points[i].y + (points[i + 1].y - points[i - 1].y) * a; + } + + if (i > points.length - 3) { + var last = points.length - 1; + pBx = points[last].x - (points[last].x - points[last - 1].x) * b; + pBy = points[last].y - (points[last].y - points[last - 1].y) * b; + } else { + pBx = points[i + 1].x - (points[i + 2].x - points[i].x) * b; + pBy = points[i + 1].y - (points[i + 2].y - points[i].y) * b; + } + if (isNotMiddlePoint(points, i + 1)) { + pBy = points[i + 1].y; + } + if (isNotMiddlePoint(points, i)) { + pAy = points[i].y; + } + return { + ctrA: { + x: pAx, + y: pAy + }, + ctrB: { + x: pBx, + y: pBy + } + }; +} + +function convertCoordinateOrigin(x, y, center) { + return { + x: center.x + x, + y: center.y - y + }; +} + +function avoidCollision(obj, target) { + if (target) { + // is collision test + while (util.isCollision(obj, target)) { + if (obj.start.x > 0) { + obj.start.y--; + } else if (obj.start.x < 0) { + obj.start.y++; + } else { + if (obj.start.y > 0) { + obj.start.y++; + } else { + obj.start.y--; + } + } + } + } + return obj; +} + +function fillSeries(series, opts, config) { + var index = 0; + return series.map(function(item) { + if (!item.color) { + item.color = config.colors[index]; + index = (index + 1) % config.colors.length; + } + if (!item.type) { + item.type = opts.type; + } + if (typeof item.show == "undefined") { + item.show = true; + } + if (!item.type) { + item.type = opts.type; + } + if (!item.pointShape) { + item.pointShape = "circle"; + } + if (!item.legendShape) { + switch (item.type) { + case 'line': + item.legendShape = "line"; + break; + case 'column': + item.legendShape = "rect"; + break; + case 'area': + item.legendShape = "triangle"; + break; + default: + item.legendShape = "circle"; + } + } + return item; + }); +} + +function getDataRange(minData, maxData) { + var limit = 0; + var range = maxData - minData; + if (range >= 10000) { + limit = 1000; + } else if (range >= 1000) { + limit = 100; + } else if (range >= 100) { + limit = 10; + } else if (range >= 10) { + limit = 5; + } else if (range >= 1) { + limit = 1; + } else if (range >= 0.1) { + limit = 0.1; + } else if (range >= 0.01) { + limit = 0.01; + } else if (range >= 0.001) { + limit = 0.001; + } else if (range >= 0.0001) { + limit = 0.0001; + } else if (range >= 0.00001) { + limit = 0.00001; + } else { + limit = 0.000001; + } + return { + minRange: findRange(minData, 'lower', limit), + maxRange: findRange(maxData, 'upper', limit) + }; +} + +function measureText(text) { + var fontSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : config.fontSize; + text = String(text); + var text = text.split(''); + var width = 0; + for (let i = 0; i < text.length; i++) { + let item = text[i]; + if (/[a-zA-Z]/.test(item)) { + width += 7; + } else if (/[0-9]/.test(item)) { + width += 5.5; + } else if (/\./.test(item)) { + width += 2.7; + } else if (/-/.test(item)) { + width += 3.25; + } else if (/[\u4e00-\u9fa5]/.test(item)) { + width += 10; + } else if (/\(|\)/.test(item)) { + width += 3.73; + } else if (/\s/.test(item)) { + width += 2.5; + } else if (/%/.test(item)) { + width += 8; + } else { + width += 10; + } + } + return width * fontSize / 10; +} + +function dataCombine(series) { + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data); + }, []); +} + +function dataCombineStack(series, len) { + var sum = new Array(len); + for (var j = 0; j < sum.length; j++) { + sum[j] = 0; + } + for (var i = 0; i < series.length; i++) { + for (var j = 0; j < sum.length; j++) { + sum[j] += series[i].data[j]; + } + } + return series.reduce(function(a, b) { + return (a.data ? a.data : a).concat(b.data).concat(sum); + }, []); +} + +function getTouches(touches, opts, e) { + let x, y; + if (touches.clientX) { + if (opts.rotate) { + y = opts.height - touches.clientX * opts.pixelRatio; + x = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pixelRatio / 2) * (opts.pixelRatio - 1)) * + opts.pixelRatio; + } else { + x = touches.clientX * opts.pixelRatio; + y = (touches.pageY - e.currentTarget.offsetTop - (opts.height / opts.pixelRatio / 2) * (opts.pixelRatio - 1)) * + opts.pixelRatio; + } + } else { + if (opts.rotate) { + y = opts.height - touches.x * opts.pixelRatio; + x = touches.y * opts.pixelRatio; + } else { + x = touches.x * opts.pixelRatio; + y = touches.y * opts.pixelRatio; + } + } + return { + x: x, + y: y + } +} + +function getSeriesDataItem(series, index) { + var data = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + if (item.data[index] !== null && typeof item.data[index] !== 'undefined' && item.show) { + let seriesItem = {}; + seriesItem.color = item.color; + seriesItem.type = item.type; + seriesItem.style = item.style; + seriesItem.pointShape = item.pointShape; + seriesItem.disableLegend = item.disableLegend; + seriesItem.name = item.name; + seriesItem.show = item.show; + seriesItem.data = item.format ? item.format(item.data[index]) : item.data[index]; + data.push(seriesItem); + } + } + return data; +} + +function getMaxTextListLength(list) { + var lengthList = list.map(function(item) { + return measureText(item); + }); + return Math.max.apply(null, lengthList); +} + +function getRadarCoordinateSeries(length) { + var eachAngle = 2 * Math.PI / length; + var CoordinateSeries = []; + for (var i = 0; i < length; i++) { + CoordinateSeries.push(eachAngle * i); + } + + return CoordinateSeries.map(function(item) { + return -1 * item + Math.PI / 2; + }); +} + +function getToolTipData(seriesData, calPoints, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + + var textList = seriesData.map(function(item) { + return { + text: option.format ? option.format(item, categories[index]) : item.name + ': ' + item.data, + color: item.color + }; + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + for (let i = 0; i < validCalPoints.length; i++) { + let item = validCalPoints[i]; + offset.x = Math.round(item.x); + offset.y += item.y; + } + offset.y /= validCalPoints.length; + return { + textList: textList, + offset: offset + }; +} + +function getMixToolTipData(seriesData, calPoints, index, categories) { + var option = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; + var textList = seriesData.map(function(item) { + return { + text: option.format ? option.format(item, categories[index]) : item.name + ': ' + item.data, + color: item.color, + disableLegend: item.disableLegend ? true : false + }; + }); + textList = textList.filter(function(item) { + if (item.disableLegend !== true) { + return item; + } + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + for (let i = 0; i < validCalPoints.length; i++) { + let item = validCalPoints[i]; + offset.x = Math.round(item.x); + offset.y += item.y; + } + offset.y /= validCalPoints.length; + return { + textList: textList, + offset: offset + }; +} + +function getCandleToolTipData(series, seriesData, calPoints, index, categories, extra) { + var option = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : {}; + let upColor = extra.color.upFill; + let downColor = extra.color.downFill; + //颜色顺序为开盘,收盘,最低,最高 + let color = [upColor, upColor, downColor, upColor]; + var textList = []; + let text0 = { + text: categories[index], + color: null + }; + textList.push(text0); + seriesData.map(function(item) { + if (index == 0 && item.data[1] - item.data[0] < 0) { + color[1] = downColor; + } else { + if (item.data[0] < series[index - 1][1]) { + color[0] = downColor; + } + if (item.data[1] < item.data[0]) { + color[1] = downColor; + } + if (item.data[2] > series[index - 1][1]) { + color[2] = upColor; + } + if (item.data[3] < series[index - 1][1]) { + color[3] = downColor; + } + } + let text1 = { + text: '开盘:' + item.data[0], + color: color[0] + }; + let text2 = { + text: '收盘:' + item.data[1], + color: color[1] + }; + let text3 = { + text: '最低:' + item.data[2], + color: color[2] + }; + let text4 = { + text: '最高:' + item.data[3], + color: color[3] + }; + textList.push(text1, text2, text3, text4); + }); + var validCalPoints = []; + var offset = { + x: 0, + y: 0 + }; + for (let i = 0; i < calPoints.length; i++) { + let points = calPoints[i]; + if (typeof points[index] !== 'undefined' && points[index] !== null) { + validCalPoints.push(points[index]); + } + } + offset.x = Math.round(validCalPoints[0][0].x); + return { + textList: textList, + offset: offset + }; +} + +function filterSeries(series) { + let tempSeries = []; + for (let i = 0; i < series.length; i++) { + if (series[i].show == true) { + tempSeries.push(series[i]) + } + } + return tempSeries; +} + +function findCurrentIndex(currentPoints, xAxisPoints, opts, config) { + var offset = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var currentIndex = -1; + var spacing = 0; + if((opts.type=='line' || opts.type=='area') && opts.xAxis.boundaryGap=='justify'){ + spacing = opts.chartData.eachSpacing/2; + } + if (isInExactChartArea(currentPoints, opts, config)) { + xAxisPoints.forEach(function(item, index) { + if (currentPoints.x + offset + spacing > item) { + currentIndex = index; + } + }); + } + return currentIndex; +} + +function findLegendIndex(currentPoints, legendData, opts) { + let currentIndex = -1; + if (isInExactLegendArea(currentPoints, legendData.area)) { + let points = legendData.points; + let index = -1; + for (let i = 0, len = points.length; i < len; i++) { + let item = points[i]; + for (let j = 0; j < item.length; j++) { + index += 1; + let area = item[j]['area']; + if (currentPoints.x > area[0] && currentPoints.x < area[2] && currentPoints.y > area[1] && currentPoints.y < area[3]) { + currentIndex = index; + break; + } + } + } + return currentIndex; + } + return currentIndex; +} + +function isInExactLegendArea(currentPoints, area) { + return currentPoints.x > area.start.x && currentPoints.x < area.end.x && currentPoints.y > area.start.y && + currentPoints.y < area.end.y; +} + +function isInExactChartArea(currentPoints, opts, config) { + return currentPoints.x < opts.width - opts.area[1] + 10 && currentPoints.x > opts.area[3] -10 && currentPoints.y > opts.area[0] && currentPoints.y < opts.height - opts.area[2]; +} + +function findRadarChartCurrentIndex(currentPoints, radarData, count) { + var eachAngleArea = 2 * Math.PI / count; + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, radarData.center, radarData.radius)) { + var fixAngle = function fixAngle(angle) { + if (angle < 0) { + angle += 2 * Math.PI; + } + if (angle > 2 * Math.PI) { + angle -= 2 * Math.PI; + } + return angle; + }; + + var angle = Math.atan2(radarData.center.y - currentPoints.y, currentPoints.x - radarData.center.x); + angle = -1 * angle; + if (angle < 0) { + angle += 2 * Math.PI; + } + + var angleList = radarData.angleList.map(function(item) { + item = fixAngle(-1 * item); + + return item; + }); + + angleList.forEach(function(item, index) { + var rangeStart = fixAngle(item - eachAngleArea / 2); + var rangeEnd = fixAngle(item + eachAngleArea / 2); + if (rangeEnd < rangeStart) { + rangeEnd += 2 * Math.PI; + } + if (angle >= rangeStart && angle <= rangeEnd || angle + 2 * Math.PI >= rangeStart && angle + 2 * Math.PI <= + rangeEnd) { + currentIndex = index; + } + }); + } + + return currentIndex; +} + +function findFunnelChartCurrentIndex(currentPoints, funnelData) { + var currentIndex = -1; + for (var i = 0, len = funnelData.series.length; i < len; i++) { + var item = funnelData.series[i]; + if (currentPoints.x > item.funnelArea[0] && currentPoints.x < item.funnelArea[2] && currentPoints.y > item.funnelArea[1] && currentPoints.y < item.funnelArea[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findWordChartCurrentIndex(currentPoints, wordData) { + var currentIndex = -1; + for (var i = 0, len = wordData.length; i < len; i++) { + var item = wordData[i]; + if (currentPoints.x > item.area[0] && currentPoints.x < item.area[2] && currentPoints.y > item.area[1] && currentPoints.y < item.area[3]) { + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findMapChartCurrentIndex(currentPoints, opts) { + var currentIndex = -1; + var cData=opts.chartData.mapData; + var data=opts.series; + var tmp=pointToCoordinate(currentPoints.y, currentPoints.x,cData.bounds,cData.scale,cData.xoffset,cData.yoffset); + var poi=[tmp.x, tmp.y]; + for (var i = 0, len = data.length; i < len; i++) { + var item = data[i].geometry.coordinates; + if(isPoiWithinPoly(poi,item)){ + currentIndex = i; + break; + } + } + return currentIndex; +} + +function findPieChartCurrentIndex(currentPoints, pieData) { + var currentIndex = -1; + if (isInExactPieChartArea(currentPoints, pieData.center, pieData.radius)) { + var angle = Math.atan2(pieData.center.y - currentPoints.y, currentPoints.x - pieData.center.x); + angle = -angle; + for (var i = 0, len = pieData.series.length; i < len; i++) { + var item = pieData.series[i]; + if (isInAngleRange(angle, item._start_, item._start_ + item._proportion_ * 2 * Math.PI)) { + currentIndex = i; + break; + } + } + } + + return currentIndex; +} + +function isInExactPieChartArea(currentPoints, center, radius) { + return Math.pow(currentPoints.x - center.x, 2) + Math.pow(currentPoints.y - center.y, 2) <= Math.pow(radius, 2); +} + +function splitPoints(points) { + var newPoints = []; + var items = []; + points.forEach(function(item, index) { + if (item !== null) { + items.push(item); + } else { + if (items.length) { + newPoints.push(items); + } + items = []; + } + }); + if (items.length) { + newPoints.push(items); + } + + return newPoints; +} + +function calLegendData(series, opts, config, chartData) { + let legendData = { + area: { + start: { + x: 0, + y: 0 + }, + end: { + x: 0, + y: 0 + }, + width: 0, + height: 0, + wholeWidth: 0, + wholeHeight: 0 + }, + points: [], + widthArr: [], + heightArr: [] + }; + if (opts.legend.show === false) { + chartData.legendData = legendData; + return legendData; + } + + let padding = opts.legend.padding; + let margin = opts.legend.margin; + let fontSize = opts.legend.fontSize; + let shapeWidth = 15 * opts.pixelRatio; + let shapeRight = 5 * opts.pixelRatio; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pixelRatio, fontSize); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + let legendList = []; + let widthCount = 0; + let widthCountArr = []; + let currentRow = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let itemWidth = shapeWidth + shapeRight + measureText(item.name || 'undefined', fontSize) + opts.legend.itemGap; + if (widthCount + itemWidth > opts.width - opts.padding[1] - opts.padding[3]) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap); + widthCount = itemWidth; + currentRow = [item]; + } else { + widthCount += itemWidth; + currentRow.push(item); + } + } + if (currentRow.length) { + legendList.push(currentRow); + widthCountArr.push(widthCount - opts.legend.itemGap); + legendData.widthArr = widthCountArr; + let legendWidth = Math.max.apply(null, widthCountArr); + switch (opts.legend.float) { + case 'left': + legendData.area.start.x = opts.padding[3]; + legendData.area.end.x = opts.padding[3] + 2 * padding; + break; + case 'right': + legendData.area.start.x = opts.width - opts.padding[1] - legendWidth - 2 * padding; + legendData.area.end.x = opts.width - opts.padding[1]; + break; + default: + legendData.area.start.x = (opts.width - legendWidth) / 2 - padding; + legendData.area.end.x = (opts.width + legendWidth) / 2 + padding; + } + legendData.area.width = legendWidth + 2 * padding; + legendData.area.wholeWidth = legendWidth + 2 * padding; + legendData.area.height = legendList.length * lineHeight + 2 * padding; + legendData.area.wholeHeight = legendList.length * lineHeight + 2 * padding + 2 * margin; + legendData.points = legendList; + } + } else { + let len = series.length; + let maxHeight = opts.height - opts.padding[0] - opts.padding[2] - 2 * margin - 2 * padding; + let maxLength = Math.min(Math.floor(maxHeight / lineHeight), len); + legendData.area.height = maxLength * lineHeight + padding * 2; + legendData.area.wholeHeight = maxLength * lineHeight + padding * 2; + switch (opts.legend.float) { + case 'top': + legendData.area.start.y = opts.padding[0] + margin; + legendData.area.end.y = opts.padding[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.padding[2] - margin - legendData.area.height; + legendData.area.end.y = opts.height - opts.padding[2] - margin; + break; + default: + legendData.area.start.y = (opts.height - legendData.area.height) / 2; + legendData.area.end.y = (opts.height + legendData.area.height) / 2; + } + let lineNum = len % maxLength === 0 ? len / maxLength : Math.floor((len / maxLength) + 1); + let currentRow = []; + for (let i = 0; i < lineNum; i++) { + let temp = series.slice(i * maxLength, i * maxLength + maxLength); + currentRow.push(temp); + } + + legendData.points = currentRow; + + if (currentRow.length) { + for (let i = 0; i < currentRow.length; i++) { + let item = currentRow[i]; + let maxWidth = 0; + for (let j = 0; j < item.length; j++) { + let itemWidth = shapeWidth + shapeRight + measureText(item[j].name || 'undefined', fontSize) + opts.legend.itemGap; + if (itemWidth > maxWidth) { + maxWidth = itemWidth; + } + } + legendData.widthArr.push(maxWidth); + legendData.heightArr.push(item.length * lineHeight + padding * 2); + } + let legendWidth = 0 + for (let i = 0; i < legendData.widthArr.length; i++) { + legendWidth += legendData.widthArr[i]; + } + legendData.area.width = legendWidth - opts.legend.itemGap + 2 * padding; + legendData.area.wholeWidth = legendData.area.width + padding; + } + } + + switch (opts.legend.position) { + case 'top': + legendData.area.start.y = opts.padding[0] + margin; + legendData.area.end.y = opts.padding[0] + margin + legendData.area.height; + break; + case 'bottom': + legendData.area.start.y = opts.height - opts.padding[2] - legendData.area.height - margin; + legendData.area.end.y = opts.height - opts.padding[2] - margin; + break; + case 'left': + legendData.area.start.x = opts.padding[3]; + legendData.area.end.x = opts.padding[3] + legendData.area.width; + break; + case 'right': + legendData.area.start.x = opts.width - opts.padding[1] - legendData.area.width; + legendData.area.end.x = opts.width - opts.padding[1]; + break; + } + chartData.legendData = legendData; + return legendData; +} + +function calCategoriesData(categories, opts, config, eachSpacing) { + var result = { + angle: 0, + xAxisHeight: config.xAxisHeight + }; + var categoriesTextLenth = categories.map(function(item) { + return measureText(item); + }); + var maxTextLength = Math.max.apply(this, categoriesTextLenth); + + if (opts.xAxis.rotateLabel == true && maxTextLength + 2 * config.xAxisTextPadding > eachSpacing) { + result.angle = 45 * Math.PI / 180; + result.xAxisHeight = 2 * config.xAxisTextPadding + maxTextLength * Math.sin(result.angle); + } + return result; +} + +function getRadarDataPoints(angleList, center, radius, series, opts) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + + var radarOption = opts.extra.radar || {}; + radarOption.max = radarOption.max || 0; + var maxData = Math.max(radarOption.max, Math.max.apply(null, dataCombine(series))); + + var data = []; + for (let i = 0; i < series.length; i++) { + let each = series[i]; + let listItem = {}; + listItem.color = each.color; + listItem.data = []; + each.data.forEach(function(item, index) { + let tmp = {}; + tmp.angle = angleList[index]; + + tmp.proportion = item / maxData; + tmp.position = convertCoordinateOrigin(radius * tmp.proportion * process * Math.cos(tmp.angle), radius * tmp.proportion * + process * Math.sin(tmp.angle), center); + listItem.data.push(tmp); + }); + + data.push(listItem); + } + + return data; +} + +function getPieDataPoints(series, radius) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + + var count = 0; + var _start_ = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0) { + item._proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + } + item._radius_ = radius; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._proportion_ * Math.PI; + } + + return series; +} + +function getFunnelDataPoints(series, radius) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + series = series.sort(function(a,b){return parseInt(b.data)-parseInt(a.data);}); + for (let i = 0; i < series.length; i++) { + series[i].radius = series[i].data/series[0].data*radius*process; + series[i]._proportion_ = series[i].data/series[0].data; + } + return series.reverse(); +} + +function getRoseDataPoints(series, type, minRadius, radius) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var count = 0; + var _start_ = 0; + + var dataArr = []; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + count += item.data; + dataArr.push(item.data); + } + + var minData = Math.min.apply(null, dataArr); + var maxData = Math.max.apply(null, dataArr); + var radiusLength = radius - minRadius; + + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (count === 0 || type == 'area') { + item._proportion_ = item.data / count * process; + item._rose_proportion_ = 1 / series.length * process; + } else { + item._proportion_ = item.data / count * process; + item._rose_proportion_ = item.data / count * process; + } + item._radius_ = minRadius + radiusLength * ((item.data - minData) / (maxData - minData)); + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item._start_ = _start_; + _start_ += 2 * item._rose_proportion_ * Math.PI; + } + + return series; +} + +function getArcbarDataPoints(series, arcbarOption) { + var process = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1; + if (process == 1) { + process = 0.999999; + } + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + let totalAngle; + if (arcbarOption.type == 'default') { + if (arcbarOption.endAngle < arcbarOption.startAngle) { + totalAngle = 2 + arcbarOption.endAngle - arcbarOption.startAngle; + } else{ + totalAngle = arcbarOption.startAngle - arcbarOption.endAngle; + } + } else { + totalAngle = 2; + } + item._proportion_ = totalAngle * item.data * process + arcbarOption.startAngle; + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getGaugeAxisPoints(categories, startAngle, endAngle) { + let totalAngle = startAngle - endAngle + 1; + let tempStartAngle = startAngle; + for (let i = 0; i < categories.length; i++) { + categories[i].value = categories[i].value === null ? 0 : categories[i].value; + categories[i]._startAngle_ = tempStartAngle; + categories[i]._endAngle_ = totalAngle * categories[i].value + startAngle; + if (categories[i]._endAngle_ >= 2) { + categories[i]._endAngle_ = categories[i]._endAngle_ % 2; + } + tempStartAngle = categories[i]._endAngle_; + } + return categories; +} + +function getGaugeDataPoints(series, categories, gaugeOption) { + let process = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + item.data = item.data === null ? 0 : item.data; + if (gaugeOption.pointer.color == 'auto') { + for (let i = 0; i < categories.length; i++) { + if (item.data <= categories[i].value) { + item.color = categories[i].color; + break; + } + } + } else { + item.color = gaugeOption.pointer.color; + } + let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + item._endAngle_ = totalAngle * item.data + gaugeOption.startAngle; + item._oldAngle_ = gaugeOption.oldAngle; + if (gaugeOption.oldAngle < gaugeOption.endAngle) { + item._oldAngle_ += 2; + } + if (item.data >= gaugeOption.oldData) { + item._proportion_ = (item._endAngle_ - item._oldAngle_) * process + gaugeOption.oldAngle; + } else { + item._proportion_ = item._oldAngle_ - (item._oldAngle_ - item._endAngle_) * process; + } + if (item._proportion_ >= 2) { + item._proportion_ = item._proportion_ % 2; + } + } + return series; +} + +function getPieTextMaxLength(series) { + series = getPieDataPoints(series); + let maxLength = 0; + for (let i = 0; i < series.length; i++) { + let item = series[i]; + let text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_ * 100) + '%'; + maxLength = Math.max(maxLength, measureText(text)); + } + + return maxLength; +} + +function fixColumeData(points, eachSpacing, columnLen, index, config, opts) { + return points.map(function(item) { + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / columnLen); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + if (item.width <= 0) { + item.width = 1; + } + item.x += (index + 0.5 - columnLen / 2) * item.width; + return item; + }); +} + +function fixColumeMeterData(points, eachSpacing, columnLen, index, config, opts, border) { + return points.map(function(item) { + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / 2); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + + if (index > 0) { + item.width -= 2 * border; + } + return item; + }); +} + +function fixColumeStackData(points, eachSpacing, columnLen, index, config, opts, series) { + + return points.map(function(item, indexn) { + + if (item === null) { + return null; + } + item.width = Math.ceil((eachSpacing - 2 * config.columePadding) / 2); + + if (opts.extra.column && opts.extra.column.width && +opts.extra.column.width > 0) { + item.width = Math.min(item.width, +opts.extra.column.width); + } + return item; + }); +} + +function getXAxisPoints(categories, opts, config) { + var yAxisTotalWidth = config.yAxisWidth + config.yAxisTitleWidth; + var spacingValid = opts.width - opts.area[1] - opts.area[3]; + var dataCount = opts.enableScroll ? Math.min(opts.xAxis.itemCount, categories.length) : categories.length; + if((opts.type=='line' || opts.type=='area') && dataCount>1 && opts.xAxis.boundaryGap=='justify'){ + dataCount -=1; + } + var eachSpacing = spacingValid / dataCount; + + var xAxisPoints = []; + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + categories.forEach(function(item, index) { + xAxisPoints.push(startX + index * eachSpacing); + }); + if(opts.xAxis.boundaryGap !=='justify'){ + if (opts.enableScroll === true) { + xAxisPoints.push(startX + categories.length * eachSpacing); + } else { + xAxisPoints.push(endX); + } + } + return { + xAxisPoints: xAxisPoints, + startX: startX, + endX: endX, + eachSpacing: eachSpacing + }; +} + +function getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var cPoints = []; + item.forEach(function(items, indexs) { + var point = {}; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + var value = items.value || items; + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + cPoints.push(point); + }); + points.push(cPoints); + } + }); + + return points; +} + +function getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config) { + var process = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 1; + var boundaryGap='center'; + if (opts.type == 'line'||opts.type == 'area'){ + boundaryGap=opts.xAxis.boundaryGap; + } + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index]; + if(boundaryGap=='center'){ + point.x += Math.round(eachSpacing / 2); + } + var value = item; + if (typeof item === 'object' && item !== null) { + value = item.value + } + var height = validHeight * (value - minRange) / (maxRange - minRange); + height *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + points.push(point); + } + }); + + return points; +} + +function getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, stackSeries) { + var process = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 1; + var points = []; + var validHeight = opts.height - opts.area[0] - opts.area[2]; + + data.forEach(function(item, index) { + if (item === null) { + points.push(null); + } else { + var point = {}; + point.color = item.color; + point.x = xAxisPoints[index] + Math.round(eachSpacing / 2); + + if (seriesIndex > 0) { + var value = 0; + for (let i = 0; i <= seriesIndex; i++) { + value += stackSeries[i].data[index]; + } + var value0 = value - item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = validHeight * (value0 - minRange) / (maxRange - minRange); + } else { + var value = item; + var height = validHeight * (value - minRange) / (maxRange - minRange); + var height0 = 0; + } + var heightc = height0; + height *= process; + heightc *= process; + point.y = opts.height - Math.round(height) - opts.area[2]; + point.y0 = opts.height - Math.round(heightc) - opts.area[2]; + points.push(point); + } + }); + + return points; +} + +function getYAxisTextList(series, opts, config, stack) { + var data; + if (stack == 'stack') { + data = dataCombineStack(series, opts.categories.length); + } else { + data = dataCombine(series); + } + var sorted = []; + // remove null from data + data = data.filter(function(item) { + //return item !== null; + if (typeof item === 'object' && item !== null) { + if (Array.isArray(item)) { + return item !== null; + } else { + return item.value !== null; + } + } else { + return item !== null; + } + }); + data.map(function(item) { + if (typeof item === 'object') { + if (Array.isArray(item)) { + item.map(function(subitem) { + sorted.push(subitem); + }) + } else { + sorted.push(item.value); + } + } else { + sorted.push(item); + } + }) + var minData = 0; + var maxData = 0; + if (sorted.length > 0) { + minData = Math.min.apply(this, sorted); + maxData = Math.max.apply(this, sorted); + } + if (typeof opts.yAxis.min === 'number') { + minData = Math.min(opts.yAxis.min, minData); + } + if (typeof opts.yAxis.max === 'number') { + maxData = Math.max(opts.yAxis.max, maxData); + } + + if (minData === maxData) { + var rangeSpan = maxData || 10; + maxData += rangeSpan; + } + + var dataRange = getDataRange(minData, maxData); + var minRange = dataRange.minRange; + var maxRange = dataRange.maxRange; + + var range = []; + var eachRange = (maxRange - minRange) / config.yAxisSplit; + + for (var i = 0; i <= config.yAxisSplit; i++) { + range.push(minRange + eachRange * i); + } + return range.reverse(); +} + +function calYAxisData(series, opts, config) { + //堆叠图重算Y轴 + var columnstyle = assign({}, { + type: "" + }, opts.extra.column); + var ranges = getYAxisTextList(series, opts, config, columnstyle.type); + var yAxisWidth = config.yAxisWidth; + var yAxisFontSize = opts.yAxis.fontSize || config.fontSize; + var rangesFormat = ranges.map(function(item) { + item = util.toFixed(item, 6); + item = opts.yAxis.format ? opts.yAxis.format(Number(item)) : item; + yAxisWidth = Math.max(yAxisWidth, measureText(item, yAxisFontSize) + 5); + return item; + }); + if (opts.yAxis.disabled === true) { + yAxisWidth = 0; + } + + return { + rangesFormat: rangesFormat, + ranges: ranges, + yAxisWidth: yAxisWidth + }; +} + +function calTooltipYAxisData(point, series, opts, config, eachSpacing) { + var ranges = getYAxisTextList(series, opts, config); + var spacingValid = opts.height - opts.area[0] - opts.area[2]; + let maxVal = ranges[0]; + let minVal = ranges[ranges.length - 1]; + let minAxis = opts.padding[3]; + let maxAxis = opts.padding[1] + spacingValid; + let item = maxVal - (maxVal - minVal) * (point - minAxis) / (maxAxis - minAxis); + item = opts.yAxis.format ? opts.yAxis.format(Number(item)) : item; + return item; +} + +function calMarkLineData(minRange, maxRange, points, opts) { + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + for (let i = 0; i < points.length; i++) { + let height = spacingValid * (points[i].value - minRange) / (maxRange - minRange); + points[i].y = opts.height - Math.round(height) - opts.area[2]; + } + return points; +} + +function contextRotate(context, opts) { + if (opts.rotateLock !== true) { + context.translate(opts.height, 0); + context.rotate(90 * Math.PI / 180); + } else if (opts._rotate_ !== true) { + context.translate(opts.height, 0); + context.rotate(90 * Math.PI / 180); + opts._rotate_ = true; + } +} + +function drawPointShape(points, color, shape, context, opts) { + context.beginPath(); + context.setStrokeStyle("#ffffff"); + context.setLineWidth(1 * opts.pixelRatio); + context.setFillStyle(color); + if (shape === 'diamond') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y); + context.lineTo(item.x, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y); + context.lineTo(item.x, item.y - 4.5); + } + }); + } else if (shape === 'circle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x + 3.5 * opts.pixelRatio, item.y); + context.arc(item.x, item.y, 4 * opts.pixelRatio, 0, 2 * Math.PI, false); + } + }); + } else if (shape === 'rect') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x - 3.5, item.y - 3.5); + context.rect(item.x - 3.5, item.y - 3.5, 7, 7); + } + }); + } else if (shape === 'triangle') { + points.forEach(function(item, index) { + if (item !== null) { + context.moveTo(item.x, item.y - 4.5); + context.lineTo(item.x - 4.5, item.y + 4.5); + context.lineTo(item.x + 4.5, item.y + 4.5); + context.lineTo(item.x, item.y - 4.5); + } + }); + } + context.closePath(); + context.fill(); + context.stroke(); +} + +function drawRingTitle(opts, config, context, center) { + var titlefontSize = opts.title.fontSize || config.titleFontSize; + var subtitlefontSize = opts.subtitle.fontSize || config.subtitleFontSize; + var title = opts.title.name || ''; + var subtitle = opts.subtitle.name || ''; + var titleFontColor = opts.title.color || config.titleColor; + var subtitleFontColor = opts.subtitle.color || config.subtitleColor; + var titleHeight = title ? titlefontSize : 0; + var subtitleHeight = subtitle ? subtitlefontSize : 0; + var margin = 5; + + if (subtitle) { + var textWidth = measureText(subtitle, subtitlefontSize); + var startX = center.x - textWidth / 2 + (opts.subtitle.offsetX || 0); + var startY = center.y + subtitlefontSize / 2 + (opts.subtitle.offsetY || 0); + if (title) { + startY += (titleHeight + margin) / 2; + } + context.beginPath(); + context.setFontSize(subtitlefontSize); + context.setFillStyle(subtitleFontColor); + context.fillText(subtitle, startX, startY); + context.closePath(); + context.stroke(); + } + if (title) { + var _textWidth = measureText(title, titlefontSize); + var _startX = center.x - _textWidth / 2 + (opts.title.offsetX || 0); + var _startY = center.y + titlefontSize / 2 + (opts.title.offsetY || 0); + if (subtitle) { + _startY -= (subtitleHeight + margin) / 2; + } + context.beginPath(); + context.setFontSize(titlefontSize); + context.setFillStyle(titleFontColor); + context.fillText(title, _startX, _startY); + context.closePath(); + context.stroke(); + } +} + +function drawPointText(points, series, config, context) { + // 绘制数据文案 + var data = series.data; + points.forEach(function(item, index) { + if (item !== null) { + //var formatVal = series.format ? series.format(data[index]) : data[index]; + context.beginPath(); + context.setFontSize(series.textSize || config.fontSize); + context.setFillStyle(series.textColor || '#666666'); + var value = data[index] + if (typeof data[index] === 'object' && data[index] !== null) { + value = data[index].value + } + var formatVal = series.format ? series.format(value) : value; + context.fillText(String(formatVal), item.x - measureText(formatVal, series.textSize || config.fontSize) / 2, item.y - + 2); + context.closePath(); + context.stroke(); + } + }); + +} + +function drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context) { + radius -= gaugeOption.width / 2 + config.gaugeLabelTextMargin; + + let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let totalNumber = gaugeOption.endNumber - gaugeOption.startNumber; + let splitNumber = totalNumber / gaugeOption.splitLine.splitNumber; + let nowAngle = gaugeOption.startAngle; + let nowNumber = gaugeOption.startNumber; + for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) { + var pos = { + x: radius * Math.cos(nowAngle * Math.PI), + y: radius * Math.sin(nowAngle * Math.PI) + }; + var labelText = gaugeOption.labelFormat ? gaugeOption.labelFormat(nowNumber) : nowNumber; + pos.x += centerPosition.x - measureText(labelText) / 2; + pos.y += centerPosition.y; + var startX = pos.x; + var startY = pos.y; + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(gaugeOption.labelColor || '#666666'); + context.fillText(labelText, startX, startY + config.fontSize / 2); + context.closePath(); + context.stroke(); + + nowAngle += splitAngle; + if (nowAngle >= 2) { + nowAngle = nowAngle % 2; + } + nowNumber += splitNumber; + } + +} + +function drawRadarLabel(angleList, radius, centerPosition, opts, config, context) { + var radarOption = opts.extra.radar || {}; + radius += config.radarLabelTextMargin; + + angleList.forEach(function(angle, index) { + var pos = { + x: radius * Math.cos(angle), + y: radius * Math.sin(angle) + }; + var posRelativeCanvas = convertCoordinateOrigin(pos.x, pos.y, centerPosition); + var startX = posRelativeCanvas.x; + var startY = posRelativeCanvas.y; + if (util.approximatelyEqual(pos.x, 0)) { + startX -= measureText(opts.categories[index] || '') / 2; + } else if (pos.x < 0) { + startX -= measureText(opts.categories[index] || ''); + } + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(radarOption.labelColor || '#666666'); + context.fillText(opts.categories[index] || '', startX, startY + config.fontSize / 2); + context.closePath(); + context.stroke(); + }); + +} + +function drawPieText(series, opts, config, context, radius, center) { + var lineRadius = config.pieChartLinePadding; + var textObjectCollection = []; + var lastTextObject = null; + + var seriesConvert = series.map(function(item) { + var text = item.format ? item.format(+item._proportion_.toFixed(2)) : util.toFixed(item._proportion_.toFixed(4) * 100) +'%'; + if(item._rose_proportion_) item._proportion_=item._rose_proportion_; + var arc = 2 * Math.PI - (item._start_ + 2 * Math.PI * item._proportion_ / 2); + var color = item.color; + var radius = item._radius_; + return { + arc: arc, + text: text, + color: color, + radius: radius, + textColor: item.textColor, + textSize: item.textSize, + }; + }); + for (let i = 0; i < seriesConvert.length; i++) { + let item = seriesConvert[i]; + // line end + let orginX1 = Math.cos(item.arc) * (item.radius + lineRadius); + let orginY1 = Math.sin(item.arc) * (item.radius + lineRadius); + + // line start + let orginX2 = Math.cos(item.arc) * item.radius; + let orginY2 = Math.sin(item.arc) * item.radius; + + // text start + let orginX3 = orginX1 >= 0 ? orginX1 + config.pieChartTextPadding : orginX1 - config.pieChartTextPadding; + let orginY3 = orginY1; + let textWidth = measureText(item.text); + let startY = orginY3; + + if (lastTextObject && util.isSameXCoordinateArea(lastTextObject.start, { + x: orginX3 + })) { + if (orginX3 > 0) { + startY = Math.min(orginY3, lastTextObject.start.y); + } else if (orginX1 < 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + if (orginY3 > 0) { + startY = Math.max(orginY3, lastTextObject.start.y); + } else { + startY = Math.min(orginY3, lastTextObject.start.y); + } + } + } + if (orginX3 < 0) { + orginX3 -= textWidth; + } + + let textObject = { + lineStart: { + x: orginX2, + y: orginY2 + }, + lineEnd: { + x: orginX1, + y: orginY1 + }, + start: { + x: orginX3, + y: startY + }, + width: textWidth, + height: config.fontSize, + text: item.text, + color: item.color, + textColor: item.textColor, + textSize: item.textSize + }; + lastTextObject = avoidCollision(textObject, lastTextObject); + textObjectCollection.push(lastTextObject); + } + + for (let i = 0; i < textObjectCollection.length; i++) { + let item = textObjectCollection[i]; + let lineStartPoistion = convertCoordinateOrigin(item.lineStart.x, item.lineStart.y, center); + let lineEndPoistion = convertCoordinateOrigin(item.lineEnd.x, item.lineEnd.y, center); + let textPosition = convertCoordinateOrigin(item.start.x, item.start.y, center); + context.setLineWidth(1 * opts.pixelRatio); + context.setFontSize(config.fontSize); + context.beginPath(); + context.setStrokeStyle(item.color); + context.setFillStyle(item.color); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + let curveStartX = item.start.x < 0 ? textPosition.x + item.width : textPosition.x; + let textStartX = item.start.x < 0 ? textPosition.x - 5 : textPosition.x + 5; + context.quadraticCurveTo(lineEndPoistion.x, lineEndPoistion.y, curveStartX, textPosition.y); + context.moveTo(lineStartPoistion.x, lineStartPoistion.y); + context.stroke(); + context.closePath(); + context.beginPath(); + context.moveTo(textPosition.x + item.width, textPosition.y); + context.arc(curveStartX, textPosition.y, 2, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFontSize(item.textSize || config.fontSize); + context.setFillStyle(item.textColor || '#666666'); + context.fillText(item.text, textStartX, textPosition.y + 3); + context.closePath(); + context.stroke(); + context.closePath(); + } +} + +function drawToolTipSplitLine(offsetX, opts, config, context) { + var toolTipOption = opts.extra.tooltip || {}; + toolTipOption.gridType = toolTipOption.gridType == undefined ? 'solid' : toolTipOption.gridType; + toolTipOption.dashLength = toolTipOption.dashLength == undefined ? 4 : toolTipOption.dashLength; + var startY = opts.area[0]; + var endY = opts.height - opts.area[2]; + + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(offsetX, startY); + context.lineTo(offsetX, endY); + context.stroke(); + context.setLineDash([]); + + if (toolTipOption.xAxisLabel) { + let labelText = opts.categories[opts.tooltip.index]; + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize); + + let textX = offsetX - 0.5 * textWidth; + let textY = endY; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity)); + context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground); + context.setLineWidth(1 * opts.pixelRatio); + context.rect(textX - config.toolTipPadding, textY, textWidth + 2 * config.toolTipPadding, config.fontSize + 2 * config.toolTipPadding); + context.closePath(); + context.stroke(); + context.fill(); + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.labelFontColor || config.fontColor); + context.fillText(String(labelText), textX, textY + config.toolTipPadding + config.fontSize); + context.closePath(); + context.stroke(); + } +} + +function drawMarkLine(minRange, maxRange, opts, config, context) { + let markLineOption = assign({}, { + type: 'solid', + dashLength: 4, + data: [] + }, opts.extra.markLine); + let startX = opts.area[3]; + let endX = opts.width - opts.padding[1]; + let points = calMarkLineData(minRange, maxRange, markLineOption.data, opts); + + for (let i = 0; i < points.length; i++) { + let item = assign({}, { + lineColor: '#DE4A42', + showLabel: false, + labelFontColor: '#666666', + labelBgColor: '#DFE8FF', + labelBgOpacity: 0.8, + yAxisIndex: 0 + }, points[i]); + + if (markLineOption.type == 'dash') { + context.setLineDash([markLineOption.dashLength, markLineOption.dashLength]); + } + context.setStrokeStyle(item.lineColor); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(startX, item.y); + context.lineTo(endX, item.y); + context.stroke(); + context.setLineDash([]); + if (item.showLabel) { + let labelText = opts.yAxis.format ? opts.yAxis.format(Number(item.value)) : item.value; + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize); + let bgStartX = opts.padding[3] + config.yAxisTitleWidth - config.toolTipPadding; + let bgEndX = Math.max(opts.area[3], textWidth + config.toolTipPadding * 2); + let bgWidth = bgEndX - bgStartX; + + let textX = bgStartX + (bgWidth - textWidth) / 2; + let textY = item.y; + context.setFillStyle(hexToRgb(item.labelBgColor, item.labelBgOpacity)); + context.setStrokeStyle(item.labelBgColor); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding); + context.closePath(); + context.stroke(); + context.fill(); + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(item.labelFontColor); + context.fillText(String(labelText), textX, textY + 0.5 * config.fontSize); + context.stroke(); + } + } +} + +function drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) { + var toolTipOption = assign({}, { + gridType: 'solid', + dashLength: 4 + }, opts.extra.tooltip); + + var startX = opts.area[3]; + var endX = opts.width - opts.padding[1]; + + if (toolTipOption.gridType == 'dash') { + context.setLineDash([toolTipOption.dashLength, toolTipOption.dashLength]); + } + context.setStrokeStyle(toolTipOption.gridColor || '#cccccc'); + context.setLineWidth(1 * opts.pixelRatio); + context.beginPath(); + context.moveTo(startX, opts.tooltip.offset.y); + context.lineTo(endX, opts.tooltip.offset.y); + context.stroke(); + context.setLineDash([]); + + if (toolTipOption.yAxisLabel) { + let labelText = calTooltipYAxisData(opts.tooltip.offset.y, opts.series, opts, config, eachSpacing); + context.setFontSize(config.fontSize); + let textWidth = measureText(labelText, config.fontSize); + let bgStartX = opts.padding[3] + config.yAxisTitleWidth - config.toolTipPadding; + let bgEndX = Math.max(opts.area[3], textWidth + config.toolTipPadding * 2); + let bgWidth = bgEndX - bgStartX; + + let textX = bgStartX + (bgWidth - textWidth) / 2; + let textY = opts.tooltip.offset.y; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.labelBgColor || config.toolTipBackground, toolTipOption.labelBgOpacity || config.toolTipOpacity)); + context.setStrokeStyle(toolTipOption.labelBgColor || config.toolTipBackground); + context.setLineWidth(1 * opts.pixelRatio); + context.rect(bgStartX, textY - 0.5 * config.fontSize - config.toolTipPadding, bgWidth, config.fontSize + 2 * config.toolTipPadding); + context.closePath(); + context.stroke(); + context.fill(); + + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.labelFontColor || config.fontColor); + context.fillText(labelText, textX, textY + 0.5 * config.fontSize); + context.closePath(); + context.stroke(); + } +} + +function drawToolTipSplitArea(offsetX, opts, config, context, eachSpacing) { + var toolTipOption = assign({}, { + activeBgColor: '#000000', + activeBgOpacity: 0.08 + }, opts.extra.tooltip); + var startY = opts.area[0]; + var endY = opts.height - opts.area[2]; + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.activeBgColor, toolTipOption.activeBgOpacity)); + context.rect(offsetX - eachSpacing / 2, startY, eachSpacing, endY - startY); + context.closePath(); + context.fill(); +} + +function drawToolTip(textList, offset, opts, config, context, eachSpacing, xAxisPoints) { + var toolTipOption = assign({}, { + bgColor: '#000000', + bgOpacity: 0.7, + fontColor: '#FFFFFF' + }, opts.extra.tooltip); + var legendWidth = 4 * opts.pixelRatio; + var legendMarginRight = 5 * opts.pixelRatio; + var arrowWidth = 8 * opts.pixelRatio; + var isOverRightBorder = false; + if (opts.type == 'line' || opts.type == 'area' || opts.type == 'candle' || opts.type == 'mix') { + drawToolTipSplitLine(opts.tooltip.offset.x, opts, config, context); + } + + offset = assign({ + x: 0, + y: 0 + }, offset); + offset.y -= 8 * opts.pixelRatio; + var textWidth = textList.map(function(item) { + return measureText(item.text, config.fontSize); + }); + var toolTipWidth = legendWidth + legendMarginRight + 4 * config.toolTipPadding + Math.max.apply(null, textWidth); + var toolTipHeight = 2 * config.toolTipPadding + textList.length * config.toolTipLineHeight; + + // if beyond the right border + if (offset.x - Math.abs(opts._scrollDistance_) + arrowWidth + toolTipWidth > opts.width) { + isOverRightBorder = true; + } + if (toolTipHeight + offset.y > opts.height) { + offset.y = opts.height - toolTipHeight; + } + // draw background rect + context.beginPath(); + context.setFillStyle(hexToRgb(toolTipOption.bgColor || config.toolTipBackground, toolTipOption.bgOpacity || config.toolTipOpacity)); + if (isOverRightBorder) { + context.moveTo(offset.x, offset.y + 10 * opts.pixelRatio); + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pixelRatio - 5 * opts.pixelRatio); + context.lineTo(offset.x - arrowWidth, offset.y); + context.lineTo(offset.x - arrowWidth - Math.round(toolTipWidth), offset.y); + context.lineTo(offset.x - arrowWidth - Math.round(toolTipWidth), offset.y + toolTipHeight); + context.lineTo(offset.x - arrowWidth, offset.y + toolTipHeight); + context.lineTo(offset.x - arrowWidth, offset.y + 10 * opts.pixelRatio + 5 * opts.pixelRatio); + context.lineTo(offset.x, offset.y + 10 * opts.pixelRatio); + } else { + context.moveTo(offset.x, offset.y + 10 * opts.pixelRatio); + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pixelRatio - 5 * opts.pixelRatio); + context.lineTo(offset.x + arrowWidth, offset.y); + context.lineTo(offset.x + arrowWidth + Math.round(toolTipWidth), offset.y); + context.lineTo(offset.x + arrowWidth + Math.round(toolTipWidth), offset.y + toolTipHeight); + context.lineTo(offset.x + arrowWidth, offset.y + toolTipHeight); + context.lineTo(offset.x + arrowWidth, offset.y + 10 * opts.pixelRatio + 5 * opts.pixelRatio); + context.lineTo(offset.x, offset.y + 10 * opts.pixelRatio); + } + + context.closePath(); + context.fill(); + + // draw legend + textList.forEach(function(item, index) { + if (item.color !== null) { + context.beginPath(); + context.setFillStyle(item.color); + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding; + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + + config.toolTipPadding + 1; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding; + } + context.fillRect(startX, startY, legendWidth, config.fontSize); + context.closePath(); + } + }); + + // draw text list + + textList.forEach(function(item, index) { + var startX = offset.x + arrowWidth + 2 * config.toolTipPadding + legendWidth + legendMarginRight; + if (isOverRightBorder) { + startX = offset.x - toolTipWidth - arrowWidth + 2 * config.toolTipPadding + +legendWidth + legendMarginRight; + } + var startY = offset.y + (config.toolTipLineHeight - config.fontSize) / 2 + config.toolTipLineHeight * index + + config.toolTipPadding; + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(toolTipOption.fontColor); + context.fillText(item.text, startX, startY + config.fontSize); + context.closePath(); + context.stroke(); + }); +} + +function drawYAxisTitle(title, opts, config, context) { + var startX = config.xAxisHeight + (opts.height - config.xAxisHeight - measureText(title)) / 2; + context.save(); + context.beginPath(); + context.setFontSize(config.fontSize); + context.setFillStyle(opts.yAxis.titleFontColor || '#333333'); + context.translate(0, opts.height); + context.rotate(-90 * Math.PI / 180); + context.fillText(title, startX, opts.padding[3] + 0.5 * config.fontSize); + context.closePath(); + context.stroke(); + context.restore(); +} + +function drawColumnDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + let columnOption = assign({}, { + type: 'group', + width: eachSpacing / 2, + meter: { + border: 4, + fillColor: '#FFFFFF' + } + }, opts.extra.column); + let minRange = ranges.pop(); + let maxRange = ranges.shift(); + let calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTipSplitArea(opts.tooltip.offset.x, opts, config, context, eachSpacing); + } + + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + var tooltipPoints = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, seriesIndex, series, process); + calPoints.push(tooltipPoints); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + context.setStrokeStyle(item.color || eachSeries.color); + context.setLineWidth(1) + context.setFillStyle(item.color || eachSeries.color); + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.moveTo(startX-1, item.y); + context.lineTo(startX+item.width-2,item.y); + context.lineTo(startX+item.width-2,opts.height - opts.area[2]); + context.lineTo(startX,opts.height - opts.area[2]); + context.lineTo(startX,item.y); + //context.rect(startX, item.y, item.width, height); + context.closePath(); + context.stroke(); + context.fill(); + } + }); + break; + case 'stack': + // 绘制堆叠数据图 + var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, + seriesIndex, + series, process); + calPoints.push(points); + points = fixColumeStackData(points, eachSpacing, series.length, seriesIndex, config, opts, series); + + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + context.setFillStyle(item.color || eachSeries.color); + var startX = item.x - item.width / 2 + 1; + var height = opts.height - item.y - opts.area[2]; + var height0 = opts.height - item.y0 - opts.area[2]; + if (seriesIndex > 0) { + height -= height0; + } + context.moveTo(startX, item.y); + context.fillRect(startX, item.y, item.width - 2, height); + context.closePath(); + context.fill(); + } + }); + break; + case 'meter': + // 绘制温度计数据图 + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + points = fixColumeMeterData(points, eachSpacing, series.length, seriesIndex, config, opts, columnOption.meter + .border); + if (seriesIndex == 0) { + points.forEach(function(item, index) { + if (item !== null) { + //画背景颜色 + context.beginPath(); + context.setFillStyle(columnOption.meter.fillColor); + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.moveTo(startX, item.y); + context.fillRect(startX, item.y, item.width, height); + context.closePath(); + context.fill(); + //画边框线 + if (columnOption.meter.border > 0) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(columnOption.meter.border * opts.pixelRatio); + context.moveTo(startX + columnOption.meter.border * 0.5, item.y + height); + context.lineTo(startX + columnOption.meter.border * 0.5, item.y + columnOption.meter.border * 0.5); + context.lineTo(startX + item.width - columnOption.meter.border * 0.5, item.y + columnOption.meter.border * 0.5); + context.lineTo(startX + item.width - columnOption.meter.border * 0.5, item.y + height); + context.stroke(); + } + } + }); + } else { + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + context.setFillStyle(item.color || eachSeries.color); + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.moveTo(startX, item.y); + context.fillRect(startX, item.y, item.width, height); + context.closePath(); + context.fill(); + } + }); + } + break; + } + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + switch (columnOption.type) { + case 'group': + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + points = fixColumeData(points, eachSpacing, series.length, seriesIndex, config, opts); + + drawPointText(points, eachSeries, config, context); + break; + case 'stack': + var points = getStackDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, + seriesIndex, + series, process); + drawPointText(points, eachSeries, config, context); + break; + case 'meter': + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + break; + } + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + minRange: minRange, + maxRange: maxRange + }; +} + +function drawCandleDataPoints(series, seriesMA, opts, config, context) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var candleOption = assign({}, { + color: {}, + average: {} + }, opts.extra.candle); + candleOption.color = assign({}, { + upLine: '#f04864', + upFill: '#f04864', + downLine: '#2fc25b', + downFill: '#2fc25b' + }, candleOption.color); + candleOption.average = assign({}, { + show: false, + name: [], + day: [], + color: config.colors + }, candleOption.average); + opts.extra.candle = candleOption; + + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let minRange = ranges.pop(); + let maxRange = ranges.shift(); + let calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + //画均线 + if (candleOption.average.show) { + seriesMA.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + //calPoints.push(points); + var splitPointList = splitPoints(points); + + splitPointList.forEach(function(points, index) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(1); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + points.forEach(function(item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, + item.x, item + .y); + } + }); + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + }); + }); + } + //画K线 + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getCandleDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points); + splitPointList = splitPointList[0]; + + splitPointList.forEach(function(points, index) { + context.beginPath(); + //如果上涨 + if (data[index][1] - data[index][0] > 0) { + context.setStrokeStyle(candleOption.color.upLine); + context.setFillStyle(candleOption.color.upFill); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(points[3].x, points[3].y); //顶点 + context.lineTo(points[1].x, points[1].y); //收盘中间点 + context.lineTo(points[1].x - eachSpacing / 4, points[1].y); //收盘左侧点 + context.lineTo(points[0].x - eachSpacing / 4, points[0].y); //开盘左侧点 + context.lineTo(points[0].x, points[0].y); //开盘中间点 + context.lineTo(points[2].x, points[2].y); //底点 + context.lineTo(points[0].x, points[0].y); //开盘中间点 + context.lineTo(points[0].x + eachSpacing / 4, points[0].y); //开盘右侧点 + context.lineTo(points[1].x + eachSpacing / 4, points[1].y); //收盘右侧点 + context.lineTo(points[1].x, points[1].y); //收盘中间点 + context.moveTo(points[3].x, points[3].y); //顶点 + } else { + context.setStrokeStyle(candleOption.color.downLine); + context.setFillStyle(candleOption.color.downFill); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(points[3].x, points[3].y); //顶点 + context.lineTo(points[0].x, points[0].y); //开盘中间点 + context.lineTo(points[0].x - eachSpacing / 4, points[0].y); //开盘左侧点 + context.lineTo(points[1].x - eachSpacing / 4, points[1].y); //收盘左侧点 + context.lineTo(points[1].x, points[1].y); //收盘中间点 + context.lineTo(points[2].x, points[2].y); //底点 + context.lineTo(points[1].x, points[1].y); //收盘中间点 + context.lineTo(points[1].x + eachSpacing / 4, points[1].y); //收盘右侧点 + context.lineTo(points[0].x + eachSpacing / 4, points[0].y); //开盘右侧点 + context.lineTo(points[0].x, points[0].y); //开盘中间点 + context.moveTo(points[3].x, points[3].y); //顶点 + } + context.closePath(); + context.fill(); + context.stroke(); + }); + }); + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + minRange: minRange, + maxRange: maxRange + }; +} + +function drawAreaDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var areaOption = assign({},{ + type: 'straight', + opacity: 0.2, + addLine: false, + width: 2 + },opts.extra.area); + + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let minRange = ranges.pop(); + let maxRange = ranges.shift(); + let endY = opts.height - opts.area[2]; + let calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + series.forEach(function(eachSeries, seriesIndex) { + let data = eachSeries.data; + let points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + + let splitPointList = splitPoints(points); + + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + // 绘制区域数 + context.beginPath(); + context.setStrokeStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + context.setFillStyle(hexToRgb(eachSeries.color, areaOption.opacity)); + context.setLineWidth(areaOption.width * opts.pixelRatio); + if (points.length > 1) { + let firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + + context.moveTo(firstPoint.x, firstPoint.y); + if (areaOption.type === 'curve') { + points.forEach(function(item, index) { + if (index > 0) { + let ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x, item.y); + } + }); + } else { + points.forEach(function(item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, endY); + context.lineTo(item.x - eachSpacing / 2, endY); + context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + + //画连线 + if (areaOption.addLine) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(areaOption.width * opts.pixelRatio); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + if (areaOption.type === 'curve') { + points.forEach(function(item, index) { + if (index > 0) { + let ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y,item.x,item.y); + } + }); + } else { + points.forEach(function(item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + } + } + + //画点 + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + drawPointShape(points, eachSeries.color, shape, context, opts); + } + + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + minRange: minRange, + maxRange: maxRange + }; +} + +function drawLineDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var lineOption = opts.extra.line || { + type: 'straight', + width: 2 + }; + lineOption.type = lineOption.type ? lineOption.type : 'straight'; + lineOption.width = lineOption.width ? lineOption.width : 2; + + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + var minRange = ranges.pop(); + var maxRange = ranges.shift(); + var calPoints = []; + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + var splitPointList = splitPoints(points); + + splitPointList.forEach(function(points, index) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(lineOption.width * opts.pixelRatio); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + if (lineOption.type === 'curve') { + points.forEach(function(item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, + item.x, item + .y); + } + }); + } else { + points.forEach(function(item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + }); + + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + drawPointShape(points, eachSeries.color, shape, context, opts); + } + }); + + if (opts.dataLabel !== false && process === 1) { + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + drawPointText(points, eachSeries, config, context); + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + minRange: minRange, + maxRange: maxRange + }; +} + +function drawMixDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let ranges = [].concat(opts.chartData.yAxisData.ranges); + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + eachSpacing = xAxisData.eachSpacing; + + let minRange = ranges.pop(); + let maxRange = ranges.shift(); + let endY = opts.height - opts.area[2]; + let calPoints = []; + + var columnIndex = 0; + var columnLength = 0; + series.forEach(function(eachSeries, seriesIndex) { + if (eachSeries.type == 'column') { + columnLength += 1; + } + }); + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + calPoints.push(points); + + // 绘制柱状数据图 + if (eachSeries.type == 'column') { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + points.forEach(function(item, index) { + if (item !== null) { + context.beginPath(); + context.setStrokeStyle(item.color || eachSeries.color); + context.setLineWidth(1) + context.setFillStyle(item.color || eachSeries.color); + var startX = item.x - item.width / 2; + var height = opts.height - item.y - opts.area[2]; + context.moveTo(startX, item.y); + context.moveTo(startX-1, item.y); + context.lineTo(startX+item.width-2,item.y); + context.lineTo(startX+item.width-2,opts.height - opts.area[2]); + context.lineTo(startX,opts.height - opts.area[2]); + context.lineTo(startX,item.y); + //context.rect(startX, item.y, item.width, height); + context.closePath(); + context.stroke(); + context.fill(); + context.closePath(); + context.fill(); + } + }); + columnIndex += 1; + } + + //绘制区域图数据 + + if (eachSeries.type == 'area') { + let splitPointList = splitPoints(points); + for (let i = 0; i < splitPointList.length; i++) { + let points = splitPointList[i]; + // 绘制区域数据 + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setFillStyle(hexToRgb(eachSeries.color, 0.2)); + context.setLineWidth(2 * opts.pixelRatio); + if (points.length > 1) { + var firstPoint = points[0]; + let lastPoint = points[points.length - 1]; + context.moveTo(firstPoint.x, firstPoint.y); + if (eachSeries.style === 'curve') { + points.forEach(function(item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, item.x, item.y); + } + }); + } else { + points.forEach(function(item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + context.lineTo(lastPoint.x, endY); + context.lineTo(firstPoint.x, endY); + context.lineTo(firstPoint.x, firstPoint.y); + } else { + let item = points[0]; + context.moveTo(item.x - eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, item.y); + context.lineTo(item.x + eachSpacing / 2, endY); + context.lineTo(item.x - eachSpacing / 2, endY); + context.moveTo(item.x - eachSpacing / 2, item.y); + } + context.closePath(); + context.fill(); + } + } + + // 绘制折线数据图 + if (eachSeries.type == 'line') { + var splitPointList = splitPoints(points); + splitPointList.forEach(function(points, index) { + context.beginPath(); + context.setStrokeStyle(eachSeries.color); + context.setLineWidth(2 * opts.pixelRatio); + if (points.length === 1) { + context.moveTo(points[0].x, points[0].y); + context.arc(points[0].x, points[0].y, 1, 0, 2 * Math.PI); + } else { + context.moveTo(points[0].x, points[0].y); + if (eachSeries.style == 'curve') { + points.forEach(function(item, index) { + if (index > 0) { + var ctrlPoint = createCurveControlPoints(points, index - 1); + context.bezierCurveTo(ctrlPoint.ctrA.x, ctrlPoint.ctrA.y, ctrlPoint.ctrB.x, ctrlPoint.ctrB.y, + item.x, + item.y); + } + }); + } else { + points.forEach(function(item, index) { + if (index > 0) { + context.lineTo(item.x, item.y); + } + }); + } + context.moveTo(points[0].x, points[0].y); + } + context.closePath(); + context.stroke(); + }); + } + + // 绘制点数据图 + if (eachSeries.type == 'point') { + points.forEach(function(pointsa, index) { + if (pointsa) { + context.beginPath(); + context.setFillStyle(eachSeries.color); + context.setStrokeStyle('#FFFFFF'); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(pointsa.x + 3.5 * opts.pixelRatio, pointsa.y); + context.arc(pointsa.x, pointsa.y, 4 * opts.pixelRatio, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + context.stroke(); + } + }); + } + + if (eachSeries.addPoint == true && eachSeries.type !== 'column') { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + drawPointShape(points, eachSeries.color, shape, context, opts); + } + }); + if (opts.dataLabel !== false && process === 1) { + var columnIndex = 0; + series.forEach(function(eachSeries, seriesIndex) { + var data = eachSeries.data; + var points = getDataPoints(data, minRange, maxRange, xAxisPoints, eachSpacing, opts, config, process); + if (eachSeries.type !== 'column') { + drawPointText(points, eachSeries, config, context); + } else { + points = fixColumeData(points, eachSpacing, columnLength, columnIndex, config, opts); + drawPointText(points, eachSeries, config, context); + columnIndex += 1; + } + + }); + } + + context.restore(); + + return { + xAxisPoints: xAxisPoints, + calPoints: calPoints, + eachSpacing: eachSpacing, + minRange: minRange, + maxRange: maxRange + }; +} + +function drawToolTipBridge(opts, config, context, process, eachSpacing, xAxisPoints) { + var toolTipOption = opts.extra.tooltip || {}; + if (toolTipOption.horizentalLine && opts.tooltip && process === 1 && (opts.type == 'line' || opts.type == 'area' || opts.type == 'column' || opts.type == 'candle' || opts.type == 'mix')) { + drawToolTipHorizentalLine(opts, config, context, eachSpacing, xAxisPoints) + } + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0 && opts.enableScroll === true) { + context.translate(opts._scrollDistance_, 0); + } + if (opts.tooltip && opts.tooltip.textList && opts.tooltip.textList.length && process === 1) { + drawToolTip(opts.tooltip.textList, opts.tooltip.offset, opts, config, context, eachSpacing, xAxisPoints); + } + context.restore(); + +} + +function drawXAxis(categories, opts, config, context) { + + let xAxisData = opts.chartData.xAxisData, + xAxisPoints = xAxisData.xAxisPoints, + startX = xAxisData.startX, + endX = xAxisData.endX, + eachSpacing = xAxisData.eachSpacing; + var boundaryGap='center'; + if (opts.type == 'line'||opts.type == 'area'){ + boundaryGap=opts.xAxis.boundaryGap; + } + var startY = opts.height - opts.area[2]; + var endY = opts.area[0]; + + //绘制滚动条 + if (opts.enableScroll && opts.xAxis.scrollShow) { + var scrollY = opts.height - opts.area[2] + config.xAxisHeight; + var scrollScreenWidth = endX - startX; + var scrollTotalWidth = eachSpacing * (xAxisPoints.length - 1); + var scrollWidth = scrollScreenWidth * scrollScreenWidth / scrollTotalWidth; + var scrollLeft = 0; + if (opts._scrollDistance_) { + scrollLeft = -opts._scrollDistance_ * (scrollScreenWidth) / scrollTotalWidth; + } + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pixelRatio); + context.setStrokeStyle(opts.xAxis.scrollBackgroundColor || "#EFEBEF"); + context.moveTo(startX, scrollY); + context.lineTo(endX, scrollY); + context.stroke(); + context.closePath(); + context.beginPath(); + context.setLineCap('round'); + context.setLineWidth(6 * opts.pixelRatio); + context.setStrokeStyle(opts.xAxis.scrollColor || "#A6A6A6"); + context.moveTo(startX + scrollLeft, scrollY); + context.lineTo(startX + scrollLeft + scrollWidth, scrollY); + context.stroke(); + context.closePath(); + context.setLineCap('butt'); + } + + context.save(); + + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + + + if (opts.xAxis.disableGrid !== true) { + context.setStrokeStyle(opts.xAxis.gridColor || "#cccccc"); + context.setLineCap('butt'); + context.setLineWidth(1 * opts.pixelRatio); + if (opts.xAxis.gridType == 'dash') { + context.setLineDash([opts.xAxis.dashLength, opts.xAxis.dashLength]); + } + if (opts.xAxis.type === 'calibration') { + xAxisPoints.forEach(function(item, index) { + if (index > 0) { + context.beginPath(); + context.moveTo(item - eachSpacing / 2, startY); + context.lineTo(item - eachSpacing / 2, startY + 4 * opts.pixelRatio); + context.closePath(); + context.stroke(); + } + }); + } else { + opts.xAxis.gridEval = opts.xAxis.gridEval || 1; + xAxisPoints.forEach(function(item, index) { + if (index % opts.xAxis.gridEval == 0) { + context.beginPath(); + context.moveTo(item, startY); + context.lineTo(item, endY); + context.stroke(); + } + }); + } + context.setLineDash([]); + } + + + //不绘制X轴 + if (opts.xAxis.disabled !== true) { + // 对X轴列表做抽稀处理 + let validWidth = opts.width - opts.padding[1] - opts.padding[3] - config.yAxisWidth - config.yAxisTitleWidth; + //默认全部显示X轴标签 + let maxXAxisListLength = categories.length; + //如果设置了X轴单屏数量 + if (opts.xAxis.labelCount) { + //如果设置X轴密度 + if (opts.xAxis.itemCount) { + maxXAxisListLength = Math.ceil(categories.length / opts.xAxis.itemCount * opts.xAxis.labelCount); + } else { + maxXAxisListLength = opts.xAxis.labelCount; + } + maxXAxisListLength -= 1; + } + + let ratio = Math.ceil(categories.length / maxXAxisListLength); + + let newCategories = []; + let cgLength = categories.length; + for (let i = 0; i < cgLength; i++) { + if (i % ratio !== 0) { + newCategories.push(""); + } else { + newCategories.push(categories[i]); + } + } + newCategories[cgLength - 1] = categories[cgLength - 1]; + + var xAxisFontSize = opts.xAxis.fontSize || config.fontSize; + if (config._xAxisTextAngle_ === 0) { + newCategories.forEach(function(item, index) { + var offset = - measureText(item, xAxisFontSize) / 2; + if(boundaryGap == 'center'){ + offset+=eachSpacing / 2; + } + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + context.fillText(item, xAxisPoints[index] + offset, startY + xAxisFontSize + (config.xAxisHeight - xAxisFontSize) / 2); + context.closePath(); + context.stroke(); + }); + + } else { + newCategories.forEach(function(item, index) { + context.save(); + context.beginPath(); + context.setFontSize(xAxisFontSize); + context.setFillStyle(opts.xAxis.fontColor || '#666666'); + var textWidth = measureText(item); + var offset = - textWidth; + if(boundaryGap == 'center'){ + offset+=eachSpacing / 2; + } + var _calRotateTranslate = calRotateTranslate(xAxisPoints[index] + eachSpacing / 2, startY + xAxisFontSize / 2 + 5, opts.height), + transX = _calRotateTranslate.transX, + transY = _calRotateTranslate.transY; + + context.rotate(-1 * config._xAxisTextAngle_); + context.translate(transX, transY); + context.fillText(item, xAxisPoints[index] + offset, startY + xAxisFontSize + 5); + context.closePath(); + context.stroke(); + context.restore(); + }); + } + } + context.restore(); + +} + +function drawYAxisGrid(categories, opts, config, context) { + if (opts.yAxis.disableGrid === true) { + return; + } + let spacingValid = opts.height - opts.area[0] - opts.area[2]; + let eachSpacing = spacingValid / config.yAxisSplit; + let startX = opts.area[3]; + let xAxisPoints = opts.chartData.xAxisData.xAxisPoints, + xAxiseachSpacing = opts.chartData.xAxisData.eachSpacing; + let TotalWidth = xAxiseachSpacing * (xAxisPoints.length - 1); + let endX = startX + TotalWidth; + + let points = []; + for (let i = 0; i < config.yAxisSplit + 1; i++) { + points.push(opts.height - opts.area[2] - eachSpacing * i); + } + + context.save(); + if (opts._scrollDistance_ && opts._scrollDistance_ !== 0) { + context.translate(opts._scrollDistance_, 0); + } + + if (opts.yAxis.gridType == 'dash') { + context.setLineDash([opts.yAxis.dashLength, opts.yAxis.dashLength]); + } + context.setStrokeStyle(opts.yAxis.gridColor || "#cccccc"); + context.setLineWidth(1 * opts.pixelRatio); + points.forEach(function(item, index) { + context.beginPath(); + context.moveTo(startX, item); + context.lineTo(endX, item); + context.stroke(); + }); + context.setLineDash([]); + + context.restore(); +} + +function drawYAxis(series, opts, config, context) { + if (opts.yAxis.disabled === true) { + return; + } + let rangesFormat = opts.chartData.yAxisData.rangesFormat; + var spacingValid = opts.height - opts.area[0] - opts.area[2]; + var eachSpacing = Math.floor(spacingValid / config.yAxisSplit); + var startX = opts.area[3]; + var endX = opts.width - opts.area[1]; + var endY = opts.height - opts.area[2]; + var fillEndY = endY + config.xAxisHeight; + if (opts.xAxis.scrollShow) { + fillEndY -= 3 * opts.pixelRatio; + } + // set YAxis background + context.beginPath(); + context.setFillStyle(opts.background || '#ffffff'); + if (opts._scrollDistance_ < 0) { + context.fillRect(0, 0, startX, fillEndY); + } + if(opts.enableScroll == true){ + context.fillRect(endX, 0, opts.width, fillEndY); + } + context.closePath(); + context.stroke(); + + var points = []; + for (var i = 0; i <= config.yAxisSplit; i++) { + points.push(opts.area[0] + eachSpacing * i); + } + + var yAxisFontSize = opts.yAxis.fontSize || config.fontSize; + rangesFormat.forEach(function(item, index) { + var pos = points[index] ? points[index] : endY; + context.beginPath(); + context.setFontSize(yAxisFontSize); + context.setFillStyle(opts.yAxis.fontColor || '#666666'); + context.fillText(String(item), opts.area[3] - config.yAxisWidth, pos + yAxisFontSize / 2); + context.closePath(); + context.stroke(); + }); + + if (opts.yAxis.title) { + drawYAxisTitle(opts.yAxis.title, opts, config, context); + } +} + +function drawLegend(series, opts, config, context, chartData) { + if (opts.legend.show === false) { + return; + } + let legendData = chartData.legendData; + let legendList = legendData.points; + let legendArea = legendData.area; + let padding = opts.legend.padding; + let fontSize = opts.legend.fontSize; + let shapeWidth = 15 * opts.pixelRatio; + let shapeRight = 5 * opts.pixelRatio; + let itemGap = opts.legend.itemGap; + let lineHeight = Math.max(opts.legend.lineHeight * opts.pixelRatio, fontSize); + + //画背景及边框 + context.beginPath(); + context.setLineWidth(opts.legend.borderWidth); + context.setStrokeStyle(opts.legend.borderColor); + context.setFillStyle(opts.legend.backgroundColor); + context.moveTo(legendArea.start.x, legendArea.start.y); + context.rect(legendArea.start.x, legendArea.start.y, legendArea.width, legendArea.height); + context.closePath(); + context.fill(); + context.stroke(); + + legendList.forEach(function(itemList, listIndex) { + let width = 0; + let height = 0; + width = legendData.widthArr[listIndex]; + height = legendData.heightArr[listIndex]; + let startX = 0; + let startY = 0; + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + startX = legendArea.start.x + (legendArea.width - width) / 2; + startY = legendArea.start.y + padding + listIndex * lineHeight; + } else { + if (listIndex == 0) { + width = 0; + } else { + width = legendData.widthArr[listIndex - 1]; + } + startX = legendArea.start.x + padding + width; + startY = legendArea.start.y + padding + (legendArea.height - height) / 2; + } + + context.setFontSize(config.fontSize); + for (let i = 0; i < itemList.length; i++) { + let item = itemList[i]; + item.area = [0, 0, 0, 0]; + item.area[0] = startX; + item.area[1] = startY; + item.area[3] = startY + lineHeight; + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(item.show ? item.color : opts.legend.hiddenColor); + context.setFillStyle(item.show ? item.color : opts.legend.hiddenColor); + switch (item.legendShape) { + case 'line': + context.moveTo(startX, startY + 0.5 * lineHeight - 2 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 2 * opts.pixelRatio, 15 * opts.pixelRatio, 4 * opts.pixelRatio); + break; + case 'triangle': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.lineTo(startX + 2.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 12.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + break; + case 'diamond': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.lineTo(startX + 2.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight + 5 * opts.pixelRatio); + context.lineTo(startX + 12.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.lineTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + break; + case 'circle': + context.moveTo(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight); + context.arc(startX + 7.5 * opts.pixelRatio, startY + 0.5 * lineHeight, 5 * opts.pixelRatio, 0, 2 * Math.PI); + break; + case 'rect': + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio, 15 * opts.pixelRatio, 10 * opts.pixelRatio); + break; + default: + context.moveTo(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio); + context.fillRect(startX, startY + 0.5 * lineHeight - 5 * opts.pixelRatio, 15 * opts.pixelRatio, 10 * opts.pixelRatio); + } + context.closePath(); + context.fill(); + context.stroke(); + + startX += shapeWidth + shapeRight; + let fontTrans = 0.5 * lineHeight + 0.5 * fontSize - 2; + context.beginPath(); + context.setFontSize(fontSize); + context.setFillStyle(item.show ? opts.legend.fontColor : opts.legend.hiddenColor); + context.fillText(item.name, startX, startY + fontTrans); + context.closePath(); + context.stroke(); + if (opts.legend.position == 'top' || opts.legend.position == 'bottom') { + startX += measureText(item.name, fontSize) + itemGap; + item.area[2] = startX; + } else { + item.area[2] = startX + measureText(item.name, fontSize) + itemGap;; + startX -= shapeWidth + shapeRight; + startY += lineHeight; + } + } + }); +} + +function drawPieDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var pieOption = assign({}, { + activeOpacity: 0.5, + activeRadius: 10 * opts.pixelRatio, + offsetAngle: 0, + labelWidth: 15 * opts.pixelRatio, + ringWidth: 0, + border:false, + borderWidth:2, + borderColor:'#FFFFFF' + }, opts.extra.pie); + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = pieOption.activeRadius; + } + + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + + series = getPieDataPoints(series, radius, process); + + var activeRadius = pieOption.activeRadius; + + series = series.map(function(eachSeries) { + eachSeries._start_ += (pieOption.offsetAngle) * Math.PI / 180; + return eachSeries; + }); + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, opts.extra.pie.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_ + activeRadius, eachSeries._start_, + eachSeries._start_ + 2 * + eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(pieOption.borderWidth * opts.pixelRatio); + context.lineJoin = "round"; + context.setStrokeStyle(pieOption.borderColor); + context.setFillStyle(eachSeries.color); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * eachSeries._proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (pieOption.border == true) { + context.stroke(); + } + }); + + if (opts.type === 'ring') { + var innerPieWidth = radius * 0.6; + if (typeof opts.extra.pie.ringWidth === 'number' && opts.extra.pie.ringWidth > 0) { + innerPieWidth = Math.max(0, radius - opts.extra.pie.ringWidth); + } + context.beginPath(); + context.setFillStyle(opts.background || '#ffffff'); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, innerPieWidth, 0, 2 * Math.PI); + context.closePath(); + context.fill(); + } + + if (opts.dataLabel !== false && process === 1) { + var valid = false; + for (var i = 0, len = series.length; i < len; i++) { + if (series[i].data > 0) { + valid = true; + break; + } + } + + if (valid) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + } + + if (process === 1 && opts.type === 'ring') { + drawRingTitle(opts, config, context, centerPosition); + } + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawRoseDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var roseOption = assign({}, { + type: 'area', + activeOpacity: 0.5, + activeRadius: 10 * opts.pixelRatio, + offsetAngle: 0, + labelWidth: 15 * opts.pixelRatio, + border:false, + borderWidth:2, + borderColor:'#FFFFFF' + }, opts.extra.rose); + if (config.pieChartLinePadding == 0) { + config.pieChartLinePadding = roseOption.activeRadius; + } + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + var radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding - config._pieTextMaxLength_, (opts.height - opts.area[0] - opts.area[2]) / 2 - config.pieChartLinePadding - config.pieChartTextPadding); + var minRadius = roseOption.minRadius || radius * 0.5; + + series = getRoseDataPoints(series, roseOption.type, minRadius, radius, process); + + var activeRadius = roseOption.activeRadius; + + series = series.map(function(eachSeries) { + eachSeries._start_ += (roseOption.offsetAngle || 0) * Math.PI / 180; + return eachSeries; + }); + + series.forEach(function(eachSeries, seriesIndex) { + if (opts.tooltip) { + if (opts.tooltip.index == seriesIndex) { + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, roseOption.activeOpacity || 0.5)); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, activeRadius + eachSeries._radius_, eachSeries._start_, + eachSeries._start_ + 2 * eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + } + } + context.beginPath(); + context.setLineWidth(roseOption.borderWidth * opts.pixelRatio); + context.lineJoin = "round"; + context.setStrokeStyle(roseOption.borderColor); + context.setFillStyle(eachSeries.color); + context.moveTo(centerPosition.x, centerPosition.y); + context.arc(centerPosition.x, centerPosition.y, eachSeries._radius_, eachSeries._start_, eachSeries._start_ + 2 * + eachSeries._rose_proportion_ * Math.PI); + context.closePath(); + context.fill(); + if (roseOption.border == true) { + context.stroke(); + } + }); + + if (opts.dataLabel !== false && process === 1) { + var valid = false; + for (var i = 0, len = series.length; i < len; i++) { + if (series[i].data > 0) { + valid = true; + break; + } + } + + if (valid) { + drawPieText(series, opts, config, context, radius, centerPosition); + } + } + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawArcbarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var arcbarOption = assign({}, { + startAngle: 0.75, + endAngle: 0.25, + type: 'default', + width: 12 * opts.pixelRatio + }, opts.extra.arcbar); + + series = getArcbarDataPoints(series, arcbarOption, process); + var centerPosition = { + x: opts.width / 2, + y: opts.height / 2 + }; + var radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pixelRatio; + radius -= arcbarOption.width / 2; + + //背景颜色 + context.setLineWidth(arcbarOption.width); + context.setStrokeStyle(arcbarOption.backgroundColor || '#E9E9E9'); + context.setLineCap('round'); + context.beginPath(); + if (arcbarOption.type == 'default') { + context.arc(centerPosition.x, centerPosition.y, radius, arcbarOption.startAngle * Math.PI, arcbarOption.endAngle * + Math.PI, false); + } else { + context.arc(centerPosition.x, centerPosition.y, radius, 0, 2 * Math.PI, false); + } + context.stroke(); + + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + context.setLineWidth(arcbarOption.width); + context.setStrokeStyle(eachSeries.color); + context.setLineCap('round'); + context.beginPath(); + context.arc(centerPosition.x, centerPosition.y, radius, arcbarOption.startAngle * Math.PI, eachSeries._proportion_ * + Math.PI, false); + context.stroke(); + } + + drawRingTitle(opts, config, context, centerPosition); + + return { + center: centerPosition, + radius: radius, + series: series + }; +} + +function drawGaugeDataPoints(categories, series, opts, config, context) { + var process = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 1; + var gaugeOption = assign({}, { + startAngle: 0.75, + endAngle: 0.25, + width: 15, + splitLine: { + fixRadius: 0, + splitNumber: 10, + width: 15, + color: '#FFFFFF', + childNumber: 5, + childWidth: 5 + }, + pointer: { + width: 15, + color: 'auto' + } + }, opts.extra.gauge); + + if (gaugeOption.oldAngle == undefined) { + gaugeOption.oldAngle = gaugeOption.startAngle; + } + if (gaugeOption.oldData == undefined) { + gaugeOption.oldData = 0; + } + categories = getGaugeAxisPoints(categories, gaugeOption.startAngle, gaugeOption.endAngle); + + var centerPosition = { + x: opts.width / 2, + y: opts.height / 2 + }; + var radius = Math.min(centerPosition.x, centerPosition.y); + radius -= 5 * opts.pixelRatio; + radius -= gaugeOption.width / 2; + var innerRadius = radius - gaugeOption.width; + + //画背景 + context.setLineWidth(gaugeOption.width); + context.setLineCap('butt'); + for (let i = 0; i < categories.length; i++) { + let eachCategories = categories[i]; + context.beginPath(); + context.setStrokeStyle(eachCategories.color); + context.arc(centerPosition.x, centerPosition.y, radius, eachCategories._startAngle_ * Math.PI, eachCategories._endAngle_ * + Math.PI, false); + context.stroke(); + } + context.save(); + + //画刻度线 + let totalAngle = gaugeOption.startAngle - gaugeOption.endAngle + 1; + let splitAngle = totalAngle / gaugeOption.splitLine.splitNumber; + let childAngle = totalAngle / gaugeOption.splitLine.splitNumber / gaugeOption.splitLine.childNumber; + let startX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius; + let endX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.width; + let childendX = -radius - gaugeOption.width * 0.5 - gaugeOption.splitLine.fixRadius + gaugeOption.splitLine.childWidth; + + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + + for (let i = 0; i < gaugeOption.splitLine.splitNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(2 * opts.pixelRatio); + context.moveTo(startX, 0); + context.lineTo(endX, 0); + context.stroke(); + context.rotate(splitAngle * Math.PI); + } + context.restore(); + + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((gaugeOption.startAngle - 1) * Math.PI); + + for (let i = 0; i < gaugeOption.splitLine.splitNumber * gaugeOption.splitLine.childNumber + 1; i++) { + context.beginPath(); + context.setStrokeStyle(gaugeOption.splitLine.color); + context.setLineWidth(1 * opts.pixelRatio); + context.moveTo(startX, 0); + context.lineTo(childendX, 0); + context.stroke(); + context.rotate(childAngle * Math.PI); + } + context.restore(); + + //画指针 + series = getGaugeDataPoints(series, categories, gaugeOption, process); + + for (let i = 0; i < series.length; i++) { + let eachSeries = series[i]; + context.save(); + context.translate(centerPosition.x, centerPosition.y); + context.rotate((eachSeries._proportion_ - 1) * Math.PI); + context.beginPath(); + context.setFillStyle(eachSeries.color); + context.moveTo(gaugeOption.pointer.width, 0); + context.lineTo(0, -gaugeOption.pointer.width / 2); + context.lineTo(-innerRadius, 0); + context.lineTo(0, gaugeOption.pointer.width / 2); + context.lineTo(gaugeOption.pointer.width, 0); + context.closePath(); + context.fill(); + context.beginPath(); + context.setFillStyle('#FFFFFF'); + context.arc(0, 0, gaugeOption.pointer.width / 6, 0, 2 * Math.PI, false); + context.fill(); + context.restore(); + } + + if (opts.dataLabel !== false) { + drawGaugeLabel(gaugeOption, radius, centerPosition, opts, config, context); + } + + drawRingTitle(opts, config, context, centerPosition); + + if (process === 1 && opts.type === 'gauge') { + opts.extra.gauge.oldAngle = series[0]._proportion_; + opts.extra.gauge.oldData = series[0].data; + } + return { + center: centerPosition, + radius: radius, + innerRadius: innerRadius, + categories: categories, + totalAngle: totalAngle + }; +} + +function drawRadarDataPoints(series, opts, config, context) { + var process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + var radarOption = assign({},{ + gridColor: '#cccccc', + labelColor: '#666666', + opacity: 0.2 + },opts.extra.radar); + + var coordinateAngle = getRadarCoordinateSeries(opts.categories.length); + + var centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.area[0] + (opts.height - opts.area[0] - opts.area[2]) / 2 + }; + + var radius = Math.min(centerPosition.x - (getMaxTextListLength(opts.categories) + config.radarLabelTextMargin), + centerPosition.y - config.radarLabelTextMargin); + //TODO逻辑不对 + radius -= opts.padding[1]; + + // draw grid + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(radarOption.gridColor); + coordinateAngle.forEach(function(angle) { + var pos = convertCoordinateOrigin(radius * Math.cos(angle), radius * Math.sin(angle), centerPosition); + context.moveTo(centerPosition.x, centerPosition.y); + context.lineTo(pos.x, pos.y); + }); + context.stroke(); + context.closePath(); + // draw split line grid + + var _loop = function _loop(i) { + var startPos = {}; + context.beginPath(); + context.setLineWidth(1 * opts.pixelRatio); + context.setStrokeStyle(radarOption.gridColor); + coordinateAngle.forEach(function(angle, index) { + var pos = convertCoordinateOrigin(radius / config.radarGridCount * i * Math.cos(angle), radius / config.radarGridCount * + i * Math.sin(angle), centerPosition); + if (index === 0) { + startPos = pos; + context.moveTo(pos.x, pos.y); + } else { + context.lineTo(pos.x, pos.y); + } + }); + context.lineTo(startPos.x, startPos.y); + context.stroke(); + context.closePath(); + }; + + for (var i = 1; i <= config.radarGridCount; i++) { + _loop(i); + } + + var radarDataPoints = getRadarDataPoints(coordinateAngle, centerPosition, radius, series, opts, process); + + radarDataPoints.forEach(function(eachSeries, seriesIndex) { + // 绘制区域数据 + context.beginPath(); + context.setFillStyle(hexToRgb(eachSeries.color, radarOption.opacity)); + eachSeries.data.forEach(function(item, index) { + if (index === 0) { + context.moveTo(item.position.x, item.position.y); + } else { + context.lineTo(item.position.x, item.position.y); + } + }); + context.closePath(); + context.fill(); + + if (opts.dataPointShape !== false) { + var shape = config.dataPointShape[seriesIndex % config.dataPointShape.length]; + var points = eachSeries.data.map(function(item) { + return item.position; + }); + drawPointShape(points, eachSeries.color, shape, context, opts); + } + }); + // draw label text + drawRadarLabel(coordinateAngle, radius, centerPosition, opts, config, context); + + return { + center: centerPosition, + radius: radius, + angleList: coordinateAngle + }; +} + +function normalInt(min, max, iter) { + iter = iter==0?1:iter; + var arr = []; + for (var i = 0; i < iter; i++) { + arr[i] = Math.random(); + }; + return Math.floor(arr.reduce(function(i,j){return i+j})/iter*(max-min))+min; +}; + +function collisionNew(area,points,width,height){ + var isIn=false; + for(let i=0;ipoints[i].area[2]||area[1]>points[i].area[3]||area[2]width || area[3]>height){ + isIn=true; + break; + }else{ + isIn=false; + } + }else{ + isIn=true; + break; + } + } + } + return isIn; +}; + +function getBoundingBox(data) { + var bounds = {}, coords; + bounds.xMin = 180; + bounds.xMax = 0; + bounds.yMin = 90; + bounds.yMax = 0 + for (var i = 0; i < data.length; i++) { + var coorda = data[i].geometry.coordinates + for (var k = 0; k < coorda.length; k++) { + coords = coorda[k]; + if (coords.length == 1) { + coords = coords[0] + } + for (var j = 0; j < coords.length; j++) { + var longitude = coords[j][0]; + var latitude = coords[j][1]; + var point = { + x: longitude, + y: latitude + } + bounds.xMin = bounds.xMin < point.x ? bounds.xMin : point.x; + bounds.xMax = bounds.xMax > point.x ? bounds.xMax : point.x; + bounds.yMin = bounds.yMin < point.y ? bounds.yMin : point.y; + bounds.yMax = bounds.yMax > point.y ? bounds.yMax : point.y; + } + } + } + return bounds; +} + +function coordinateToPoint(latitude, longitude,bounds,scale,xoffset,yoffset) { + return { + x: (longitude - bounds.xMin) * scale+xoffset, + y: (bounds.yMax - latitude) * scale+yoffset + }; +} + +function pointToCoordinate(pointY, pointX,bounds,scale,xoffset,yoffset) { + return { + x: (pointX-xoffset)/scale+bounds.xMin, + y: bounds.yMax - (pointY-yoffset)/scale + }; +} + +function isRayIntersectsSegment(poi,s_poi,e_poi){ + if (s_poi[1]==e_poi[1]){return false;} + if (s_poi[1]>poi[1] && e_poi[1]>poi[1]){return false;} + if (s_poi[1]poi[1]){return false;} + if (e_poi[1]==poi[1] && s_poi[1]>poi[1]){return false;} + if (s_poi[0]0.7) { + return true; + }else {return false}; + }; + for (let i = 0; i < points.length; i++) { + let text = points[i].name; + let tHeight = points[i].textSize; + let tWidth = measureText(text,tHeight); + let isSpin = Spin(); + let x,y,area,areav; + let breaknum=0; + while(true) { + breaknum++; + let isCollision; + if (isSpin) { + x = normalInt(-opts.width/2, opts.width/2,5) - tWidth/2; + y = normalInt(-opts.height/2, opts.height/2,5)+tHeight/2; + area=[y-5-tWidth+opts.width/2,(-x-5+opts.height/2),y+5+opts.width/2,(-x+tHeight+5+opts.height/2)]; + areav=[opts.width-(opts.width/2-opts.height/2)-(-x+tHeight+5+opts.height/2)-5,(opts.height/2-opts.width/2)+(y-5-tWidth+opts.width/2)-5,opts.width-(opts.width/2-opts.height/2)-(-x+tHeight+5+opts.height/2)+tHeight,(opts.height/2-opts.width/2)+(y-5-tWidth+opts.width/2)+tWidth+5]; + isCollision = collisionNew(areav,points,opts.height,opts.width); + }else{ + x = normalInt(-opts.width/2, opts.width/2,5) - tWidth/2; + y = normalInt(-opts.height/2, opts.height/2,5)+tHeight/2; + area=[x-5+opts.width/2,y-5-tHeight+opts.height/2,x+tWidth+5+opts.width/2,y+5+opts.height/2]; + isCollision = collisionNew(area,points,opts.width,opts.height); + } + if (!isCollision) break; + if (breaknum==1000){ + area=[-1000,-1000,-1000,-1000]; + break; + } + }; + if (isSpin) { + points[i].area=areav; + points[i].areav=area; + }else{ + points[i].area=area; + } + points[i].rotate=isSpin; + }; + break; + } + return points; +} + + +function drawWordCloudDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let wordOption = assign({},{ + type: 'normal', + autoColors: true + },opts.extra.word); + + context.beginPath(); + context.setFillStyle(opts.background||'#FFFFFF'); + context.rect(0,0,opts.width,opts.height); + context.fill(); + context.save(); + let points = opts.chartData.wordCloudData; + context.translate(opts.width/2,opts.height/2); + + for(let i=0;i0){ + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + }else{ + context.fillText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + } + }else{ + context.fillText(text,(points[i].areav[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].areav[1]+5+tHeight-opts.height/2)*process); + } + } + }else{ + if(points[i].area[0]>0){ + if (opts.tooltip) { + if (opts.tooltip.index == i) { + context.strokeText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + }else{ + context.fillText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + } + }else{ + context.fillText(text,(points[i].area[0]+5-opts.width/2)*process-tWidth*(1-process)/2,(points[i].area[1]+5+tHeight-opts.height/2)*process); + } + + } + } + + context.stroke(); + context.restore(); + } + context.restore(); +} + +function drawFunnelDataPoints(series, opts, config, context) { + let process = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1; + let funnelOption = assign({},{ + activeWidth:10, + activeOpacity:0.3, + border:false, + borderWidth:2, + borderColor:'#FFFFFF', + fillOpacity:1, + labelAlign:'right' + },opts.extra.funnel); + let eachSpacing = (opts.height - opts.area[0] - opts.area[2])/series.length; + let centerPosition = { + x: opts.area[3] + (opts.width - opts.area[1] - opts.area[3]) / 2, + y: opts.height-opts.area[2] + }; + let activeWidth = funnelOption.activeWidth; + let radius = Math.min((opts.width - opts.area[1] - opts.area[3]) / 2 - activeWidth, (opts.height - opts.area[0] - opts.area[2]) / 2 - activeWidth); + series = getFunnelDataPoints(series, radius, process); + context.save(); + context.translate(centerPosition.x,centerPosition.y); + for(let i=0;i 0 && arguments[0] !== undefined ? arguments[0] : {}; + this.opts = assign({}, this.opts, data); + this.opts.updateData = true; + let scrollPosition = data.scrollPosition || 'current'; + switch (scrollPosition) { + case 'current': + this.opts._scrollDistance_ = this.scrollOption.currentOffset; + break; + case 'left': + this.opts._scrollDistance_ = 0; + this.scrollOption = { + currentOffset: 0, + startTouchX: 0, + distance: 0, + lastMoveTime: 0 + }; + break; + case 'right': + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config), + yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let totalWidth = eachSpacing * (xAxisPoints.length - 1); + let screenWidth = endX - startX; + offsetLeft = screenWidth - totalWidth; + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + this.opts._scrollDistance_ = offsetLeft; + break; + } + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +Charts.prototype.zoom = function() { + var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.opts.xAxis.itemCount; + if (this.opts.enableScroll !== true) { + console.log('请启用滚动条后使用!') + return; + } + //当前屏幕中间点 + let centerPoint = Math.round(Math.abs(this.scrollOption.currentOffset) / this.opts.chartData.eachSpacing) + Math.round( + this.opts.xAxis.itemCount / 2); + this.opts.animation = false; + this.opts.xAxis.itemCount = val.itemCount; + //重新计算x轴偏移距离 + let _calYAxisData = calYAxisData(this.opts.series, this.opts, this.config), + yAxisWidth = _calYAxisData.yAxisWidth; + this.config.yAxisWidth = yAxisWidth; + let offsetLeft = 0; + let _getXAxisPoints0 = getXAxisPoints(this.opts.categories, this.opts, this.config), + xAxisPoints = _getXAxisPoints0.xAxisPoints, + startX = _getXAxisPoints0.startX, + endX = _getXAxisPoints0.endX, + eachSpacing = _getXAxisPoints0.eachSpacing; + let centerLeft = eachSpacing * centerPoint; + let screenWidth = endX - startX; + let MaxLeft = screenWidth - eachSpacing * (xAxisPoints.length - 1); + offsetLeft = screenWidth / 2 - centerLeft; + if (offsetLeft > 0) { + offsetLeft = 0; + } + if (offsetLeft < MaxLeft) { + offsetLeft = MaxLeft; + } + this.scrollOption = { + currentOffset: offsetLeft, + startTouchX: offsetLeft, + distance: 0, + lastMoveTime: 0 + }; + this.opts._scrollDistance_ = offsetLeft; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); +}; + +Charts.prototype.stopAnimation = function() { + this.animationInstance && this.animationInstance.stop(); +}; + +Charts.prototype.addEventListener = function(type, listener) { + this.event.addEventListener(type, listener); +}; + +Charts.prototype.getCurrentDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose') { + return findPieChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.pieData); + } else if (this.opts.type === 'radar') { + return findRadarChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.radarData, this.opts.categories.length); + } else if (this.opts.type === 'funnel') { + return findFunnelChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.funnelData); + } else if (this.opts.type === 'map') { + return findMapChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts); + }else if (this.opts.type === 'word') { + return findWordChartCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.wordCloudData); + } else { + return findCurrentIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.xAxisPoints, this.opts, this.config, Math.abs(this.scrollOption.currentOffset)); + } + } + return -1; +}; + +Charts.prototype.getLegendDataIndex = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + let _touches$ = getTouches(touches, this.opts, e); + return findLegendIndex({ + x: _touches$.x, + y: _touches$.y + }, this.opts.chartData.legendData); + } + return -1; +}; + +Charts.prototype.touchLegend = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches) { + var _touches$ = getTouches(touches, this.opts, e); + var index = this.getLegendDataIndex(e); + if (index >= 0) { + this.opts.series[index].show = !this.opts.series[index].show; + this.opts.animation = option.animation ? true : false; + drawCharts.call(this, this.opts.type, this.opts, this.config, this.context); + } + } + +}; + +Charts.prototype.showToolTip = function(e) { + var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (!touches) { + console.log("touchError"); + } + var _touches$ = getTouches(touches, this.opts, e); + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + if (this.opts.type === 'line' || this.opts.type === 'area' || this.opts.type === 'column') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getToolTipData = getToolTipData(seriesData, this.opts.chartData.calPoints, index, this.opts.categories,option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'mix') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getMixToolTipData = getMixToolTipData(seriesData, this.opts.chartData.calPoints, index, this.opts.categories,option), + textList = _getMixToolTipData.textList, + offset = _getMixToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'candle') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var _getToolTipData = getCandleToolTipData(this.opts.series[0].data, seriesData, this.opts.chartData.calPoints, + index, this.opts.categories, this.opts.extra.candle, option), + textList = _getToolTipData.textList, + offset = _getToolTipData.offset; + offset.y = _touches$.y; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'pie' || this.opts.type === 'ring' || this.opts.type === 'rose'||this.opts.type === 'funnel' ) { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = this.opts._series_[index]; + var textList = [{ + text: option.format ? option.format(seriesData) : seriesData.name + ': ' + seriesData.data, + color: seriesData.color + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'map'||this.opts.type === 'word') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = this.opts._series_[index]; + var textList = [{ + text: option.format ? option.format(seriesData) : seriesData.properties.name , + color: seriesData.color + }]; + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + opts.updateData = false; + drawCharts.call(this, opts.type, opts, this.config, this.context); + } + if (this.opts.type === 'radar') { + var index = this.getCurrentDataIndex(e); + if (index > -1) { + var currentOffset = this.scrollOption.currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset, + animation: false + }); + var seriesData = getSeriesDataItem(this.opts.series, index); + if (seriesData.length !== 0) { + var textList = seriesData.map(function(item) { + return { + text: option.format ? option.format(item) : item.name + ': ' + item.data, + color: item.color + }; + }); + var offset = { + x: _touches$.x, + y: _touches$.y + }; + opts.tooltip = { + textList: textList, + offset: offset, + option: option, + index: index + }; + } + } + drawCharts.call(this, opts.type, opts, this.config, this.context); + } +}; + +Charts.prototype.translate = function(distance) { + this.scrollOption = { + currentOffset: distance, + startTouchX: distance, + distance: 0, + lastMoveTime: 0 + }; + let opts = assign({}, this.opts, { + _scrollDistance_: distance, + animation: false + }); + drawCharts.call(this, this.opts.type, opts, this.config, this.context); +}; + +Charts.prototype.scrollStart = function(e) { + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + var _touches$ = getTouches(touches, this.opts, e); + if (touches && this.opts.enableScroll === true) { + this.scrollOption.startTouchX = _touches$.x; + } +}; + +Charts.prototype.scroll = function(e) { + if (this.scrollOption.lastMoveTime === 0) { + this.scrollOption.lastMoveTime = Date.now(); + } + let Limit = this.opts.extra.touchMoveLimit || 20; + let currMoveTime = Date.now(); + let duration = currMoveTime - this.scrollOption.lastMoveTime; + if (duration < Math.floor(1000 / Limit)) return; + this.scrollOption.lastMoveTime = currMoveTime; + var touches = null; + if (e.changedTouches) { + touches = e.changedTouches[0]; + } else { + touches = e.mp.changedTouches[0]; + } + if (touches && this.opts.enableScroll === true) { + var _touches$ = getTouches(touches, this.opts, e); + var _distance; + _distance = _touches$.x - this.scrollOption.startTouchX; + var currentOffset = this.scrollOption.currentOffset; + var validDistance = calValidDistance(currentOffset + _distance, this.opts.chartData, this.config, this.opts); + this.scrollOption.distance = _distance = validDistance - currentOffset; + var opts = assign({}, this.opts, { + _scrollDistance_: currentOffset + _distance, + animation: false + }); + drawCharts.call(this, opts.type, opts, this.config, this.context); + return currentOffset + _distance; + } +}; + +Charts.prototype.scrollEnd = function(e) { + if (this.opts.enableScroll === true) { + var _scrollOption = this.scrollOption, + currentOffset = _scrollOption.currentOffset, + distance = _scrollOption.distance; + this.scrollOption.currentOffset = currentOffset + distance; + this.scrollOption.distance = 0; + } +}; +if (typeof module === "object" && typeof module.exports === "object") { + module.exports = Charts; + //export default Charts;//建议使用nodejs的module导出方式,如报错请使用export方式导出 +} diff --git a/components/verifition/Verify.vue b/components/verifition/Verify.vue deleted file mode 100644 index 3fe4d884..00000000 --- a/components/verifition/Verify.vue +++ /dev/null @@ -1,469 +0,0 @@ - - - diff --git a/components/verifition/utils/ase.js b/components/verifition/utils/ase.js deleted file mode 100644 index 1fdceed4..00000000 --- a/components/verifition/utils/ase.js +++ /dev/null @@ -1,14 +0,0 @@ -import CryptoJS from 'crypto-js' -/** - * @word 要加密的内容 - * @keyWord String 服务器随机返回的关键字 - * */ -export function aesEncrypt(word, keyWord = "XwKsGlMcdPMEhR1B") { - var key = CryptoJS.enc.Utf8.parse(keyWord); - var srcs = CryptoJS.enc.Utf8.parse(word); - var encrypted = CryptoJS.AES.encrypt(srcs, key, { - mode: CryptoJS.mode.ECB, - padding: CryptoJS.pad.Pkcs7 - }); - return encrypted.toString(); -} diff --git a/components/verifition/utils/request.js b/components/verifition/utils/request.js deleted file mode 100644 index e6a31b02..00000000 --- a/components/verifition/utils/request.js +++ /dev/null @@ -1,17 +0,0 @@ -import config from '@/config' -const baseUrl = config.baseUrl -export const myRequest = (option = {}) => { - return new Promise((reslove, reject) => { - uni.request({ - url: baseUrl + option.url, - data: option.data, - method: option.method || "GET", - success: (result) => { - reslove(result) - }, - fail: (error) => { - reject(error) - } - }) - }) -} diff --git a/components/verifition/verifyPoint/verifyPoint.vue b/components/verifition/verifyPoint/verifyPoint.vue deleted file mode 100644 index 57d7d033..00000000 --- a/components/verifition/verifyPoint/verifyPoint.vue +++ /dev/null @@ -1,557 +0,0 @@ - - - - diff --git a/components/verifition/verifySlider/verifySlider.vue b/components/verifition/verifySlider/verifySlider.vue deleted file mode 100644 index 7c75e0e2..00000000 --- a/components/verifition/verifySlider/verifySlider.vue +++ /dev/null @@ -1,661 +0,0 @@ - - - diff --git a/config.js b/config.js index 8500f848..edffc226 100644 --- a/config.js +++ b/config.js @@ -1,27 +1,30 @@ // 应用全局配置 -module.exports = { - // baseUrl: 'http://api-dashboard.win.iocoder.cn', - baseUrl: 'http://localhost:12080', - baseApi: '/admin-api', - // 应用信息 - appInfo: { - // 应用名称 - name: "win-app", - // 应用版本 - version: "1.0.0", - // 应用logo - logo: "/static/logo.png", - // 官方网站 - site_url: "https://iocoder.cn", - // 政策协议 - agreements: [{ - title: "隐私政策", - url: "https://iocoder.cn" - }, - { - title: "用户服务协议", - url: "https://iocoder.cn" - } - ] - } -} +const config = { + //baseUrl: 'https://vue.ruoyi.vip/prod-api', + //cloud后台网关地址 + baseUrl: 'http://dev.ccwin-in.com:25100/api', + baseApi: '/admin-api', + // 应用信息 + appInfo: { + // 应用名称 + name: "ruoyi-app-vue3", + // 应用版本 + version: "1.1.0", + // 应用logo + logo: "/static/logo.png", + // 官方网站 + site_url: "http://ruoyi.vip", + // 政策协议 + agreements: [{ + title: "隐私政策", + url: "https://ruoyi.vip/protocol.html" + }, + { + title: "用户服务协议", + url: "https://ruoyi.vip/protocol.html" + } + ] + } + } + + export default config \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..c3ff205f --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
    + + + diff --git a/libs/versionUpdate.js b/libs/versionUpdate.js new file mode 100644 index 00000000..4b2e9c78 --- /dev/null +++ b/libs/versionUpdate.js @@ -0,0 +1,23 @@ +import axios from 'axios' + +const isNewVersion = () => { + let updae_url = getApp().globalData.text; + let url = updae_url+ `/static/version.json?t=${new Date().getTime()}` + axios.get(url).then(res => { + if (res.status === 200) { + let vueVersion = res.data.version; + let localVueVersion = localStorage.getItem('vueVersion'); + if (localVueVersion && localVueVersion != vueVersion) { + localStorage.setItem('vueVersion', vueVersion); + window.location.reload(); + return; + } else { + localStorage.setItem('vueVersion', vueVersion); + } + } + }) +} + +export default { + isNewVersion +} diff --git a/main.js b/main.js index 3985b1b1..19300141 100644 --- a/main.js +++ b/main.js @@ -1,17 +1,86 @@ -import Vue from 'vue' import App from './App' -import store from './store' // store -import plugins from './plugins' // plugins -import './permission' // permission -Vue.use(plugins) +import store from './store' +import './router/my_router.js'; //引入拦截 +import VueClipboard from 'vue-clipboard2' + +// 引入 uView UI +import uView from './uni_modules/vk-uview-ui'; +// import utils from '@/common/utils.js'; +// import uShowModal from "./mycomponents/show-modal/uShowModal.vue" +// // 如此配置即可 +// uni.$u.config.unit = 'rpx' +// #ifndef VUE3 +import Vue from 'vue' +console.log("Vuew2222"); Vue.config.productionTip = false Vue.prototype.$store = store - +Vue.prototype.$adpid = "1111111111" +Vue.prototype.$backgroundAudioData = { + playing: false, + playTime: 0, + formatedPlayTime: '00:00:00' +} App.mpType = 'app' - const app = new Vue({ - ...App + store, + ...App }) - app.$mount() +// #endif + +// #ifdef VUE3 +import { + createSSRApp +} from 'vue' +export function createApp() { + const app = createSSRApp(App) + + // 使用 uView UI + app.use(store) + app.use(uView) + app.use(VueClipboard) + app.config.globalProperties.$adpid = "1111111111" + app.config.globalProperties.$pageSize = 100 + // app.config.globalProperties.$utils = utils; + + app.config.globalProperties.$backgroundAudioData = { + playing: false, + playTime: 0, + formatedPlayTime: '00:00:00' + } + startApp(app); + // app.component('u-show-modal', uShowModal); + return { + app + } +} + + +export function startApp(app) { + uni.request({ + url: `./static/config.json?t=${new Date().getTime()}`, + method: 'get', + data: {}, + success: (res) => { + if (res.data != "") { + //在配置中读url,company等信息 + app.config.globalProperties.$baseInfo = res.data.baseInfo; + getApp().globalData.dev_url = res.data.baseInfo.dev.value; + getApp().globalData.request_url = res.data.baseInfo.request_url.value; + getApp().globalData.tenantId = res.data.baseInfo.tenantId.value; + app.config.globalProperties.$recepit_configList = res.data.recepit_configList; + getApp().globalData.recepit_configList = res.data.recepit_configList; + getApp().globalData.feed_configList = res.data.feed_configList; + } + }, + fail: (error) => { + + } + }) + + return { + startApp + }; +} +// #endif diff --git a/manifest.json b/manifest.json index 409e5a29..c47378df 100644 --- a/manifest.json +++ b/manifest.json @@ -1,69 +1,210 @@ { - "name" : "闻荫移动端", - "appid" : "__UNI__25A9D80", - "description" : "", + "name" : "pda_vue_3.0", + "appid" : "__UNI__43932FE", + "description" : "应用描述", "versionName" : "1.0.0", "versionCode" : "100", "transformPx" : false, "app-plus" : { "usingComponents" : true, "nvueCompiler" : "uni-app", + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "nvueLaunchMode" : "fast", "splashscreen" : { "alwaysShowBeforeRender" : true, "waiting" : true, "autoclose" : true, "delay" : 0 }, - "modules" : {}, + "modules" : { + "OAuth" : {}, + "Payment" : {}, + "Push" : {}, + "Share" : {}, + "Speech" : {}, + "VideoPlayer" : {} + }, "distribute" : { "android" : { "permissions" : [ - "", - "", - "", - "", - "", + "", "", + "", + "", + "", + "", "", + "", + "", "", + "", + "", + "", "", + "", + "", + "", + "", + "", + "", "", - "", + "", + "", + "", + "", + "", + "", "", - "", - "", - "" + "", + "", + "", + "", + "" ] }, - "ios" : {}, - "sdkConfigs" : {} + "ios" : { + "UIBackgroundModes" : [ "audio" ], + "urlschemewhitelist" : [ "baidumap", "iosamap" ] + }, + "sdkConfigs" : { + "speech" : { + "ifly" : {} + } + }, + "orientation" : [ "portrait-primary" ] + }, + "uniStatistics" : { + "enable" : true } }, "quickapp" : {}, + "quickapp-native" : { + "icon" : "/static/logo.png", + "package" : "com.example.demo", + "features" : [ + { + "name" : "system.clipboard" + } + ] + }, + "quickapp-webview" : { + "icon" : "/static/logo.png", + "package" : "com.example.demo", + "minPlatformVersion" : 1070, + "versionName" : "1.0.0", + "versionCode" : 100 + }, "mp-weixin" : { - "appid" : "wxccd7e2a0911b3397", + "appid" : "", "setting" : { - "urlCheck" : false, - "es6" : false, - "minified" : true, - "postcss" : true + "urlCheck" : false }, - "optimization" : { - "subPackages" : true + "usingComponents" : true, + "permission" : { + "scope.userLocation" : { + "desc" : "演示定位能力" + } }, - "usingComponents" : true + "uniStatistics" : { + "enable" : true + } + }, + "mp-alipay" : { + "usingComponents" : true, + "uniStatistics" : { + "enable" : true + } + }, + "mp-baidu" : { + "usingComponents" : true, + "uniStatistics" : { + "enable" : true + } + }, + "mp-toutiao" : { + "usingComponents" : true, + "uniStatistics" : { + "enable" : true + } + }, + "mp-jd" : { + "usingComponents" : true, + "uniStatistics" : { + "enable" : true + } }, - "vueVersion" : "2", "h5" : { - "template" : "static/index.html", - "devServer" : { - "port" : 9090, - "https" : false - }, - "title" : "win-App", "router" : { - "mode" : "hash", - "base" : "./" + "mode" : "hash" + }, + "template" : "template.h5.html", + "sdkConfigs" : { + "maps" : {} + }, + "devServer" : { + "https" : false, + "proxy" : { + "/prod" : { + "target" : "http://dev.ccwin-in.com:59096/", + //"target": "http://127.0.0.1:4523/m1/1086659-0-default/", + "changeOrigin" : true, + "logLevel" : "debug", + "secure" : false, + "pathRewrite" : { + "^/prod" : "/" + } + }, + "/print" : { + "target" : "http://dev.ccwin-in.com:59095/", + "changeOrigin" : true, + "logLevel" : "debug", + "secure" : false, + "pathRewrite" : { + "^/print" : "/" + } + }, + "/pc" : { + "target" : "http://dev.ccwin-in.com:59097/", + "changeOrigin" : true, + "logLevel" : "debug", + "secure" : false, + "pathRewrite" : { + "^/pc" : "/" + } + } + }, + "port" : 8081 + } + }, + "vueVersion" : "3", + "mp-kuaishou" : { + "uniStatistics" : { + "enable" : true } + }, + "mp-lark" : { + "uniStatistics" : { + "enable" : true + } + }, + "mp-qq" : { + "uniStatistics" : { + "enable" : true + } + }, + "quickapp-webview-huawei" : { + "uniStatistics" : { + "enable" : true + } + }, + "quickapp-webview-union" : { + "uniStatistics" : { + "enable" : true + } + }, + "uniStatistics" : { + "version" : "2", + "enable" : true } } diff --git a/mycomponents/Batch/Batch.vue b/mycomponents/Batch/Batch.vue new file mode 100644 index 00000000..d251eac6 --- /dev/null +++ b/mycomponents/Batch/Batch.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/mycomponents/balance/balance.vue b/mycomponents/balance/balance.vue new file mode 100644 index 00000000..df890c9c --- /dev/null +++ b/mycomponents/balance/balance.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/mycomponents/balance/balanceDetailPopup.vue b/mycomponents/balance/balanceDetailPopup.vue new file mode 100644 index 00000000..70393770 --- /dev/null +++ b/mycomponents/balance/balanceDetailPopup.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/mycomponents/balance/balanceLabel.vue b/mycomponents/balance/balanceLabel.vue new file mode 100644 index 00000000..9c96a9df --- /dev/null +++ b/mycomponents/balance/balanceLabel.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/balance/balanceMove.vue b/mycomponents/balance/balanceMove.vue new file mode 100644 index 00000000..c906afef --- /dev/null +++ b/mycomponents/balance/balanceMove.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/mycomponents/balance/balanceSelect.vue b/mycomponents/balance/balanceSelect.vue new file mode 100644 index 00000000..0b63c993 --- /dev/null +++ b/mycomponents/balance/balanceSelect.vue @@ -0,0 +1,54 @@ + + + + + + diff --git a/mycomponents/balance/batch.vue b/mycomponents/balance/batch.vue new file mode 100644 index 00000000..a16f2853 --- /dev/null +++ b/mycomponents/balance/batch.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/mycomponents/balance/bussinessType.vue b/mycomponents/balance/bussinessType.vue new file mode 100644 index 00000000..0a1a1d01 --- /dev/null +++ b/mycomponents/balance/bussinessType.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/mycomponents/balance/handleBalance.vue b/mycomponents/balance/handleBalance.vue new file mode 100644 index 00000000..f5dce70a --- /dev/null +++ b/mycomponents/balance/handleBalance.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/mycomponents/balance/location.vue b/mycomponents/balance/location.vue new file mode 100644 index 00000000..bcdb2dab --- /dev/null +++ b/mycomponents/balance/location.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/mycomponents/balance/moveStatus.vue b/mycomponents/balance/moveStatus.vue new file mode 100644 index 00000000..11a8f3a7 --- /dev/null +++ b/mycomponents/balance/moveStatus.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/mycomponents/balance/pack.vue b/mycomponents/balance/pack.vue new file mode 100644 index 00000000..819170e5 --- /dev/null +++ b/mycomponents/balance/pack.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/mycomponents/balance/productionLabel.vue b/mycomponents/balance/productionLabel.vue new file mode 100644 index 00000000..cbec3b1d --- /dev/null +++ b/mycomponents/balance/productionLabel.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/mycomponents/balance/purchaseLabel.vue b/mycomponents/balance/purchaseLabel.vue new file mode 100644 index 00000000..c4b25002 --- /dev/null +++ b/mycomponents/balance/purchaseLabel.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/mycomponents/balance/recommendBalance.vue b/mycomponents/balance/recommendBalance.vue new file mode 100644 index 00000000..a0adcb27 --- /dev/null +++ b/mycomponents/balance/recommendBalance.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/mycomponents/button/requestButton.vue b/mycomponents/button/requestButton.vue new file mode 100644 index 00000000..8db55a85 --- /dev/null +++ b/mycomponents/button/requestButton.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/common/comBlankView.vue b/mycomponents/common/comBlankView.vue new file mode 100644 index 00000000..96a64f63 --- /dev/null +++ b/mycomponents/common/comBlankView.vue @@ -0,0 +1,31 @@ + + + + + + diff --git a/mycomponents/common/comEmptyView.vue b/mycomponents/common/comEmptyView.vue new file mode 100644 index 00000000..c8b41abd --- /dev/null +++ b/mycomponents/common/comEmptyView.vue @@ -0,0 +1,41 @@ + + + + + + diff --git a/mycomponents/common/comListHint.vue b/mycomponents/common/comListHint.vue new file mode 100644 index 00000000..78080840 --- /dev/null +++ b/mycomponents/common/comListHint.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/mycomponents/common/comListItem.vue b/mycomponents/common/comListItem.vue new file mode 100644 index 00000000..4af08b7a --- /dev/null +++ b/mycomponents/common/comListItem.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/mycomponents/common/comMessage.vue b/mycomponents/common/comMessage.vue new file mode 100644 index 00000000..9b560ca5 --- /dev/null +++ b/mycomponents/common/comMessage.vue @@ -0,0 +1,479 @@ + + + + diff --git a/mycomponents/common/comPopup.vue b/mycomponents/common/comPopup.vue new file mode 100644 index 00000000..d0b37dc6 --- /dev/null +++ b/mycomponents/common/comPopup.vue @@ -0,0 +1,39 @@ + + + + + + + diff --git a/mycomponents/common/comUploadCamera.vue b/mycomponents/common/comUploadCamera.vue new file mode 100644 index 00000000..b1f0857f --- /dev/null +++ b/mycomponents/common/comUploadCamera.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/mycomponents/container/containerInfo.vue b/mycomponents/container/containerInfo.vue new file mode 100644 index 00000000..36ef39fc --- /dev/null +++ b/mycomponents/container/containerInfo.vue @@ -0,0 +1,54 @@ + + + + + + diff --git a/mycomponents/container/containerStatus.vue b/mycomponents/container/containerStatus.vue new file mode 100644 index 00000000..c3fe6587 --- /dev/null +++ b/mycomponents/container/containerStatus.vue @@ -0,0 +1,47 @@ + + + + + + + diff --git a/mycomponents/container/targetContainer.vue b/mycomponents/container/targetContainer.vue new file mode 100644 index 00000000..c2045ab0 --- /dev/null +++ b/mycomponents/container/targetContainer.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/mycomponents/detail/comDetailCard.vue b/mycomponents/detail/comDetailCard.vue new file mode 100644 index 00000000..8ebd7613 --- /dev/null +++ b/mycomponents/detail/comDetailCard.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/mycomponents/detail/comRequestDetailCard.vue b/mycomponents/detail/comRequestDetailCard.vue new file mode 100644 index 00000000..24db4008 --- /dev/null +++ b/mycomponents/detail/comRequestDetailCard.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/mycomponents/detail/detailBasicInfo.vue b/mycomponents/detail/detailBasicInfo.vue new file mode 100644 index 00000000..ad2f2849 --- /dev/null +++ b/mycomponents/detail/detailBasicInfo.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/mycomponents/detail/detailCommonInfo.vue b/mycomponents/detail/detailCommonInfo.vue new file mode 100644 index 00000000..2211b1ed --- /dev/null +++ b/mycomponents/detail/detailCommonInfo.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/mycomponents/detail/detailHandleInfo.vue b/mycomponents/detail/detailHandleInfo.vue new file mode 100644 index 00000000..3f270f52 --- /dev/null +++ b/mycomponents/detail/detailHandleInfo.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/mycomponents/detail/detailRecommendInfo.vue b/mycomponents/detail/detailRecommendInfo.vue new file mode 100644 index 00000000..f81b1d72 --- /dev/null +++ b/mycomponents/detail/detailRecommendInfo.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/mycomponents/detail/jobDetailPopup.vue b/mycomponents/detail/jobDetailPopup.vue new file mode 100644 index 00000000..f2eeed6f --- /dev/null +++ b/mycomponents/detail/jobDetailPopup.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/mycomponents/detail/recordDetailBasicInfo.vue b/mycomponents/detail/recordDetailBasicInfo.vue new file mode 100644 index 00000000..39b3c526 --- /dev/null +++ b/mycomponents/detail/recordDetailBasicInfo.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/mycomponents/detail/recordDetailCommonInfo.vue b/mycomponents/detail/recordDetailCommonInfo.vue new file mode 100644 index 00000000..ba8c253d --- /dev/null +++ b/mycomponents/detail/recordDetailCommonInfo.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/mycomponents/detail/recordDetailPopup.vue b/mycomponents/detail/recordDetailPopup.vue new file mode 100644 index 00000000..1cd4d309 --- /dev/null +++ b/mycomponents/detail/recordDetailPopup.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/mycomponents/detail/requestDetailBasicInfo.vue b/mycomponents/detail/requestDetailBasicInfo.vue new file mode 100644 index 00000000..4961b535 --- /dev/null +++ b/mycomponents/detail/requestDetailBasicInfo.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/mycomponents/detail/requestDetailCommonInfo.vue b/mycomponents/detail/requestDetailCommonInfo.vue new file mode 100644 index 00000000..01a6279a --- /dev/null +++ b/mycomponents/detail/requestDetailCommonInfo.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/mycomponents/item/item.vue b/mycomponents/item/item.vue new file mode 100644 index 00000000..201020dd --- /dev/null +++ b/mycomponents/item/item.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/mycomponents/item/itemCompareQty.vue b/mycomponents/item/itemCompareQty.vue new file mode 100644 index 00000000..d1bc22a9 --- /dev/null +++ b/mycomponents/item/itemCompareQty.vue @@ -0,0 +1,63 @@ + + + + diff --git a/mycomponents/item/itemDetailInfo.vue b/mycomponents/item/itemDetailInfo.vue new file mode 100644 index 00000000..14c757a1 --- /dev/null +++ b/mycomponents/item/itemDetailInfo.vue @@ -0,0 +1,74 @@ + + + + diff --git a/mycomponents/item/itemInfo.vue b/mycomponents/item/itemInfo.vue new file mode 100644 index 00000000..f40e16c8 --- /dev/null +++ b/mycomponents/item/itemInfo.vue @@ -0,0 +1,58 @@ + + + + + + diff --git a/mycomponents/item/itemInfoPopup.vue b/mycomponents/item/itemInfoPopup.vue new file mode 100644 index 00000000..9ce35800 --- /dev/null +++ b/mycomponents/item/itemInfoPopup.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/mycomponents/item/itemQty.vue b/mycomponents/item/itemQty.vue new file mode 100644 index 00000000..363d16cb --- /dev/null +++ b/mycomponents/item/itemQty.vue @@ -0,0 +1,56 @@ + + + + diff --git a/mycomponents/item/itemRecommendQty.vue b/mycomponents/item/itemRecommendQty.vue new file mode 100644 index 00000000..92574af0 --- /dev/null +++ b/mycomponents/item/itemRecommendQty.vue @@ -0,0 +1,65 @@ + + + + diff --git a/mycomponents/item/itemSelect.vue b/mycomponents/item/itemSelect.vue new file mode 100644 index 00000000..631cf749 --- /dev/null +++ b/mycomponents/item/itemSelect.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/mycomponents/item/itemStatus.vue b/mycomponents/item/itemStatus.vue new file mode 100644 index 00000000..b7f1c7e9 --- /dev/null +++ b/mycomponents/item/itemStatus.vue @@ -0,0 +1,47 @@ + + + + + + + diff --git a/mycomponents/job/jobBottom.vue b/mycomponents/job/jobBottom.vue new file mode 100644 index 00000000..120265e5 --- /dev/null +++ b/mycomponents/job/jobBottom.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/mycomponents/job/jobCard.vue b/mycomponents/job/jobCard.vue new file mode 100644 index 00000000..a8d7944f --- /dev/null +++ b/mycomponents/job/jobCard.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/mycomponents/job/jobComMainCard.vue b/mycomponents/job/jobComMainCard.vue new file mode 100644 index 00000000..30252013 --- /dev/null +++ b/mycomponents/job/jobComMainCard.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/mycomponents/job/jobCommonInfo.vue b/mycomponents/job/jobCommonInfo.vue new file mode 100644 index 00000000..28afb772 --- /dev/null +++ b/mycomponents/job/jobCommonInfo.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/mycomponents/job/jobDetailPopup.vue b/mycomponents/job/jobDetailPopup.vue new file mode 100644 index 00000000..611bdd03 --- /dev/null +++ b/mycomponents/job/jobDetailPopup.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/mycomponents/job/jobFilter.vue b/mycomponents/job/jobFilter.vue new file mode 100644 index 00000000..6a5948a6 --- /dev/null +++ b/mycomponents/job/jobFilter.vue @@ -0,0 +1,139 @@ + + + + diff --git a/mycomponents/job/jobInfoPopup.vue b/mycomponents/job/jobInfoPopup.vue new file mode 100644 index 00000000..170be4b4 --- /dev/null +++ b/mycomponents/job/jobInfoPopup.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/mycomponents/job/jobNumber.vue b/mycomponents/job/jobNumber.vue new file mode 100644 index 00000000..94a38499 --- /dev/null +++ b/mycomponents/job/jobNumber.vue @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/mycomponents/job/jobPersonInfo.vue b/mycomponents/job/jobPersonInfo.vue new file mode 100644 index 00000000..7c1be5d6 --- /dev/null +++ b/mycomponents/job/jobPersonInfo.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/job/jobProperty.vue b/mycomponents/job/jobProperty.vue new file mode 100644 index 00000000..f231f5ef --- /dev/null +++ b/mycomponents/job/jobProperty.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/mycomponents/job/jobRequestInfo.vue b/mycomponents/job/jobRequestInfo.vue new file mode 100644 index 00000000..66d18570 --- /dev/null +++ b/mycomponents/job/jobRequestInfo.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/mycomponents/job/jobSettingInfo.vue b/mycomponents/job/jobSettingInfo.vue new file mode 100644 index 00000000..db1ab473 --- /dev/null +++ b/mycomponents/job/jobSettingInfo.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/mycomponents/job/jobStatus.vue b/mycomponents/job/jobStatus.vue new file mode 100644 index 00000000..9a80a5e0 --- /dev/null +++ b/mycomponents/job/jobStatus.vue @@ -0,0 +1,45 @@ + + + + + + diff --git a/mycomponents/job/jobTop.vue b/mycomponents/job/jobTop.vue new file mode 100644 index 00000000..f2a9f476 --- /dev/null +++ b/mycomponents/job/jobTop.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/mycomponents/job/jobcomDetailCard.vue b/mycomponents/job/jobcomDetailCard.vue new file mode 100644 index 00000000..8e2b3b91 --- /dev/null +++ b/mycomponents/job/jobcomDetailCard.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/mycomponents/label/label.vue b/mycomponents/label/label.vue new file mode 100644 index 00000000..067b373f --- /dev/null +++ b/mycomponents/label/label.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/location/location.vue b/mycomponents/location/location.vue new file mode 100644 index 00000000..b2286bf3 --- /dev/null +++ b/mycomponents/location/location.vue @@ -0,0 +1,55 @@ + + + + + \ No newline at end of file diff --git a/mycomponents/location/locationDetail.vue b/mycomponents/location/locationDetail.vue new file mode 100644 index 00000000..c6fd752f --- /dev/null +++ b/mycomponents/location/locationDetail.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/mycomponents/location/locationDrop.vue b/mycomponents/location/locationDrop.vue new file mode 100644 index 00000000..6862f92f --- /dev/null +++ b/mycomponents/location/locationDrop.vue @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/mycomponents/location/locationInfo.vue b/mycomponents/location/locationInfo.vue new file mode 100644 index 00000000..6a63f0a5 --- /dev/null +++ b/mycomponents/location/locationInfo.vue @@ -0,0 +1,45 @@ + + + + + + diff --git a/mycomponents/location/locationStatus.vue b/mycomponents/location/locationStatus.vue new file mode 100644 index 00000000..cf26117b --- /dev/null +++ b/mycomponents/location/locationStatus.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/mycomponents/location/requiredLocation.vue b/mycomponents/location/requiredLocation.vue new file mode 100644 index 00000000..cd889b7b --- /dev/null +++ b/mycomponents/location/requiredLocation.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/mycomponents/package/packageBalance.vue b/mycomponents/package/packageBalance.vue new file mode 100644 index 00000000..dd4cdbbf --- /dev/null +++ b/mycomponents/package/packageBalance.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/mycomponents/package/packageDetailPopup.vue b/mycomponents/package/packageDetailPopup.vue new file mode 100644 index 00000000..7abc53d7 --- /dev/null +++ b/mycomponents/package/packageDetailPopup.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/mycomponents/package/packageHandle.vue b/mycomponents/package/packageHandle.vue new file mode 100644 index 00000000..a3513fc3 --- /dev/null +++ b/mycomponents/package/packageHandle.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/mycomponents/package/packageTarget.vue b/mycomponents/package/packageTarget.vue new file mode 100644 index 00000000..51dc3176 --- /dev/null +++ b/mycomponents/package/packageTarget.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/partCode/partCode.vue b/mycomponents/partCode/partCode.vue new file mode 100644 index 00000000..915106b8 --- /dev/null +++ b/mycomponents/partCode/partCode.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/mycomponents/partCode/partCodeSelect.vue b/mycomponents/partCode/partCodeSelect.vue new file mode 100644 index 00000000..631cf749 --- /dev/null +++ b/mycomponents/partCode/partCodeSelect.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/mycomponents/production/productionInfo.vue b/mycomponents/production/productionInfo.vue new file mode 100644 index 00000000..6ced48a6 --- /dev/null +++ b/mycomponents/production/productionInfo.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/mycomponents/purchase/purchaseInfo.vue b/mycomponents/purchase/purchaseInfo.vue new file mode 100644 index 00000000..b831c770 --- /dev/null +++ b/mycomponents/purchase/purchaseInfo.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/mycomponents/qty/CountQtyEdit.vue b/mycomponents/qty/CountQtyEdit.vue new file mode 100644 index 00000000..0ded9f60 --- /dev/null +++ b/mycomponents/qty/CountQtyEdit.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/mycomponents/qty/RecommendQty.vue b/mycomponents/qty/RecommendQty.vue new file mode 100644 index 00000000..b294485c --- /dev/null +++ b/mycomponents/qty/RecommendQty.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/mycomponents/qty/balanceQty.vue b/mycomponents/qty/balanceQty.vue new file mode 100644 index 00000000..d1358a3d --- /dev/null +++ b/mycomponents/qty/balanceQty.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/mycomponents/qty/balanceQtyEdit.vue b/mycomponents/qty/balanceQtyEdit.vue new file mode 100644 index 00000000..bfe98e46 --- /dev/null +++ b/mycomponents/qty/balanceQtyEdit.vue @@ -0,0 +1,195 @@ + + + + + diff --git a/mycomponents/qty/compareQty.vue b/mycomponents/qty/compareQty.vue new file mode 100644 index 00000000..f519e3c5 --- /dev/null +++ b/mycomponents/qty/compareQty.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/mycomponents/qty/inspectQtyEdit.vue b/mycomponents/qty/inspectQtyEdit.vue new file mode 100644 index 00000000..874bb484 --- /dev/null +++ b/mycomponents/qty/inspectQtyEdit.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/mycomponents/qty/qty.vue b/mycomponents/qty/qty.vue new file mode 100644 index 00000000..f2d55dcc --- /dev/null +++ b/mycomponents/qty/qty.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/mycomponents/qty/recommendQtyEdit.vue b/mycomponents/qty/recommendQtyEdit.vue new file mode 100644 index 00000000..feadfc8a --- /dev/null +++ b/mycomponents/qty/recommendQtyEdit.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/mycomponents/qty/stdPackQty.vue b/mycomponents/qty/stdPackQty.vue new file mode 100644 index 00000000..6c14c24e --- /dev/null +++ b/mycomponents/qty/stdPackQty.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/mycomponents/qty/stdUom.vue b/mycomponents/qty/stdUom.vue new file mode 100644 index 00000000..03508a7f --- /dev/null +++ b/mycomponents/qty/stdUom.vue @@ -0,0 +1,40 @@ + + + + + + + diff --git a/mycomponents/qty/uom.vue b/mycomponents/qty/uom.vue new file mode 100644 index 00000000..bb138ba3 --- /dev/null +++ b/mycomponents/qty/uom.vue @@ -0,0 +1,40 @@ + + + + + + + diff --git a/mycomponents/recommend/recommend.vue b/mycomponents/recommend/recommend.vue new file mode 100644 index 00000000..e6258c95 --- /dev/null +++ b/mycomponents/recommend/recommend.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/mycomponents/recommend/recommendBalance.vue b/mycomponents/recommend/recommendBalance.vue new file mode 100644 index 00000000..407f87b8 --- /dev/null +++ b/mycomponents/recommend/recommendBalance.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/mycomponents/record/record.vue b/mycomponents/record/record.vue new file mode 100644 index 00000000..bd7e6b1d --- /dev/null +++ b/mycomponents/record/record.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/mycomponents/record/recordBottom.vue b/mycomponents/record/recordBottom.vue new file mode 100644 index 00000000..120265e5 --- /dev/null +++ b/mycomponents/record/recordBottom.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/mycomponents/record/recordComDetailCard.vue b/mycomponents/record/recordComDetailCard.vue new file mode 100644 index 00000000..c4fe3498 --- /dev/null +++ b/mycomponents/record/recordComDetailCard.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/mycomponents/record/recordCommonInfo.vue b/mycomponents/record/recordCommonInfo.vue new file mode 100644 index 00000000..efcd0f76 --- /dev/null +++ b/mycomponents/record/recordCommonInfo.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/mycomponents/record/recordDetailCommonInfo.vue b/mycomponents/record/recordDetailCommonInfo.vue new file mode 100644 index 00000000..7655126f --- /dev/null +++ b/mycomponents/record/recordDetailCommonInfo.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/mycomponents/record/recordFilter.vue b/mycomponents/record/recordFilter.vue new file mode 100644 index 00000000..c3112443 --- /dev/null +++ b/mycomponents/record/recordFilter.vue @@ -0,0 +1,112 @@ + + + + diff --git a/mycomponents/record/recordItemInfo.vue b/mycomponents/record/recordItemInfo.vue new file mode 100644 index 00000000..dc911f51 --- /dev/null +++ b/mycomponents/record/recordItemInfo.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/mycomponents/record/recordListCommonInfo.vue b/mycomponents/record/recordListCommonInfo.vue new file mode 100644 index 00000000..5d8cabe3 --- /dev/null +++ b/mycomponents/record/recordListCommonInfo.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/mycomponents/record/recordListDetailPoup.vue b/mycomponents/record/recordListDetailPoup.vue new file mode 100644 index 00000000..7bbdf298 --- /dev/null +++ b/mycomponents/record/recordListDetailPoup.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/mycomponents/record/recordMainInfo.vue b/mycomponents/record/recordMainInfo.vue new file mode 100644 index 00000000..1c774cf2 --- /dev/null +++ b/mycomponents/record/recordMainInfo.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/mycomponents/record/recordNumber.vue b/mycomponents/record/recordNumber.vue new file mode 100644 index 00000000..94a38499 --- /dev/null +++ b/mycomponents/record/recordNumber.vue @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/mycomponents/record/recordPersonInfo.vue b/mycomponents/record/recordPersonInfo.vue new file mode 100644 index 00000000..628a0a89 --- /dev/null +++ b/mycomponents/record/recordPersonInfo.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/record/recordRequestInfo.vue b/mycomponents/record/recordRequestInfo.vue new file mode 100644 index 00000000..66d18570 --- /dev/null +++ b/mycomponents/record/recordRequestInfo.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/mycomponents/record/recordStatus.vue b/mycomponents/record/recordStatus.vue new file mode 100644 index 00000000..f0a516f7 --- /dev/null +++ b/mycomponents/record/recordStatus.vue @@ -0,0 +1,47 @@ + + + + + + diff --git a/mycomponents/record/recordTop.vue b/mycomponents/record/recordTop.vue new file mode 100644 index 00000000..6c52a50a --- /dev/null +++ b/mycomponents/record/recordTop.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/mycomponents/request/requestBottom.vue b/mycomponents/request/requestBottom.vue new file mode 100644 index 00000000..120265e5 --- /dev/null +++ b/mycomponents/request/requestBottom.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/mycomponents/request/requestComMainCard.vue b/mycomponents/request/requestComMainCard.vue new file mode 100644 index 00000000..0f4ca8a5 --- /dev/null +++ b/mycomponents/request/requestComMainCard.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/mycomponents/request/requestCommonInfo.vue b/mycomponents/request/requestCommonInfo.vue new file mode 100644 index 00000000..4ea47042 --- /dev/null +++ b/mycomponents/request/requestCommonInfo.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/mycomponents/request/requestFilter.vue b/mycomponents/request/requestFilter.vue new file mode 100644 index 00000000..3d1777c5 --- /dev/null +++ b/mycomponents/request/requestFilter.vue @@ -0,0 +1,105 @@ + + + + diff --git a/mycomponents/request/requestItemInfo.vue b/mycomponents/request/requestItemInfo.vue new file mode 100644 index 00000000..dc911f51 --- /dev/null +++ b/mycomponents/request/requestItemInfo.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/mycomponents/request/requestListCommonInfo.vue b/mycomponents/request/requestListCommonInfo.vue new file mode 100644 index 00000000..e9d490a5 --- /dev/null +++ b/mycomponents/request/requestListCommonInfo.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/mycomponents/request/requestMainInfo.vue b/mycomponents/request/requestMainInfo.vue new file mode 100644 index 00000000..1c774cf2 --- /dev/null +++ b/mycomponents/request/requestMainInfo.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/mycomponents/request/requestNumber.vue b/mycomponents/request/requestNumber.vue new file mode 100644 index 00000000..94a38499 --- /dev/null +++ b/mycomponents/request/requestNumber.vue @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/mycomponents/request/requestPersonInfo.vue b/mycomponents/request/requestPersonInfo.vue new file mode 100644 index 00000000..628a0a89 --- /dev/null +++ b/mycomponents/request/requestPersonInfo.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/mycomponents/request/requestRequestInfo.vue b/mycomponents/request/requestRequestInfo.vue new file mode 100644 index 00000000..66d18570 --- /dev/null +++ b/mycomponents/request/requestRequestInfo.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/mycomponents/request/requestStatus.vue b/mycomponents/request/requestStatus.vue new file mode 100644 index 00000000..4d07e6b9 --- /dev/null +++ b/mycomponents/request/requestStatus.vue @@ -0,0 +1,45 @@ + + + + + + diff --git a/mycomponents/request/requestTop.vue b/mycomponents/request/requestTop.vue new file mode 100644 index 00000000..5a49dbe2 --- /dev/null +++ b/mycomponents/request/requestTop.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/mycomponents/scan/winComScan.vue b/mycomponents/scan/winComScan.vue new file mode 100644 index 00000000..315e97ed --- /dev/null +++ b/mycomponents/scan/winComScan.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/mycomponents/scan/winScanAsnNumber.vue b/mycomponents/scan/winScanAsnNumber.vue new file mode 100644 index 00000000..3a0e420d --- /dev/null +++ b/mycomponents/scan/winScanAsnNumber.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/mycomponents/scan/winScanButton.vue b/mycomponents/scan/winScanButton.vue new file mode 100644 index 00000000..fd228659 --- /dev/null +++ b/mycomponents/scan/winScanButton.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/mycomponents/scan/winScanContainer.vue b/mycomponents/scan/winScanContainer.vue new file mode 100644 index 00000000..dcc083b5 --- /dev/null +++ b/mycomponents/scan/winScanContainer.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/mycomponents/scan/winScanItem.vue b/mycomponents/scan/winScanItem.vue new file mode 100644 index 00000000..6b459119 --- /dev/null +++ b/mycomponents/scan/winScanItem.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/mycomponents/scan/winScanJobNumber.vue b/mycomponents/scan/winScanJobNumber.vue new file mode 100644 index 00000000..84d09b86 --- /dev/null +++ b/mycomponents/scan/winScanJobNumber.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/mycomponents/scan/winScanLocation.vue b/mycomponents/scan/winScanLocation.vue new file mode 100644 index 00000000..2b33c512 --- /dev/null +++ b/mycomponents/scan/winScanLocation.vue @@ -0,0 +1,163 @@ + + + + + diff --git a/mycomponents/scan/winScanPack.vue b/mycomponents/scan/winScanPack.vue new file mode 100644 index 00000000..82058c80 --- /dev/null +++ b/mycomponents/scan/winScanPack.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/mycomponents/scan/winScanPackAndLocation.vue b/mycomponents/scan/winScanPackAndLocation.vue new file mode 100644 index 00000000..0a1ae1d1 --- /dev/null +++ b/mycomponents/scan/winScanPackAndLocation.vue @@ -0,0 +1,349 @@ + + + + + diff --git a/mycomponents/scan/winScanProdline.vue b/mycomponents/scan/winScanProdline.vue new file mode 100644 index 00000000..e174fcfd --- /dev/null +++ b/mycomponents/scan/winScanProdline.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/mycomponents/status/balanceStatus.vue b/mycomponents/status/balanceStatus.vue new file mode 100644 index 00000000..19564c36 --- /dev/null +++ b/mycomponents/status/balanceStatus.vue @@ -0,0 +1,70 @@ + + + + + + + + diff --git a/mycomponents/status/status.vue b/mycomponents/status/status.vue new file mode 100644 index 00000000..e884b25e --- /dev/null +++ b/mycomponents/status/status.vue @@ -0,0 +1,41 @@ + + + + + + + + diff --git a/mycomponents/status/statusEdit.vue b/mycomponents/status/statusEdit.vue new file mode 100644 index 00000000..22473275 --- /dev/null +++ b/mycomponents/status/statusEdit.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/mycomponents/transfer/comTransferReceipt.vue b/mycomponents/transfer/comTransferReceipt.vue new file mode 100644 index 00000000..1c9ba308 --- /dev/null +++ b/mycomponents/transfer/comTransferReceipt.vue @@ -0,0 +1,62 @@ + + + + + + diff --git a/mycomponents/wincom/basicCom/winHint.vue b/mycomponents/wincom/basicCom/winHint.vue new file mode 100644 index 00000000..e9945cb3 --- /dev/null +++ b/mycomponents/wincom/basicCom/winHint.vue @@ -0,0 +1,70 @@ + + + + + \ No newline at end of file diff --git a/mycomponents/wincom/winScanContainerNumber.vue b/mycomponents/wincom/winScanContainerNumber.vue new file mode 100644 index 00000000..642e62a4 --- /dev/null +++ b/mycomponents/wincom/winScanContainerNumber.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..30ac86f2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,397 @@ +{ + "name": "hello-uniapp", + "version": "3.4.4", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "hello-uniapp", + "version": "3.4.4", + "license": "MIT", + "dependencies": { + "axios": "^1.3.4", + "decimal.js": "^10.4.3", + "jwt-decode": "^3.1.2", + "vue-clipboard2": "^0.3.3" + }, + "devDependencies": { + "browserslist": "^4.21.9", + "caniuse-lite": "^1.0.30001515" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.455", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz", + "integrity": "sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vue-clipboard2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz", + "integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==", + "dependencies": { + "clipboard": "^2.0.0" + } + } + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "browserslist": { + "version": "4.21.9", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "caniuse-lite": { + "version": "1.0.30001515", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "dev": true + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "electron-to-chromium": { + "version": "1.4.455", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz", + "integrity": "sha512-8tgdX0Odl24LtmLwxotpJCVjIndN559AvaOtd67u+2mo+IDsgsTF580NB+uuDCqsHw8yFg53l5+imFV9Fw3cbA==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "requires": { + "delegate": "^3.1.2" + } + }, + "jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "vue-clipboard2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/vue-clipboard2/-/vue-clipboard2-0.3.3.tgz", + "integrity": "sha512-aNWXIL2DKgJyY/1OOeITwAQz1fHaCIGvUFHf9h8UcoQBG5a74MkdhS/xqoYe7DNZdQmZRL+TAdIbtUs9OyVjbw==", + "requires": { + "clipboard": "^2.0.0" + } + } + } +} diff --git a/package.json b/package.json index e5def356..ff5c00f6 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,114 @@ { + "id": "hello-uniapp", + "name": "hello-uniapp", + "displayName": "hello-uniapp 示例工程", + "version": "3.4.4", + "description": "uni-app 框架示例,一套代码,同时发行到iOS、Android、H5、小程序等多个平台,请使用手机扫码快速体验 uni-app 的强大功能", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": "https://github.com/dcloudio/hello-uniapp.git", + "keywords": [ + "hello-uniapp", + "uni-app", + "uni-ui", + "示例工程" + ], + "author": "", + "license": "MIT", + "bugs": { + "url": "https://github.com/dcloudio/hello-uniapp/issues" + }, + "homepage": "https://github.com/dcloudio/hello-uniapp#readme", "dependencies": { - "crypto-js": "^4.0.0" + "axios": "^1.3.4", + "decimal.js": "^10.4.3", + "jwt-decode": "^3.1.2", + "vue-clipboard2": "^0.3.3" + }, + "dcloudext": { + "category": [ + "前端页面模板", + "uni-app前端项目模板" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "京东": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + }, + "uni-app": { + "scripts": { + "mp-dingtalk": { + "title": "钉钉小程序", + "env": { + "UNI_PLATFORM": "mp-alipay" + }, + "define": { + "MP-DINGTALK": true + } + } + } + }, + "devDependencies": { + "browserslist": "^4.21.9", + "caniuse-lite": "^1.0.30001515" } } diff --git a/pages.json b/pages.json index 5c19f74b..4f7494a2 100644 --- a/pages.json +++ b/pages.json @@ -1,97 +1,1728 @@ { - "pages": [{ - "path": "pages/login", - "style": { - "navigationBarTitleText": "登录" - } - }, { - "path": "pages/index", - "style": { - "navigationBarTitleText": "闻荫移动端框架", - "navigationStyle": "custom" - } - }, { - "path": "pages/work/index", - "style": { - "navigationBarTitleText": "工作台" - } - }, { - "path": "pages/mine/index", - "style": { - "navigationBarTitleText": "我的" - } - }, { - "path": "pages/mine/avatar/index", - "style": { - "navigationBarTitleText": "修改头像" - } - }, { - "path": "pages/mine/info/index", - "style": { - "navigationBarTitleText": "个人信息" - } - }, { - "path": "pages/mine/info/edit", - "style": { - "navigationBarTitleText": "编辑资料" - } - }, { - "path": "pages/mine/pwd/index", - "style": { - "navigationBarTitleText": "修改密码" - } - }, { - "path": "pages/mine/setting/index", - "style": { - "navigationBarTitleText": "应用设置" - } - }, { - "path": "pages/mine/help/index", - "style": { - "navigationBarTitleText": "常见问题" - } - }, { - "path": "pages/mine/about/index", - "style": { - "navigationBarTitleText": "关于我们" - } - }, { - "path": "pages/common/webview/index", - "style": { - "navigationBarTitleText": "浏览网页" - } - }, { - "path": "pages/common/textview/index", - "style": { - "navigationBarTitleText": "浏览文本" - } - }], - "tabBar": { - "color": "#000000", - "selectedColor": "#000000", - "borderStyle": "white", - "backgroundColor": "#ffffff", - "list": [{ - "pagePath": "pages/index", - "iconPath": "static/images/tabbar/home.png", - "selectedIconPath": "static/images/tabbar/home_.png", - "text": "首页" - }, { - "pagePath": "pages/work/index", - "iconPath": "static/images/tabbar/work.png", - "selectedIconPath": "static/images/tabbar/work_.png", - "text": "工作台" - }, { - "pagePath": "pages/mine/index", - "iconPath": "static/images/tabbar/mine.png", - "selectedIconPath": "static/images/tabbar/mine_.png", - "text": "我的" - } - ] - }, - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "RuoYi", - "navigationBarBackgroundColor": "#FFFFFF" - } + + "pages": [{ + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "WMS仓库管理系统-移动端", + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, + { + "path": "pages/message/index", + "style": { + "navigationBarTitleText": "消息", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/mine/index", + "style": { + "navigationBarTitleText": "设置", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/mine/avatar/index", + "style": { + "navigationBarTitleText": "修改头像" + } + }, { + "path": "pages/mine/info/index", + "style": { + "navigationBarTitleText": "个人信息" + } + }, { + "path": "pages/mine/info/edit", + "style": { + "navigationBarTitleText": "编辑资料" + } + }, { + "path": "pages/mine/pwd/index", + "style": { + "navigationBarTitleText": "修改密码" + } + }, { + "path": "pages/mine/setting/index", + "style": { + "navigationBarTitleText": "应用设置" + } + }, { + "path": "pages/mine/help/index", + "style": { + "navigationBarTitleText": "常见问题" + } + }, { + "path": "pages/mine/about/index", + "style": { + "navigationBarTitleText": "关于我们" + } + }, + { + "path": "pages/common/webview/index", + "style": { + "navigationBarTitleText": "浏览网页" + } + }, { + "path": "pages/common/textview/index", + "style": { + "navigationBarTitleText": "浏览文本" + } + }, + { + "path": "pages/home/index", + "style": { + "navigationBarTitleText": "WMS仓库管理系统-移动端", + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, + { + "path": "pages/login/index", + "style": { + "navigationBarTitleText": "登录", + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, + + { + "path": "pages/demo/demo", + "style": { + "navigationBarTitleText": "组件", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/purchaseReturn/record/returnRecord", + "style": { + "navigationBarTitleText": "采购退货记录", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/purchaseReturn/request/returnRequest", + "style": { + "navigationBarTitleText": "采购退货申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/purchaseReturn/request/returnRequestDetail", + "style": { + "navigationBarTitleText": "采购退货申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/purchaseReturn/job/returnJob", + "style": { + "navigationBarTitleText": "采购退货", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/purchaseReturn/job/returnDetail", + "style": { + "navigationBarTitleText": "退货任务详情", + "enablePullDownRefresh": true + // "titleNView": { + // "autoBackButton": "true" + // } + } + }, + { + "path": "pages/purchaseReceipt/job/receiptJob", + "style": { + "navigationBarTitleText": "采购收货", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/purchaseReceipt/job/receiptDetail", + "style": { + "navigationBarTitleText": "采购收货任务详情", + "enablePullDownRefresh": true + } + }, + + { + "path": "pages/inspect/job/inspectJob", + "style": { + "navigationBarTitleText": "到货检验", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/inspect/job/inspectDetail", + "style": { + "navigationBarTitleText": "到货检验详情", + "enablePullDownRefresh": true + } + }, + + { + "path": "pages/putaway/job/putawayJob", + "style": { + "navigationBarTitleText": "原料上架", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/putaway/job/putawayDetail", + "style": { + "navigationBarTitleText": "原料上架详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/putaway/record/putawayRecord", + "style": { + "navigationBarTitleText": "原料上架", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/putaway/request/putawayRequest", + "style": { + "navigationBarTitleText": "原料上架申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/putaway/request/putawayRequestDetail", + "style": { + "navigationBarTitleText": "原料上架申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/productionReceipt/job/productionReceiptJob", + "style": { + "navigationBarTitleText": "生产收料", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productionReceipt/job/productionReceiptDetail", + "style": { + "navigationBarTitleText": "生产收料详细" + + } + }, + { + "path": "pages/productionReceipt/record/productionReceiptRecord", + "style": { + "navigationBarTitleText": "生产收料记录" + + } + }, + + { + "path": "pages/issue/job/issueJob", + "style": { + "navigationBarTitleText": "发料任务", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/repleinsh/job/repleinshJob", + "style": { + "navigationBarTitleText": "补料任务", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/repleinsh/job/repleinshDetail", + "style": { + "navigationBarTitleText": "补料详情", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true" + } + } + }, + { + "path": "pages/repleinsh/record/repleinshRecord", + "style": { + "navigationBarTitleText": "补料记录", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true" + } + } + }, + { + "path": "pages/issue/record/issueRecord", + "style": { + "navigationBarTitleText": "直接发料", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true" + } + } + }, + { + "path": "pages/issue/job/issueDetail", + "style": { + "navigationBarTitleText": "发料任务详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/issue/request/issueRequest", + "style": { + "navigationBarTitleText": "发料申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/issue/request/issueRequestDetail", + "style": { + "navigationBarTitleText": "发料申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/productionReturn/job/returnJob", + "style": { + "navigationBarTitleText": "生产退料", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productionReturn/job/returnDetail", + "style": { + "navigationBarTitleText": "生产退料详细", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/productionReturn/record/returnToStore", + "style": { + "navigationBarTitleText": "合格退料", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/productionReturn/record/returnToHold", + "style": { + "navigationBarTitleText": "隔离退料", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/productionReturn/request/returnToStoreRequest", + "style": { + "navigationBarTitleText": "生产退料合格申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productionReturn/request/returnToHoldRequest", + "style": { + "navigationBarTitleText": "生产退料隔离申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/productionReturn/request/requestDetail", + "style": { + "navigationBarTitleText": "生产退料详情", + "enablePullDownRefresh": false + } + }, + + + + + + { + "path": "pages/query/item", + "style": { + "enablePullDownRefresh": false, // 是否配置下拉刷新的功能 + "navigationBarTitleText": "按零件查询库存", + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, + { + "path": "pages/query/location", + "style": { + "navigationBarTitleText": "按库位查询库存", + "enablePullDownRefresh": false, + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, { + "path": "pages/query/number", + "style": { + "navigationBarTitleText": "按库位查询库存", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, { + "path": "pages/query/container", + "style": { + "navigationBarTitleText": "按器具查询库存", + "enablePullDownRefresh": true, + "titleNView": { + "autoBackButton": "true", + "buttons": [{}] + } + } + }, + { + "path": "pages/supplierDeliver/record/supplierDeliverRecord", + "style": { + "navigationBarTitleText": "供应商发货记录", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/supplierDeliver/record/supplierDeliverRecordDetail", + "style": { + "navigationBarTitleText": "供应商发货记录详情", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inspect/request/inspectRequest", + "style": { + "navigationBarTitleText": "检验单申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inspect/request/inspectRequestDetail", + "style": { + "navigationBarTitleText": "检验单申请详情", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inspect/job/inspectResult", + "style": { + "navigationBarTitleText": "检验结果", + "enablePullDownRefresh": true + } + }, + + + + { + "path": "pages/inventoryMove/job/inventoryMoveJob", + "style": { + "navigationBarTitleText": "库存转移", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/job/inventoryMoveDetail", + "style": { + "navigationBarTitleText": "库存转移详细", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inventoryMove/job/okToHoldMoveJob", + "style": { + "navigationBarTitleText": "合格转隔离", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/job/holdToOkMoveJob", + "style": { + "navigationBarTitleText": "隔离转合格", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/job/okToScrapMoveJob", + "style": { + "navigationBarTitleText": "合格转报废", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/job/HoldToScrapMoveJob", + "style": { + "navigationBarTitleText": "隔离转报废", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/job/scrapToHoldMoveJob", + "style": { + "navigationBarTitleText": "报废转隔离", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/inventoryMove/record/scrapToHoldMoveRecord", + "style": { + "navigationBarTitleText": "报废转隔离记录", + "enablePullDownRefresh": true + } + }, + + + { + "path": "pages/inventoryMove/record/moveFreeRecord", + "style": { + "navigationBarTitleText": "库存转移记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inventoryMove/record/moveOkToHoldRecord", + "style": { + "navigationBarTitleText": "合格转隔离记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inventoryMove/record/moveHoldToOkRecord", + "style": { + "navigationBarTitleText": "隔离转合格记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inventoryMove/record/holdToScrapRecord", + "style": { + "navigationBarTitleText": "隔离转报废记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/inventoryMove/record/oktoScrapRecord", + "style": { + "navigationBarTitleText": "合格转报废记录", + "enablePullDownRefresh": true + } + }, + + + { + "path": "pages/transfer/job/receiptJob", + "style": { + "navigationBarTitleText": "调拨接收任务", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/transfer/job/receiptDetail", + "style": { + "navigationBarTitleText": "调拨接收详情", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/transfer/record/receiptRecord", + "style": { + "navigationBarTitleText": "调拨接收记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/transfer/job/issueJob", + "style": { + "navigationBarTitleText": "调拨发货任务", + "enablePullDownRefresh": true, + "titleNView": { + "buttons": [{ + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/transfer/record/issueRecord", + "style": { + "navigationBarTitleText": "调拨发出记录", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/transfer/job/issueDetail", + "style": { + "navigationBarTitleText": "调拨发出详细", + "enablePullDownRefresh": true + } + }, + { + "path": "pages/count/job/countJob", + "style": { + "navigationBarTitleText": "盘点任务", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/count/job/countDetail", + "style": { + "navigationBarTitleText": "盘点详细", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/count/record/countRecord", + "style": { + "navigationBarTitleText": "按库位盘点", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/productReceipt/job/productReceiptJob", + "style": { + "navigationBarTitleText": "制品收货任务", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productReceipt/record/productReceiptRecord", + "style": { + "navigationBarTitleText": "制品收货记录", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/productReceipt/job/productReceiptDetail", + "style": { + "navigationBarTitleText": "制品收货详情", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/productPutaway/job/productPutawayJob", + "style": { + "navigationBarTitleText": "制品上架任务", + "enablePullDownRefresh": true, + "titleNView": { + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productPutaway/job/productPutawayDetail", + "style": { + "navigationBarTitleText": "制品上架详情", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/productPutaway/record/productPutawayRecord", + "style": { + "navigationBarTitleText": "制品上架记录", + "enablePullDownRefresh": false + + } + }, + + { + "path": "pages/productPutaway/request/putawayRequest", + "style": { + "navigationBarTitleText": "制品上架申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/productPutaway/request/putawayRequestDetail", + "style": { + "navigationBarTitleText": "制品上架申请详情", + "enablePullDownRefresh": false + + } + }, + + { + "path": "pages/productDismantle/job/productDismantleJob", + "style": { + "navigationBarTitleText": "制品拆解", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/productDismantle/job/productDismantleDetail", + "style": { + "navigationBarTitleText": "制品拆解任务详情", + "enablePullDownRefresh": false + + } + }, + { + "path": "pages/productDismantle/record/productDismantleRecord", + "style": { + "navigationBarTitleText": "制品拆解记录", + "enablePullDownRefresh": false + + } + }, + + + + + + + + //productPutawayDetail + // { + // "path": "test/winScanStandardTest", + // "style": { + // "navigationBarTitleText": "扫描控件测试", + // "enablePullDownRefresh": false + // } + // }, + { + "path": "pages/unPlanned/job/receiptJob", + "style": { + "navigationBarTitleText": "计划外入库任务", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + + { + "path": "pages/unPlanned/job/receiptJobDetail", + "style": { + "navigationBarTitleText": "计划外入库详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/unPlanned/request/receiptRequest", + "style": { + "navigationBarTitleText": "计划外入库申请", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/unPlanned/request/receiptRequestDetail", + "style": { + "navigationBarTitleText": "计划外入库申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/unPlanned/job/issueJob", + "style": { + "navigationBarTitleText": "计划外出库任务", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/unPlanned/job/issueJobDetail", + "style": { + "navigationBarTitleText": "计划外出库详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/unPlanned/request/issueRequest", + "style": { + "navigationBarTitleText": "计划外出库申请", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/unPlanned/request/issueRequestDetail", + "style": { + "navigationBarTitleText": "计划外出库申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/unPlanned/record/receiptRecord", + "style": { + "navigationBarTitleText": "计划外入库记录", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/unPlanned/record/issueRecord", + "style": { + "navigationBarTitleText": "计划外出库记录", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/deliver/job/deliverJob", + "style": { + "navigationBarTitleText": "制品发货任务", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/deliver/job/deliverDetail", + "style": { + "navigationBarTitleText": "制品发货详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/deliver/record/deliverRecord", + "style": { + "navigationBarTitleText": "制品发货记录", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/deliver/request/deliverRequest", + "style": { + "navigationBarTitleText": "成品发货申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/deliver/request/deliverRequestDetail", + "style": { + "navigationBarTitleText": "成品发货申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/customerReturn/job/returnJob", + "style": { + "navigationBarTitleText": "客户退货任务", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/customerReturn/job/returnDetail", + "style": { + "navigationBarTitleText": "客户退货详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/customerReturn/record/returnRecord", + "style": { + "navigationBarTitleText": "客户退货记录", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/customerReturn/request/customerReturnRequest", + "style": { + "navigationBarTitleText": "客户退货申请", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/customerReturn/request/customerReturnRequestDetail", + "style": { + "navigationBarTitleText": "客户退货申请详情", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/scrap/record/scrapRecord", + "style": { + "navigationBarTitleText": "报废出库", + "enablePullDownRefresh": false + } + }, + + { + "path": "pages/scrap/job/scrapJob", + "style": { + "navigationBarTitleText": "报废出库", + "enablePullDownRefresh": true, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/scrap/job/scrapJobDetail", + "style": { + "navigationBarTitleText": "报废出库任务详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/scrap/request/scrapRrequest", + "style": { + "navigationBarTitleText": "报废出库申请", + "enablePullDownRefresh": false, + "titleNView": { + // "autoBackButton": "true", + "buttons": [ + // 右边按钮 + { + "float": "right", + "fontSize": "23px", //按钮上文字的大小 + "text": "\ue7c6", + "fontSrc": "/static/iconfont/iconfont.ttf" + }, + { + + "float": "right", + "fontSize": "21px", //按钮上文字的大小 + "text": "\ue6e2", + "fontSrc": "/static/iconfont/iconfont.ttf" + } + ] + } + } + }, + { + "path": "pages/scrap/request/scrapRequestDetail", + "style": { + "navigationBarTitleText": "报废出库申请详情", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/pallet/record/bindPalletRecord", + "style": { + "navigationBarTitleText": "托盘绑定", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/pallet/record/unBindPalletRecord", + "style": { + "navigationBarTitleText": "托盘解绑", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/package/record/splitPackageRecord", + "style": { + "navigationBarTitleText": "拆包", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/package/record/mergePackageRecord", + "style": { + "navigationBarTitleText": "合包", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/package/record/overPackageRecord", + "style": { + "navigationBarTitleText": "翻包", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/setter/index", + "style": { + "navigationBarTitleText": "设置", + "enablePullDownRefresh": false + } + }, + { + "path": "pages/setter/passwordpage", + "style": { + "navigationBarTitleText": "修改密码", + "enablePullDownRefresh": false + } + } + + ], + + "globalStyle": { + "navigationBarTextStyle": "white", + "navigationBarTitleText": "WMS仓库管理系统-移动端", + "navigationBarBackgroundColor": "#3C9CFF !important", + "h5": { + "maxWidth": 1190, + "navigationBarTextStyle": "white", + "navigationBarBackgroundColor": "#3C9CFF !important" + }, + //增加返回首页 + "titleNView": { + "autoBackButton": "true", + "buttons": [{ + "float": "right", + "text": "\ue7c6", + "fontSrc": "/static/icon/iconfont.ttf", + "fontSize": "22px" + }] + }, + "softinputMode": "adjustPan" //adjustResize + }, + "tabBar": { + "color": "#7A7E83", + "selectedColor": "#2678f2", + "borderStyle": "black", + "backgroundColor": "#ffffff", + "list": [{ + "pagePath": "pages/index/index", + "iconPath": "static/bar/sy.png", + "selectedIconPath": "static/bar/sya.png", + "text": "首页" + }, + { + "pagePath": "pages/message/index", + "iconPath": "static/bar/xx.png", + "selectedIconPath": "static/bar/xxa.png", + "text": "消息" + }, { + "pagePath": "pages/setter/index", + "iconPath": "static/bar/sz.png", + "selectedIconPath": "static/bar/sza.png", + "text": "设置" + } + ] + } } diff --git a/pages/API/action-sheet/action-sheet.vue b/pages/API/action-sheet/action-sheet.vue new file mode 100644 index 00000000..90c035d8 --- /dev/null +++ b/pages/API/action-sheet/action-sheet.vue @@ -0,0 +1,60 @@ + + diff --git a/pages/API/add-phone-contact/add-phone-contact.vue b/pages/API/add-phone-contact/add-phone-contact.vue new file mode 100644 index 00000000..f4c39a37 --- /dev/null +++ b/pages/API/add-phone-contact/add-phone-contact.vue @@ -0,0 +1,102 @@ + + + + diff --git a/pages/API/animation/animation.vue b/pages/API/animation/animation.vue new file mode 100644 index 00000000..379858d2 --- /dev/null +++ b/pages/API/animation/animation.vue @@ -0,0 +1,125 @@ + + + + diff --git a/pages/API/background-audio/background-audio.vue b/pages/API/background-audio/background-audio.vue new file mode 100644 index 00000000..5a3315e2 --- /dev/null +++ b/pages/API/background-audio/background-audio.vue @@ -0,0 +1,163 @@ + + + + diff --git a/pages/API/bluetooth/bluetooth.vue b/pages/API/bluetooth/bluetooth.vue new file mode 100644 index 00000000..d9bc4dad --- /dev/null +++ b/pages/API/bluetooth/bluetooth.vue @@ -0,0 +1,723 @@ + + + + diff --git a/pages/API/brightness/brightness.vue b/pages/API/brightness/brightness.vue new file mode 100644 index 00000000..a0c9e125 --- /dev/null +++ b/pages/API/brightness/brightness.vue @@ -0,0 +1,86 @@ + + + + diff --git a/pages/API/canvas/canvas.vue b/pages/API/canvas/canvas.vue new file mode 100644 index 00000000..f0f34a12 --- /dev/null +++ b/pages/API/canvas/canvas.vue @@ -0,0 +1,366 @@ + + + + diff --git a/pages/API/choose-location/choose-location.vue b/pages/API/choose-location/choose-location.vue new file mode 100644 index 00000000..3b30801c --- /dev/null +++ b/pages/API/choose-location/choose-location.vue @@ -0,0 +1,62 @@ + + + + diff --git a/pages/API/clipboard/clipboard.vue b/pages/API/clipboard/clipboard.vue new file mode 100644 index 00000000..648fc4df --- /dev/null +++ b/pages/API/clipboard/clipboard.vue @@ -0,0 +1,91 @@ + + + + + + diff --git a/pages/API/download-file/download-file.vue b/pages/API/download-file/download-file.vue new file mode 100644 index 00000000..2e1ddcd7 --- /dev/null +++ b/pages/API/download-file/download-file.vue @@ -0,0 +1,63 @@ + + + + diff --git a/pages/API/file/file.vue b/pages/API/file/file.vue new file mode 100644 index 00000000..43d6cca9 --- /dev/null +++ b/pages/API/file/file.vue @@ -0,0 +1,129 @@ + + + + diff --git a/pages/API/full-screen-video-ad/full-screen-video-ad.vue b/pages/API/full-screen-video-ad/full-screen-video-ad.vue new file mode 100644 index 00000000..5224ed82 --- /dev/null +++ b/pages/API/full-screen-video-ad/full-screen-video-ad.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/API/get-location/get-location.vue b/pages/API/get-location/get-location.vue new file mode 100644 index 00000000..26dfd16c --- /dev/null +++ b/pages/API/get-location/get-location.vue @@ -0,0 +1,186 @@ + + + + diff --git a/pages/API/get-network-type/get-network-type.vue b/pages/API/get-network-type/get-network-type.vue new file mode 100644 index 00000000..740d99ea --- /dev/null +++ b/pages/API/get-network-type/get-network-type.vue @@ -0,0 +1,86 @@ + + + + diff --git a/pages/API/get-node-info/get-node-info.vue b/pages/API/get-node-info/get-node-info.vue new file mode 100644 index 00000000..870ab167 --- /dev/null +++ b/pages/API/get-node-info/get-node-info.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/pages/API/get-system-info/get-system-info.vue b/pages/API/get-system-info/get-system-info.vue new file mode 100644 index 00000000..feac3b54 --- /dev/null +++ b/pages/API/get-system-info/get-system-info.vue @@ -0,0 +1,148 @@ + + + + diff --git a/pages/API/get-user-info/get-user-info.vue b/pages/API/get-user-info/get-user-info.vue new file mode 100644 index 00000000..f3ac9284 --- /dev/null +++ b/pages/API/get-user-info/get-user-info.vue @@ -0,0 +1,165 @@ + + + + diff --git a/pages/API/ibeacon/ibeacon.vue b/pages/API/ibeacon/ibeacon.vue new file mode 100644 index 00000000..0b19e4fd --- /dev/null +++ b/pages/API/ibeacon/ibeacon.vue @@ -0,0 +1,300 @@ + + + + diff --git a/pages/API/image/image.vue b/pages/API/image/image.vue new file mode 100644 index 00000000..24279391 --- /dev/null +++ b/pages/API/image/image.vue @@ -0,0 +1,239 @@ + + + + diff --git a/pages/API/inner-audio/inner-audio.vue b/pages/API/inner-audio/inner-audio.vue new file mode 100644 index 00000000..ba6a2c26 --- /dev/null +++ b/pages/API/inner-audio/inner-audio.vue @@ -0,0 +1,124 @@ + + + diff --git a/pages/API/intersection-observer/intersection-observer.vue b/pages/API/intersection-observer/intersection-observer.vue new file mode 100644 index 00000000..80e5d9b6 --- /dev/null +++ b/pages/API/intersection-observer/intersection-observer.vue @@ -0,0 +1,69 @@ + + + diff --git a/pages/API/login/login.vue b/pages/API/login/login.vue new file mode 100644 index 00000000..9ab812f6 --- /dev/null +++ b/pages/API/login/login.vue @@ -0,0 +1,322 @@ + + + + diff --git a/pages/API/make-phone-call/make-phone-call.vue b/pages/API/make-phone-call/make-phone-call.vue new file mode 100644 index 00000000..0e3cdee0 --- /dev/null +++ b/pages/API/make-phone-call/make-phone-call.vue @@ -0,0 +1,50 @@ + + + + diff --git a/pages/API/map-search/map-search.nvue b/pages/API/map-search/map-search.nvue new file mode 100644 index 00000000..9dc8ef61 --- /dev/null +++ b/pages/API/map-search/map-search.nvue @@ -0,0 +1,102 @@ + + + + + diff --git a/pages/API/map/map.nvue b/pages/API/map/map.nvue new file mode 100644 index 00000000..e9d0d4cd --- /dev/null +++ b/pages/API/map/map.nvue @@ -0,0 +1,447 @@ + + + + + diff --git a/pages/API/modal/modal.vue b/pages/API/modal/modal.vue new file mode 100644 index 00000000..65dff736 --- /dev/null +++ b/pages/API/modal/modal.vue @@ -0,0 +1,40 @@ + + \ No newline at end of file diff --git a/pages/API/navigator/navigator.vue b/pages/API/navigator/navigator.vue new file mode 100644 index 00000000..b58504f0 --- /dev/null +++ b/pages/API/navigator/navigator.vue @@ -0,0 +1,105 @@ + + diff --git a/pages/API/navigator/new-page/new-nvue-page-1.nvue b/pages/API/navigator/new-page/new-nvue-page-1.nvue new file mode 100644 index 00000000..5c25cea9 --- /dev/null +++ b/pages/API/navigator/new-page/new-nvue-page-1.nvue @@ -0,0 +1,83 @@ + + + diff --git a/pages/API/navigator/new-page/new-nvue-page-2.nvue b/pages/API/navigator/new-page/new-nvue-page-2.nvue new file mode 100644 index 00000000..a5d07800 --- /dev/null +++ b/pages/API/navigator/new-page/new-nvue-page-2.nvue @@ -0,0 +1,69 @@ + + + diff --git a/pages/API/navigator/new-page/new-vue-page-1.vue b/pages/API/navigator/new-page/new-vue-page-1.vue new file mode 100644 index 00000000..0b6c608a --- /dev/null +++ b/pages/API/navigator/new-page/new-vue-page-1.vue @@ -0,0 +1,108 @@ + + + diff --git a/pages/API/navigator/new-page/new-vue-page-2.vue b/pages/API/navigator/new-page/new-vue-page-2.vue new file mode 100644 index 00000000..925badd9 --- /dev/null +++ b/pages/API/navigator/new-page/new-vue-page-2.vue @@ -0,0 +1,84 @@ + + + diff --git a/pages/API/on-accelerometer-change/on-accelerometer-change.vue b/pages/API/on-accelerometer-change/on-accelerometer-change.vue new file mode 100644 index 00000000..0565b422 --- /dev/null +++ b/pages/API/on-accelerometer-change/on-accelerometer-change.vue @@ -0,0 +1,62 @@ + + diff --git a/pages/API/rewarded-video-ad/rewarded-video-ad.vue b/pages/API/rewarded-video-ad/rewarded-video-ad.vue new file mode 100644 index 00000000..a6d7b992 --- /dev/null +++ b/pages/API/rewarded-video-ad/rewarded-video-ad.vue @@ -0,0 +1,109 @@ + + + + + diff --git a/pages/API/save-media/save-media.vue b/pages/API/save-media/save-media.vue new file mode 100644 index 00000000..9b30d563 --- /dev/null +++ b/pages/API/save-media/save-media.vue @@ -0,0 +1,158 @@ + + + + diff --git a/pages/API/scan-code/scan-code.vue b/pages/API/scan-code/scan-code.vue new file mode 100644 index 00000000..89006deb --- /dev/null +++ b/pages/API/scan-code/scan-code.vue @@ -0,0 +1,76 @@ + + + + diff --git a/pages/API/set-navigation-bar-title/set-navigation-bar-title.test.js b/pages/API/set-navigation-bar-title/set-navigation-bar-title.test.js new file mode 100644 index 00000000..4023b732 --- /dev/null +++ b/pages/API/set-navigation-bar-title/set-navigation-bar-title.test.js @@ -0,0 +1,22 @@ + +describe('pages/API/set-navigation-bar-title/set-navigation-bar-title.vue', () => { + let page + beforeAll(async () => { + // 重新reLaunch至首页,并获取首页page对象(其中 program 是uni-automator自动注入的全局对象) + page = await program.reLaunch('/pages/API/set-navigation-bar-title/set-navigation-bar-title') + + if (process.env.UNI_PLATFORM === "mp-weixin") { + await page.waitFor(10000) + } else { + await page.waitFor(5000) + } + + page = await program.currentPage() + + }) + + it('set-navigation-bar-title 组件标题', async () => { + let view = await page.$('.common-page-head-title') + expect(await view.text()).toBe('nav-default') + }) +}) diff --git a/pages/API/set-navigation-bar-title/set-navigation-bar-title.vue b/pages/API/set-navigation-bar-title/set-navigation-bar-title.vue new file mode 100644 index 00000000..58546212 --- /dev/null +++ b/pages/API/set-navigation-bar-title/set-navigation-bar-title.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/pages/API/share/share.vue b/pages/API/share/share.vue new file mode 100644 index 00000000..a56f017b --- /dev/null +++ b/pages/API/share/share.vue @@ -0,0 +1,293 @@ + + + + + diff --git a/pages/inspect/coms/inspectInfoPopup.vue b/pages/inspect/coms/inspectInfoPopup.vue new file mode 100644 index 00000000..8a73d011 --- /dev/null +++ b/pages/inspect/coms/inspectInfoPopup.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/pages/inspect/coms/requestDetailInfoPopup.vue b/pages/inspect/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..8bc5c446 --- /dev/null +++ b/pages/inspect/coms/requestDetailInfoPopup.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/pages/inspect/coms/requestInfoPopup.vue b/pages/inspect/coms/requestInfoPopup.vue new file mode 100644 index 00000000..206213ae --- /dev/null +++ b/pages/inspect/coms/requestInfoPopup.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/pages/inspect/coms/uploadCamera.vue b/pages/inspect/coms/uploadCamera.vue new file mode 100644 index 00000000..b1f0857f --- /dev/null +++ b/pages/inspect/coms/uploadCamera.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/pages/inspect/job/inspectDetail.vue b/pages/inspect/job/inspectDetail.vue new file mode 100644 index 00000000..3bb140da --- /dev/null +++ b/pages/inspect/job/inspectDetail.vue @@ -0,0 +1,505 @@ + + + + + + diff --git a/pages/inspect/job/inspectJob.vue b/pages/inspect/job/inspectJob.vue new file mode 100644 index 00000000..6a422185 --- /dev/null +++ b/pages/inspect/job/inspectJob.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/pages/inspect/job/inspectResult.vue b/pages/inspect/job/inspectResult.vue new file mode 100644 index 00000000..83cc5862 --- /dev/null +++ b/pages/inspect/job/inspectResult.vue @@ -0,0 +1,368 @@ + + + + + diff --git a/pages/inspect/request/inspectRequest.vue b/pages/inspect/request/inspectRequest.vue new file mode 100644 index 00000000..4f4b601c --- /dev/null +++ b/pages/inspect/request/inspectRequest.vue @@ -0,0 +1,257 @@ + + + + + diff --git a/pages/inspect/request/inspectRequestDetail.vue b/pages/inspect/request/inspectRequestDetail.vue new file mode 100644 index 00000000..e199c93a --- /dev/null +++ b/pages/inspect/request/inspectRequestDetail.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/pages/inventoryMove/coms/comInventoryDetailCard.vue b/pages/inventoryMove/coms/comInventoryDetailCard.vue new file mode 100644 index 00000000..bf62fc3e --- /dev/null +++ b/pages/inventoryMove/coms/comInventoryDetailCard.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/pages/inventoryMove/coms/comInventoryJobCard.vue b/pages/inventoryMove/coms/comInventoryJobCard.vue new file mode 100644 index 00000000..81e61e52 --- /dev/null +++ b/pages/inventoryMove/coms/comInventoryJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/inventoryMove/coms/comMove.vue b/pages/inventoryMove/coms/comMove.vue new file mode 100644 index 00000000..164913b5 --- /dev/null +++ b/pages/inventoryMove/coms/comMove.vue @@ -0,0 +1,285 @@ + + + + + diff --git a/pages/inventoryMove/coms/comMoveJob.vue b/pages/inventoryMove/coms/comMoveJob.vue new file mode 100644 index 00000000..7e4ab8f1 --- /dev/null +++ b/pages/inventoryMove/coms/comMoveJob.vue @@ -0,0 +1,332 @@ + + + + + diff --git a/pages/inventoryMove/coms/comMoveRecord.vue b/pages/inventoryMove/coms/comMoveRecord.vue new file mode 100644 index 00000000..b7e9a40c --- /dev/null +++ b/pages/inventoryMove/coms/comMoveRecord.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/pages/inventoryMove/coms/comMovebalance.vue b/pages/inventoryMove/coms/comMovebalance.vue new file mode 100644 index 00000000..e4943e21 --- /dev/null +++ b/pages/inventoryMove/coms/comMovebalance.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/pages/inventoryMove/coms/detailInfoPopup.vue b/pages/inventoryMove/coms/detailInfoPopup.vue new file mode 100644 index 00000000..72340688 --- /dev/null +++ b/pages/inventoryMove/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/inventoryMove/coms/jobInfoPopup.vue b/pages/inventoryMove/coms/jobInfoPopup.vue new file mode 100644 index 00000000..7b02b6ab --- /dev/null +++ b/pages/inventoryMove/coms/jobInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/inventoryMove/coms/jobListPopup.vue b/pages/inventoryMove/coms/jobListPopup.vue new file mode 100644 index 00000000..59ace1d4 --- /dev/null +++ b/pages/inventoryMove/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/inventoryMove/job/HoldToScrapMoveJob.vue b/pages/inventoryMove/job/HoldToScrapMoveJob.vue new file mode 100644 index 00000000..410b2abf --- /dev/null +++ b/pages/inventoryMove/job/HoldToScrapMoveJob.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/inventoryMove/job/OktoScrapMoveJob.vue b/pages/inventoryMove/job/OktoScrapMoveJob.vue new file mode 100644 index 00000000..c78799e0 --- /dev/null +++ b/pages/inventoryMove/job/OktoScrapMoveJob.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/inventoryMove/job/holdToOkMoveJob.vue b/pages/inventoryMove/job/holdToOkMoveJob.vue new file mode 100644 index 00000000..149213d6 --- /dev/null +++ b/pages/inventoryMove/job/holdToOkMoveJob.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/inventoryMove/job/inventoryMoveDetail.vue b/pages/inventoryMove/job/inventoryMoveDetail.vue new file mode 100644 index 00000000..9766b7d1 --- /dev/null +++ b/pages/inventoryMove/job/inventoryMoveDetail.vue @@ -0,0 +1,602 @@ + + + + + diff --git a/pages/inventoryMove/job/inventoryMoveJob.vue b/pages/inventoryMove/job/inventoryMoveJob.vue new file mode 100644 index 00000000..156ca7ab --- /dev/null +++ b/pages/inventoryMove/job/inventoryMoveJob.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/pages/inventoryMove/job/moveJob.vue b/pages/inventoryMove/job/moveJob.vue new file mode 100644 index 00000000..e7b7ec56 --- /dev/null +++ b/pages/inventoryMove/job/moveJob.vue @@ -0,0 +1,37 @@ + + + + diff --git a/pages/inventoryMove/job/okToHoldMoveJob.vue b/pages/inventoryMove/job/okToHoldMoveJob.vue new file mode 100644 index 00000000..4c2bcca0 --- /dev/null +++ b/pages/inventoryMove/job/okToHoldMoveJob.vue @@ -0,0 +1,36 @@ + + + + diff --git a/pages/inventoryMove/job/scrapToHoldMoveJob.vue b/pages/inventoryMove/job/scrapToHoldMoveJob.vue new file mode 100644 index 00000000..985e5a58 --- /dev/null +++ b/pages/inventoryMove/job/scrapToHoldMoveJob.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/inventoryMove/record/holdToScrapRecord.vue b/pages/inventoryMove/record/holdToScrapRecord.vue new file mode 100644 index 00000000..2e3fab46 --- /dev/null +++ b/pages/inventoryMove/record/holdToScrapRecord.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/pages/inventoryMove/record/moveFreeRecord.vue b/pages/inventoryMove/record/moveFreeRecord.vue new file mode 100644 index 00000000..258ba26f --- /dev/null +++ b/pages/inventoryMove/record/moveFreeRecord.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/pages/inventoryMove/record/moveHoldToOkRecord.vue b/pages/inventoryMove/record/moveHoldToOkRecord.vue new file mode 100644 index 00000000..39cb5413 --- /dev/null +++ b/pages/inventoryMove/record/moveHoldToOkRecord.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/pages/inventoryMove/record/moveOkToHoldRecord.vue b/pages/inventoryMove/record/moveOkToHoldRecord.vue new file mode 100644 index 00000000..1aa58c97 --- /dev/null +++ b/pages/inventoryMove/record/moveOkToHoldRecord.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/pages/inventoryMove/record/oktoScrapRecord.vue b/pages/inventoryMove/record/oktoScrapRecord.vue new file mode 100644 index 00000000..3df2f7b8 --- /dev/null +++ b/pages/inventoryMove/record/oktoScrapRecord.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/pages/inventoryMove/record/scrapToHoldMoveRecord.vue b/pages/inventoryMove/record/scrapToHoldMoveRecord.vue new file mode 100644 index 00000000..b1bcbe3a --- /dev/null +++ b/pages/inventoryMove/record/scrapToHoldMoveRecord.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/pages/issue-按批次推荐/coms/comIssueDetailCard.vue b/pages/issue-按批次推荐/coms/comIssueDetailCard.vue new file mode 100644 index 00000000..0059807a --- /dev/null +++ b/pages/issue-按批次推荐/coms/comIssueDetailCard.vue @@ -0,0 +1,214 @@ + + + + + diff --git a/pages/issue-按批次推荐/coms/comIssueJobCard.vue b/pages/issue-按批次推荐/coms/comIssueJobCard.vue new file mode 100644 index 00000000..d9dc35b1 --- /dev/null +++ b/pages/issue-按批次推荐/coms/comIssueJobCard.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/pages/issue-按批次推荐/coms/comIssueRecommend.vue b/pages/issue-按批次推荐/coms/comIssueRecommend.vue new file mode 100644 index 00000000..6b6bd970 --- /dev/null +++ b/pages/issue-按批次推荐/coms/comIssueRecommend.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/pages/issue-按批次推荐/coms/comScanIssueList.vue b/pages/issue-按批次推荐/coms/comScanIssueList.vue new file mode 100644 index 00000000..1b815cab --- /dev/null +++ b/pages/issue-按批次推荐/coms/comScanIssueList.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/pages/issue-按批次推荐/coms/comScanIssuePack.vue b/pages/issue-按批次推荐/coms/comScanIssuePack.vue new file mode 100644 index 00000000..1080be58 --- /dev/null +++ b/pages/issue-按批次推荐/coms/comScanIssuePack.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/pages/issue-按批次推荐/job/issueDetail.vue b/pages/issue-按批次推荐/job/issueDetail.vue new file mode 100644 index 00000000..5201bb10 --- /dev/null +++ b/pages/issue-按批次推荐/job/issueDetail.vue @@ -0,0 +1,696 @@ + + + + + diff --git a/pages/issue-按批次推荐/job/issueJob.vue b/pages/issue-按批次推荐/job/issueJob.vue new file mode 100644 index 00000000..1a0435c1 --- /dev/null +++ b/pages/issue-按批次推荐/job/issueJob.vue @@ -0,0 +1,359 @@ + + + + + diff --git a/pages/issue/coms/comIssueDetailCard.vue b/pages/issue/coms/comIssueDetailCard.vue new file mode 100644 index 00000000..cb2ac161 --- /dev/null +++ b/pages/issue/coms/comIssueDetailCard.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/pages/issue/coms/comIssueJobCard.vue b/pages/issue/coms/comIssueJobCard.vue new file mode 100644 index 00000000..24e20f4c --- /dev/null +++ b/pages/issue/coms/comIssueJobCard.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/issue/coms/comIssueRecommend.vue b/pages/issue/coms/comIssueRecommend.vue new file mode 100644 index 00000000..6b6bd970 --- /dev/null +++ b/pages/issue/coms/comIssueRecommend.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/pages/issue/coms/comIssueRequestCard.vue b/pages/issue/coms/comIssueRequestCard.vue new file mode 100644 index 00000000..8f7f4b5a --- /dev/null +++ b/pages/issue/coms/comIssueRequestCard.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/issue/coms/comIssueRequestPopup.vue b/pages/issue/coms/comIssueRequestPopup.vue new file mode 100644 index 00000000..21377601 --- /dev/null +++ b/pages/issue/coms/comIssueRequestPopup.vue @@ -0,0 +1,379 @@ + + + + + diff --git a/pages/issue/coms/comScanIssueList.vue b/pages/issue/coms/comScanIssueList.vue new file mode 100644 index 00000000..1b815cab --- /dev/null +++ b/pages/issue/coms/comScanIssueList.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/pages/issue/coms/comScanIssuePack.vue b/pages/issue/coms/comScanIssuePack.vue new file mode 100644 index 00000000..347a2486 --- /dev/null +++ b/pages/issue/coms/comScanIssuePack.vue @@ -0,0 +1,497 @@ + + + + + diff --git a/pages/issue/coms/detailInfoPopup.vue b/pages/issue/coms/detailInfoPopup.vue new file mode 100644 index 00000000..72340688 --- /dev/null +++ b/pages/issue/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/issue/coms/jobInfoPopup.vue b/pages/issue/coms/jobInfoPopup.vue new file mode 100644 index 00000000..89710769 --- /dev/null +++ b/pages/issue/coms/jobInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/issue/coms/jobListPopup.vue b/pages/issue/coms/jobListPopup.vue new file mode 100644 index 00000000..315991f6 --- /dev/null +++ b/pages/issue/coms/jobListPopup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/issue/coms/requestDetailInfoPopup.vue b/pages/issue/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..d20250bd --- /dev/null +++ b/pages/issue/coms/requestDetailInfoPopup.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/pages/issue/coms/requestInfoPopup.vue b/pages/issue/coms/requestInfoPopup.vue new file mode 100644 index 00000000..723cade1 --- /dev/null +++ b/pages/issue/coms/requestInfoPopup.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/pages/issue/job/issueDetail.vue b/pages/issue/job/issueDetail.vue new file mode 100644 index 00000000..55be5452 --- /dev/null +++ b/pages/issue/job/issueDetail.vue @@ -0,0 +1,350 @@ + + + + + diff --git a/pages/issue/job/issueJob.vue b/pages/issue/job/issueJob.vue new file mode 100644 index 00000000..8e1d4660 --- /dev/null +++ b/pages/issue/job/issueJob.vue @@ -0,0 +1,316 @@ + + + + + diff --git a/pages/issue/job/issueReceiptJob.vue b/pages/issue/job/issueReceiptJob.vue new file mode 100644 index 00000000..6c4887e5 --- /dev/null +++ b/pages/issue/job/issueReceiptJob.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/pages/issue/js/issue.js b/pages/issue/js/issue.js new file mode 100644 index 00000000..4e783152 --- /dev/null +++ b/pages/issue/js/issue.js @@ -0,0 +1,101 @@ +export function getDataSource(list,details) { + for (var i = 0; i < details.length; i++) { + let detail = details[i]; + var location = list.find(r => + r.toLocationCode == detail.toLocationCode) + if (location == undefined) { + location = { + toLocationCode: detail.toLocationCode, + Items: [] + } + list.push(location); + } + createDetailInfo(location, detail); + } + return list; +} + +//树形结构:需求库位 -> 零件Items -> 库位 Locations-> 批次Batchs -> 记录Records +export function createDetailInfo(location, detail) { + var item = location.Items.find(r => + r.itemCode == detail.itemCode) + if (item == undefined) { + item = createItemInfo(detail); + location.Items.push(item) + } else { + item.qty += detail.qty + //在零件下查找库位 + let location = item.Locations.find(r => r.FromLocationCode == detail.FromLocationCode); + if (location == undefined) { + location = createLocationInfo(detail); + item.Locations.push(location); + } else { + //在库位下查找批次 + let batch = location.Batchs.find(r => r.batch == detail.Bacth); + if (batch == undefined) { + let batch = createBatchInfo(detail); + location.Batchs.push(batch); + } else { + batch.recommends.push(detail); + } + } + } +} + +export function createItemInfo(detail) { + let item = { + itemCode: detail.itemCode, + itemName: detail.itemName, + stdPackQty: detail.stdPackQty, + stdPackUnit: detail.stdPackUnit, + qty: detail.qty, + uom: detail.uom, + handleQty: 0, + Locations: [] + } + let location = createLocationInfo(detail); + item.Locations.push(location); + return item; +} + +export function createLocationInfo(detail) { + let location = { + FromLocationCode: detail.FromLocationCode, + qty: detail.qty, + uom: detail.uom, + handleQty: 0, + Batchs: [] + } + let batch = createBatchInfo(detail); + location.Batchs.push(batch); + return location; +} + +export function createBatchInfo(detail) { + let batch = { + batch: detail.batch, + packingNumber: detail.packingNumber, + qty: detail.qty, + uom: detail.uom, + handleQty: 0, + // Recommends: [detail], + // Records: [] + } + + //推荐到了箱码和批次 + if (detail.packingNumber != '') { + batch.Recommends = [detail]; + } + + return batch; +} + +export function createRecordInfo(detail) { + var record = {} + detail.scaned = true; + // let record = JSON.parse(JSON.stringify(detail)); + //克隆对象,深度克隆,防止双向绑定同一个变量 + Object.assign(record, detail) + record.toLocationCode = this.toLocationCode; + return record; +} diff --git a/pages/issue/record/issueRecord.vue b/pages/issue/record/issueRecord.vue new file mode 100644 index 00000000..2c4882b6 --- /dev/null +++ b/pages/issue/record/issueRecord.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/pages/issue/request/issueRequest.vue b/pages/issue/request/issueRequest.vue new file mode 100644 index 00000000..a1e05769 --- /dev/null +++ b/pages/issue/request/issueRequest.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/pages/issue/request/issueRequestDetail.vue b/pages/issue/request/issueRequestDetail.vue new file mode 100644 index 00000000..54eed1ab --- /dev/null +++ b/pages/issue/request/issueRequestDetail.vue @@ -0,0 +1,123 @@ + + + + + + diff --git a/pages/login.vue b/pages/login.vue deleted file mode 100644 index 13cbfc60..00000000 --- a/pages/login.vue +++ /dev/null @@ -1,168 +0,0 @@ - - - - - diff --git a/pages/login/index.vue b/pages/login/index.vue new file mode 100644 index 00000000..dd305289 --- /dev/null +++ b/pages/login/index.vue @@ -0,0 +1,365 @@ + + + + + diff --git a/pages/message/index.vue b/pages/message/index.vue new file mode 100644 index 00000000..3e29db03 --- /dev/null +++ b/pages/message/index.vue @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/pages/mine/about/index.vue b/pages/mine/about/index.vue index c3a2bcad..8c1e2fcb 100644 --- a/pages/mine/about/index.vue +++ b/pages/mine/about/index.vue @@ -3,7 +3,7 @@ - + @@ -17,7 +17,7 @@ 官方邮箱 - 7685413@qq.com + ruoyi@xx.com @@ -38,20 +38,16 @@ - Copyright © 2022 iocoder.cn All Rights Reserved. + Copyright © 2022 ruoyi.vip All Rights Reserved. - diff --git a/pages/mine/info/edit.vue b/pages/mine/info/edit.vue index 44d8ce4c..113dcddc 100644 --- a/pages/mine/info/edit.vue +++ b/pages/mine/info/edit.vue @@ -2,18 +2,17 @@ - - + + - - + + - - + @@ -22,33 +21,32 @@ diff --git a/pages/package/coms/comPackageRecord.vue b/pages/package/coms/comPackageRecord.vue new file mode 100644 index 00000000..1293cc70 --- /dev/null +++ b/pages/package/coms/comPackageRecord.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/pages/package/record/mergePackageRecord.vue b/pages/package/record/mergePackageRecord.vue new file mode 100644 index 00000000..a8020c8b --- /dev/null +++ b/pages/package/record/mergePackageRecord.vue @@ -0,0 +1,430 @@ + + + + + + diff --git a/pages/package/record/mergePackageRecord.vue.b17252 b/pages/package/record/mergePackageRecord.vue.b17252 new file mode 100644 index 00000000..eacb2b1c --- /dev/null +++ b/pages/package/record/mergePackageRecord.vue.b17252 @@ -0,0 +1,430 @@ + + + + + + diff --git a/pages/package/record/mergePackageRecord.vue.y17252 b/pages/package/record/mergePackageRecord.vue.y17252 new file mode 100644 index 00000000..8c00125c --- /dev/null +++ b/pages/package/record/mergePackageRecord.vue.y17252 @@ -0,0 +1,430 @@ + + + + + + diff --git a/pages/package/record/overPackageRecord.vue b/pages/package/record/overPackageRecord.vue new file mode 100644 index 00000000..ae1a9205 --- /dev/null +++ b/pages/package/record/overPackageRecord.vue @@ -0,0 +1,351 @@ + + + + + + diff --git a/pages/package/record/splitPackageRecord.vue b/pages/package/record/splitPackageRecord.vue new file mode 100644 index 00000000..64307cec --- /dev/null +++ b/pages/package/record/splitPackageRecord.vue @@ -0,0 +1,351 @@ + + + + + + diff --git a/pages/pallet/coms/comPalletRecord.vue b/pages/pallet/coms/comPalletRecord.vue new file mode 100644 index 00000000..0fa7b43e --- /dev/null +++ b/pages/pallet/coms/comPalletRecord.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/pages/pallet/record/bindPalletRecord.vue b/pages/pallet/record/bindPalletRecord.vue new file mode 100644 index 00000000..b4e57bd3 --- /dev/null +++ b/pages/pallet/record/bindPalletRecord.vue @@ -0,0 +1,274 @@ + + + + + + diff --git a/pages/pallet/record/unBindPalletRecord.vue b/pages/pallet/record/unBindPalletRecord.vue new file mode 100644 index 00000000..b38c1a37 --- /dev/null +++ b/pages/pallet/record/unBindPalletRecord.vue @@ -0,0 +1,367 @@ + + + + + + diff --git a/pages/productDismantle/coms/comProductDetailCard.vue b/pages/productDismantle/coms/comProductDetailCard.vue new file mode 100644 index 00000000..4d54e1be --- /dev/null +++ b/pages/productDismantle/coms/comProductDetailCard.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/pages/productDismantle/coms/comProductJobCard.vue b/pages/productDismantle/coms/comProductJobCard.vue new file mode 100644 index 00000000..5998243a --- /dev/null +++ b/pages/productDismantle/coms/comProductJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/productDismantle/coms/comProductRecord.vue b/pages/productDismantle/coms/comProductRecord.vue new file mode 100644 index 00000000..ca34c29b --- /dev/null +++ b/pages/productDismantle/coms/comProductRecord.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/pages/productDismantle/coms/comScanProductList.vue b/pages/productDismantle/coms/comScanProductList.vue new file mode 100644 index 00000000..1b815cab --- /dev/null +++ b/pages/productDismantle/coms/comScanProductList.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/pages/productDismantle/coms/detailInfoPopup.vue b/pages/productDismantle/coms/detailInfoPopup.vue new file mode 100644 index 00000000..2fc76f5b --- /dev/null +++ b/pages/productDismantle/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/productDismantle/coms/jobInfoPopup.vue b/pages/productDismantle/coms/jobInfoPopup.vue new file mode 100644 index 00000000..2a0ab3f2 --- /dev/null +++ b/pages/productDismantle/coms/jobInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/productDismantle/coms/jobListPopup.vue b/pages/productDismantle/coms/jobListPopup.vue new file mode 100644 index 00000000..7d0c8b93 --- /dev/null +++ b/pages/productDismantle/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/productDismantle/coms/requestDetailInfoPopup.vue b/pages/productDismantle/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..8bc5c446 --- /dev/null +++ b/pages/productDismantle/coms/requestDetailInfoPopup.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/pages/productDismantle/coms/requestInfoPopup.vue b/pages/productDismantle/coms/requestInfoPopup.vue new file mode 100644 index 00000000..939f09a0 --- /dev/null +++ b/pages/productDismantle/coms/requestInfoPopup.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/pages/productDismantle/job/productDismantleDetail.vue b/pages/productDismantle/job/productDismantleDetail.vue new file mode 100644 index 00000000..3e2137e0 --- /dev/null +++ b/pages/productDismantle/job/productDismantleDetail.vue @@ -0,0 +1,543 @@ + + + + + + diff --git a/pages/productDismantle/job/productDismantleJob.vue b/pages/productDismantle/job/productDismantleJob.vue new file mode 100644 index 00000000..a9289ea9 --- /dev/null +++ b/pages/productDismantle/job/productDismantleJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/productDismantle/record/productDismantleRecord.vue b/pages/productDismantle/record/productDismantleRecord.vue new file mode 100644 index 00000000..cf5840bb --- /dev/null +++ b/pages/productDismantle/record/productDismantleRecord.vue @@ -0,0 +1,422 @@ + + + + + + diff --git a/pages/productPutaway/coms/comProductDetailCard.vue b/pages/productPutaway/coms/comProductDetailCard.vue new file mode 100644 index 00000000..4d54e1be --- /dev/null +++ b/pages/productPutaway/coms/comProductDetailCard.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/pages/productPutaway/coms/comProductJobCard.vue b/pages/productPutaway/coms/comProductJobCard.vue new file mode 100644 index 00000000..5998243a --- /dev/null +++ b/pages/productPutaway/coms/comProductJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/productPutaway/coms/comProductRecord.vue b/pages/productPutaway/coms/comProductRecord.vue new file mode 100644 index 00000000..ca34c29b --- /dev/null +++ b/pages/productPutaway/coms/comProductRecord.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/pages/productPutaway/coms/comPutawayRequestCard.vue b/pages/productPutaway/coms/comPutawayRequestCard.vue new file mode 100644 index 00000000..e1428660 --- /dev/null +++ b/pages/productPutaway/coms/comPutawayRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/productPutaway/coms/comScanProductList.vue b/pages/productPutaway/coms/comScanProductList.vue new file mode 100644 index 00000000..1b815cab --- /dev/null +++ b/pages/productPutaway/coms/comScanProductList.vue @@ -0,0 +1,54 @@ + + + + + \ No newline at end of file diff --git a/pages/productPutaway/coms/detailInfoPopup.vue b/pages/productPutaway/coms/detailInfoPopup.vue new file mode 100644 index 00000000..2fc76f5b --- /dev/null +++ b/pages/productPutaway/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/productPutaway/coms/jobInfoPopup.vue b/pages/productPutaway/coms/jobInfoPopup.vue new file mode 100644 index 00000000..2a0ab3f2 --- /dev/null +++ b/pages/productPutaway/coms/jobInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/productPutaway/coms/jobListPopup.vue b/pages/productPutaway/coms/jobListPopup.vue new file mode 100644 index 00000000..7d0c8b93 --- /dev/null +++ b/pages/productPutaway/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/productPutaway/coms/requestDetailInfoPopup.vue b/pages/productPutaway/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..8bc5c446 --- /dev/null +++ b/pages/productPutaway/coms/requestDetailInfoPopup.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/pages/productPutaway/coms/requestInfoPopup.vue b/pages/productPutaway/coms/requestInfoPopup.vue new file mode 100644 index 00000000..069c31d3 --- /dev/null +++ b/pages/productPutaway/coms/requestInfoPopup.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/pages/productPutaway/job/productPutawayDetail.vue b/pages/productPutaway/job/productPutawayDetail.vue new file mode 100644 index 00000000..acd47844 --- /dev/null +++ b/pages/productPutaway/job/productPutawayDetail.vue @@ -0,0 +1,541 @@ + + + + + + diff --git a/pages/productPutaway/job/productPutawayJob.vue b/pages/productPutaway/job/productPutawayJob.vue new file mode 100644 index 00000000..33eb60cd --- /dev/null +++ b/pages/productPutaway/job/productPutawayJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/productPutaway/record/productPutawayRecord.vue b/pages/productPutaway/record/productPutawayRecord.vue new file mode 100644 index 00000000..3ff28097 --- /dev/null +++ b/pages/productPutaway/record/productPutawayRecord.vue @@ -0,0 +1,419 @@ + + + + + + diff --git a/pages/productPutaway/request/putawayRequest.vue b/pages/productPutaway/request/putawayRequest.vue new file mode 100644 index 00000000..426bbfda --- /dev/null +++ b/pages/productPutaway/request/putawayRequest.vue @@ -0,0 +1,279 @@ + + + + + diff --git a/pages/productPutaway/request/putawayRequestDetail.vue b/pages/productPutaway/request/putawayRequestDetail.vue new file mode 100644 index 00000000..129e86f2 --- /dev/null +++ b/pages/productPutaway/request/putawayRequestDetail.vue @@ -0,0 +1,118 @@ + + + + + + diff --git a/pages/productReceipt/coms/comProductDetailCard.vue b/pages/productReceipt/coms/comProductDetailCard.vue new file mode 100644 index 00000000..a4f19bad --- /dev/null +++ b/pages/productReceipt/coms/comProductDetailCard.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/pages/productReceipt/coms/comProductJobCard.vue b/pages/productReceipt/coms/comProductJobCard.vue new file mode 100644 index 00000000..a698ad39 --- /dev/null +++ b/pages/productReceipt/coms/comProductJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/productReceipt/coms/comProductRecord.vue b/pages/productReceipt/coms/comProductRecord.vue new file mode 100644 index 00000000..6047330e --- /dev/null +++ b/pages/productReceipt/coms/comProductRecord.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/pages/productReceipt/coms/detailInfoPopup.vue b/pages/productReceipt/coms/detailInfoPopup.vue new file mode 100644 index 00000000..5c5f52a0 --- /dev/null +++ b/pages/productReceipt/coms/detailInfoPopup.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/pages/productReceipt/coms/jobInfoPopup.vue b/pages/productReceipt/coms/jobInfoPopup.vue new file mode 100644 index 00000000..89c88846 --- /dev/null +++ b/pages/productReceipt/coms/jobInfoPopup.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/pages/productReceipt/coms/jobListPopup.vue b/pages/productReceipt/coms/jobListPopup.vue new file mode 100644 index 00000000..cbcf1996 --- /dev/null +++ b/pages/productReceipt/coms/jobListPopup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/productReceipt/job/productReceiptDetail.vue b/pages/productReceipt/job/productReceiptDetail.vue new file mode 100644 index 00000000..719e4e81 --- /dev/null +++ b/pages/productReceipt/job/productReceiptDetail.vue @@ -0,0 +1,454 @@ + + + + + + diff --git a/pages/productReceipt/job/productReceiptJob.vue b/pages/productReceipt/job/productReceiptJob.vue new file mode 100644 index 00000000..245dedb1 --- /dev/null +++ b/pages/productReceipt/job/productReceiptJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/productReceipt/record/productReceiptRecord.vue b/pages/productReceipt/record/productReceiptRecord.vue new file mode 100644 index 00000000..8b1c5ef1 --- /dev/null +++ b/pages/productReceipt/record/productReceiptRecord.vue @@ -0,0 +1,432 @@ + + + + + + diff --git a/pages/productionReceipt/coms/comProductionDetailCard.vue b/pages/productionReceipt/coms/comProductionDetailCard.vue new file mode 100644 index 00000000..4d54e1be --- /dev/null +++ b/pages/productionReceipt/coms/comProductionDetailCard.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/pages/productionReceipt/coms/comProductionJobCard.vue b/pages/productionReceipt/coms/comProductionJobCard.vue new file mode 100644 index 00000000..b60b1ed2 --- /dev/null +++ b/pages/productionReceipt/coms/comProductionJobCard.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/pages/productionReceipt/coms/comProductionRecord.vue b/pages/productionReceipt/coms/comProductionRecord.vue new file mode 100644 index 00000000..baeb441c --- /dev/null +++ b/pages/productionReceipt/coms/comProductionRecord.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/pages/productionReceipt/coms/detailInfoPopup.vue b/pages/productionReceipt/coms/detailInfoPopup.vue new file mode 100644 index 00000000..7dc7d5f2 --- /dev/null +++ b/pages/productionReceipt/coms/detailInfoPopup.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/pages/productionReceipt/coms/jobInfoPopup.vue b/pages/productionReceipt/coms/jobInfoPopup.vue new file mode 100644 index 00000000..764e671f --- /dev/null +++ b/pages/productionReceipt/coms/jobInfoPopup.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/pages/productionReceipt/coms/jobListPopup.vue b/pages/productionReceipt/coms/jobListPopup.vue new file mode 100644 index 00000000..79eff277 --- /dev/null +++ b/pages/productionReceipt/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/productionReceipt/job/productionReceiptDetail.vue b/pages/productionReceipt/job/productionReceiptDetail.vue new file mode 100644 index 00000000..98e070fa --- /dev/null +++ b/pages/productionReceipt/job/productionReceiptDetail.vue @@ -0,0 +1,496 @@ + + + + + + diff --git a/pages/productionReceipt/job/productionReceiptJob.vue b/pages/productionReceipt/job/productionReceiptJob.vue new file mode 100644 index 00000000..a7d25752 --- /dev/null +++ b/pages/productionReceipt/job/productionReceiptJob.vue @@ -0,0 +1,291 @@ + + + + + diff --git a/pages/productionReceipt/record/productionReceiptRecord.vue b/pages/productionReceipt/record/productionReceiptRecord.vue new file mode 100644 index 00000000..7224854e --- /dev/null +++ b/pages/productionReceipt/record/productionReceiptRecord.vue @@ -0,0 +1,415 @@ + + + + + + diff --git a/pages/productionReturn/coms/comReturn.vue b/pages/productionReturn/coms/comReturn.vue new file mode 100644 index 00000000..d5189655 --- /dev/null +++ b/pages/productionReturn/coms/comReturn.vue @@ -0,0 +1,454 @@ + + + + + + diff --git a/pages/productionReturn/coms/comReturnJobCard.vue b/pages/productionReturn/coms/comReturnJobCard.vue new file mode 100644 index 00000000..0c128100 --- /dev/null +++ b/pages/productionReturn/coms/comReturnJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/productionReturn/coms/comReturnRequestCard.vue b/pages/productionReturn/coms/comReturnRequestCard.vue new file mode 100644 index 00000000..cda53594 --- /dev/null +++ b/pages/productionReturn/coms/comReturnRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/productionReturn/coms/detailInfoPopup.vue b/pages/productionReturn/coms/detailInfoPopup.vue new file mode 100644 index 00000000..bb89e506 --- /dev/null +++ b/pages/productionReturn/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/productionReturn/coms/jobInfoPopup.vue b/pages/productionReturn/coms/jobInfoPopup.vue new file mode 100644 index 00000000..2a0ab3f2 --- /dev/null +++ b/pages/productionReturn/coms/jobInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/productionReturn/coms/jobListPopup.vue b/pages/productionReturn/coms/jobListPopup.vue new file mode 100644 index 00000000..4c73872a --- /dev/null +++ b/pages/productionReturn/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/productionReturn/coms/requestDetailInfoPopup.vue b/pages/productionReturn/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..22e6abbe --- /dev/null +++ b/pages/productionReturn/coms/requestDetailInfoPopup.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/productionReturn/coms/requestInfoPopup.vue b/pages/productionReturn/coms/requestInfoPopup.vue new file mode 100644 index 00000000..4b3904f9 --- /dev/null +++ b/pages/productionReturn/coms/requestInfoPopup.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/pages/productionReturn/job/returnDetail.vue b/pages/productionReturn/job/returnDetail.vue new file mode 100644 index 00000000..aff93d54 --- /dev/null +++ b/pages/productionReturn/job/returnDetail.vue @@ -0,0 +1,493 @@ + + + + + + diff --git a/pages/productionReturn/job/returnJob.vue b/pages/productionReturn/job/returnJob.vue new file mode 100644 index 00000000..74ea232f --- /dev/null +++ b/pages/productionReturn/job/returnJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/productionReturn/record/returnToHold.vue b/pages/productionReturn/record/returnToHold.vue new file mode 100644 index 00000000..e62a47a6 --- /dev/null +++ b/pages/productionReturn/record/returnToHold.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/pages/productionReturn/record/returnToStore.vue b/pages/productionReturn/record/returnToStore.vue new file mode 100644 index 00000000..61b37ab9 --- /dev/null +++ b/pages/productionReturn/record/returnToStore.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/pages/productionReturn/request/requestDetail.vue b/pages/productionReturn/request/requestDetail.vue new file mode 100644 index 00000000..b0084486 --- /dev/null +++ b/pages/productionReturn/request/requestDetail.vue @@ -0,0 +1,117 @@ + + + + + + diff --git a/pages/productionReturn/request/returnToHoldRequest.vue b/pages/productionReturn/request/returnToHoldRequest.vue new file mode 100644 index 00000000..6ddda2f9 --- /dev/null +++ b/pages/productionReturn/request/returnToHoldRequest.vue @@ -0,0 +1,283 @@ + + + + + diff --git a/pages/productionReturn/request/returnToStoreRequest.vue b/pages/productionReturn/request/returnToStoreRequest.vue new file mode 100644 index 00000000..3a58846f --- /dev/null +++ b/pages/productionReturn/request/returnToStoreRequest.vue @@ -0,0 +1,283 @@ + + + + + diff --git a/pages/purchaseReceipt/coms/comReceiptDetailCard.vue b/pages/purchaseReceipt/coms/comReceiptDetailCard.vue new file mode 100644 index 00000000..f542d468 --- /dev/null +++ b/pages/purchaseReceipt/coms/comReceiptDetailCard.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/pages/purchaseReceipt/coms/comReceiptJobCard.vue b/pages/purchaseReceipt/coms/comReceiptJobCard.vue new file mode 100644 index 00000000..65affce4 --- /dev/null +++ b/pages/purchaseReceipt/coms/comReceiptJobCard.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/pages/purchaseReceipt/coms/receiptDetailInfoPopup.vue b/pages/purchaseReceipt/coms/receiptDetailInfoPopup.vue new file mode 100644 index 00000000..52bb66c5 --- /dev/null +++ b/pages/purchaseReceipt/coms/receiptDetailInfoPopup.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/pages/purchaseReceipt/coms/receiptInfoPopup.vue b/pages/purchaseReceipt/coms/receiptInfoPopup.vue new file mode 100644 index 00000000..71a8f427 --- /dev/null +++ b/pages/purchaseReceipt/coms/receiptInfoPopup.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/pages/purchaseReceipt/coms/receiptJobListPopup.vue b/pages/purchaseReceipt/coms/receiptJobListPopup.vue new file mode 100644 index 00000000..c1e6bcf2 --- /dev/null +++ b/pages/purchaseReceipt/coms/receiptJobListPopup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/purchaseReceipt/job/receiptDetail.vue b/pages/purchaseReceipt/job/receiptDetail.vue new file mode 100644 index 00000000..1f9a1481 --- /dev/null +++ b/pages/purchaseReceipt/job/receiptDetail.vue @@ -0,0 +1,478 @@ + + + + + + diff --git a/pages/purchaseReceipt/job/receiptJob.vue b/pages/purchaseReceipt/job/receiptJob.vue new file mode 100644 index 00000000..b4b6daab --- /dev/null +++ b/pages/purchaseReceipt/job/receiptJob.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/pages/purchaseReturn/coms/comReturnJobCard.vue b/pages/purchaseReturn/coms/comReturnJobCard.vue new file mode 100644 index 00000000..6e018818 --- /dev/null +++ b/pages/purchaseReturn/coms/comReturnJobCard.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/pages/purchaseReturn/coms/comReturnRequestCard.vue b/pages/purchaseReturn/coms/comReturnRequestCard.vue new file mode 100644 index 00000000..fcdd96f0 --- /dev/null +++ b/pages/purchaseReturn/coms/comReturnRequestCard.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/pages/purchaseReturn/coms/requestDetailInfoPopup.vue b/pages/purchaseReturn/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..93d1b5a2 --- /dev/null +++ b/pages/purchaseReturn/coms/requestDetailInfoPopup.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/pages/purchaseReturn/coms/requestInfoPopup.vue b/pages/purchaseReturn/coms/requestInfoPopup.vue new file mode 100644 index 00000000..a9128631 --- /dev/null +++ b/pages/purchaseReturn/coms/requestInfoPopup.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/pages/purchaseReturn/coms/returnDetailInfoPopup.vue b/pages/purchaseReturn/coms/returnDetailInfoPopup.vue new file mode 100644 index 00000000..7128d112 --- /dev/null +++ b/pages/purchaseReturn/coms/returnDetailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/purchaseReturn/coms/returnInfoPopup.vue b/pages/purchaseReturn/coms/returnInfoPopup.vue new file mode 100644 index 00000000..71a8f427 --- /dev/null +++ b/pages/purchaseReturn/coms/returnInfoPopup.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/pages/purchaseReturn/coms/returnJobListPopup.vue b/pages/purchaseReturn/coms/returnJobListPopup.vue new file mode 100644 index 00000000..9a17ec18 --- /dev/null +++ b/pages/purchaseReturn/coms/returnJobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/purchaseReturn/job/returnDetail.vue b/pages/purchaseReturn/job/returnDetail.vue new file mode 100644 index 00000000..c34e5798 --- /dev/null +++ b/pages/purchaseReturn/job/returnDetail.vue @@ -0,0 +1,476 @@ + + + + + + diff --git a/pages/purchaseReturn/job/returnJob.vue b/pages/purchaseReturn/job/returnJob.vue new file mode 100644 index 00000000..84289555 --- /dev/null +++ b/pages/purchaseReturn/job/returnJob.vue @@ -0,0 +1,310 @@ + + + + + diff --git a/pages/purchaseReturn/record/returnRecord.vue b/pages/purchaseReturn/record/returnRecord.vue new file mode 100644 index 00000000..91d098fe --- /dev/null +++ b/pages/purchaseReturn/record/returnRecord.vue @@ -0,0 +1,356 @@ + + + + + + diff --git a/pages/purchaseReturn/request/returnRequest.vue b/pages/purchaseReturn/request/returnRequest.vue new file mode 100644 index 00000000..9e54b065 --- /dev/null +++ b/pages/purchaseReturn/request/returnRequest.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/pages/purchaseReturn/request/returnRequestDetail.vue b/pages/purchaseReturn/request/returnRequestDetail.vue new file mode 100644 index 00000000..5cfdc65b --- /dev/null +++ b/pages/purchaseReturn/request/returnRequestDetail.vue @@ -0,0 +1,122 @@ + + + + + + diff --git a/pages/putaway/coms/comPutawayJobCard.vue b/pages/putaway/coms/comPutawayJobCard.vue new file mode 100644 index 00000000..6da43026 --- /dev/null +++ b/pages/putaway/coms/comPutawayJobCard.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/putaway/coms/comPutawayRequestCard.vue b/pages/putaway/coms/comPutawayRequestCard.vue new file mode 100644 index 00000000..e1428660 --- /dev/null +++ b/pages/putaway/coms/comPutawayRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/putaway/coms/putawayDetailInfoPopup.vue b/pages/putaway/coms/putawayDetailInfoPopup.vue new file mode 100644 index 00000000..7128d112 --- /dev/null +++ b/pages/putaway/coms/putawayDetailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/putaway/coms/putawayInfoPopup.vue b/pages/putaway/coms/putawayInfoPopup.vue new file mode 100644 index 00000000..fd6f9882 --- /dev/null +++ b/pages/putaway/coms/putawayInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/putaway/coms/putawayJobListPopup.vue b/pages/putaway/coms/putawayJobListPopup.vue new file mode 100644 index 00000000..9a17ec18 --- /dev/null +++ b/pages/putaway/coms/putawayJobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/putaway/coms/requestDetailInfoPopup.vue b/pages/putaway/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..d68114d3 --- /dev/null +++ b/pages/putaway/coms/requestDetailInfoPopup.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/putaway/coms/requestInfoPopup.vue b/pages/putaway/coms/requestInfoPopup.vue new file mode 100644 index 00000000..0cf786b8 --- /dev/null +++ b/pages/putaway/coms/requestInfoPopup.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/pages/putaway/job/putawayDetail.vue b/pages/putaway/job/putawayDetail.vue new file mode 100644 index 00000000..4e49355c --- /dev/null +++ b/pages/putaway/job/putawayDetail.vue @@ -0,0 +1,516 @@ + + + + + + diff --git a/pages/putaway/job/putawayJob.vue b/pages/putaway/job/putawayJob.vue new file mode 100644 index 00000000..d9db6080 --- /dev/null +++ b/pages/putaway/job/putawayJob.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/pages/putaway/record/putawayRecord.vue b/pages/putaway/record/putawayRecord.vue new file mode 100644 index 00000000..8558b7b5 --- /dev/null +++ b/pages/putaway/record/putawayRecord.vue @@ -0,0 +1,438 @@ + + + + + + diff --git a/pages/putaway/request/putawayRequest.vue b/pages/putaway/request/putawayRequest.vue new file mode 100644 index 00000000..cd0b0a6e --- /dev/null +++ b/pages/putaway/request/putawayRequest.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/pages/putaway/request/putawayRequestDetail.vue b/pages/putaway/request/putawayRequestDetail.vue new file mode 100644 index 00000000..bc3c63d6 --- /dev/null +++ b/pages/putaway/request/putawayRequestDetail.vue @@ -0,0 +1,120 @@ + + + + + + diff --git a/pages/query/coms/comItemBalance.vue b/pages/query/coms/comItemBalance.vue new file mode 100644 index 00000000..084b3a34 --- /dev/null +++ b/pages/query/coms/comItemBalance.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/pages/query/coms/comItemDetailCard.vue b/pages/query/coms/comItemDetailCard.vue new file mode 100644 index 00000000..024d0c57 --- /dev/null +++ b/pages/query/coms/comItemDetailCard.vue @@ -0,0 +1,85 @@ + + + + + + + diff --git a/pages/query/coms/comLocationDetailCard.vue b/pages/query/coms/comLocationDetailCard.vue new file mode 100644 index 00000000..819a5740 --- /dev/null +++ b/pages/query/coms/comLocationDetailCard.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/pages/query/container.vue b/pages/query/container.vue new file mode 100644 index 00000000..752cb7a7 --- /dev/null +++ b/pages/query/container.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/pages/query/item.vue b/pages/query/item.vue new file mode 100644 index 00000000..901411c9 --- /dev/null +++ b/pages/query/item.vue @@ -0,0 +1,302 @@ + + + + + + diff --git a/pages/query/item_copy.vue b/pages/query/item_copy.vue new file mode 100644 index 00000000..64c3925c --- /dev/null +++ b/pages/query/item_copy.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/pages/query/location.vue b/pages/query/location.vue new file mode 100644 index 00000000..e04f22da --- /dev/null +++ b/pages/query/location.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/pages/query/location_copy.vue b/pages/query/location_copy.vue new file mode 100644 index 00000000..7fc3e820 --- /dev/null +++ b/pages/query/location_copy.vue @@ -0,0 +1,276 @@ + + + + + diff --git a/pages/query/number.vue b/pages/query/number.vue new file mode 100644 index 00000000..b995fd0b --- /dev/null +++ b/pages/query/number.vue @@ -0,0 +1,338 @@ + + + + + + \ No newline at end of file diff --git a/pages/repleinsh/coms/comRepleinshJobCard.vue b/pages/repleinsh/coms/comRepleinshJobCard.vue new file mode 100644 index 00000000..42adb984 --- /dev/null +++ b/pages/repleinsh/coms/comRepleinshJobCard.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/pages/repleinsh/coms/comRepleinshRequestCard.vue b/pages/repleinsh/coms/comRepleinshRequestCard.vue new file mode 100644 index 00000000..e1428660 --- /dev/null +++ b/pages/repleinsh/coms/comRepleinshRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/repleinsh/coms/repleinshDetailInfoPopup.vue b/pages/repleinsh/coms/repleinshDetailInfoPopup.vue new file mode 100644 index 00000000..7128d112 --- /dev/null +++ b/pages/repleinsh/coms/repleinshDetailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/repleinsh/coms/repleinshInfoPopup.vue b/pages/repleinsh/coms/repleinshInfoPopup.vue new file mode 100644 index 00000000..d446a8b1 --- /dev/null +++ b/pages/repleinsh/coms/repleinshInfoPopup.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/pages/repleinsh/coms/repleinshJobListPopup.vue b/pages/repleinsh/coms/repleinshJobListPopup.vue new file mode 100644 index 00000000..9a17ec18 --- /dev/null +++ b/pages/repleinsh/coms/repleinshJobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/repleinsh/coms/requestDetailInfoPopup.vue b/pages/repleinsh/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..d68114d3 --- /dev/null +++ b/pages/repleinsh/coms/requestDetailInfoPopup.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/pages/repleinsh/coms/requestInfoPopup.vue b/pages/repleinsh/coms/requestInfoPopup.vue new file mode 100644 index 00000000..4e7f864b --- /dev/null +++ b/pages/repleinsh/coms/requestInfoPopup.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/pages/repleinsh/job/repleinshDetail.vue b/pages/repleinsh/job/repleinshDetail.vue new file mode 100644 index 00000000..3290e54e --- /dev/null +++ b/pages/repleinsh/job/repleinshDetail.vue @@ -0,0 +1,508 @@ + + + + + + diff --git a/pages/repleinsh/job/repleinshJob.vue b/pages/repleinsh/job/repleinshJob.vue new file mode 100644 index 00000000..b3308181 --- /dev/null +++ b/pages/repleinsh/job/repleinshJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/repleinsh/record/repleinshRecord.vue b/pages/repleinsh/record/repleinshRecord.vue new file mode 100644 index 00000000..3414aaf3 --- /dev/null +++ b/pages/repleinsh/record/repleinshRecord.vue @@ -0,0 +1,435 @@ + + + + + + diff --git a/pages/repleinsh/request/repleinshRequest.vue b/pages/repleinsh/request/repleinshRequest.vue new file mode 100644 index 00000000..e73b1e77 --- /dev/null +++ b/pages/repleinsh/request/repleinshRequest.vue @@ -0,0 +1,228 @@ + + + + + diff --git a/pages/repleinsh/request/repleinshRequestDetail.vue b/pages/repleinsh/request/repleinshRequestDetail.vue new file mode 100644 index 00000000..5538f251 --- /dev/null +++ b/pages/repleinsh/request/repleinshRequestDetail.vue @@ -0,0 +1,116 @@ + + + + + + diff --git a/pages/scrap/coms/comScrapDetailCard.vue b/pages/scrap/coms/comScrapDetailCard.vue new file mode 100644 index 00000000..19006852 --- /dev/null +++ b/pages/scrap/coms/comScrapDetailCard.vue @@ -0,0 +1,132 @@ + + + + + diff --git a/pages/scrap/coms/comScrapJobCard.vue b/pages/scrap/coms/comScrapJobCard.vue new file mode 100644 index 00000000..65affce4 --- /dev/null +++ b/pages/scrap/coms/comScrapJobCard.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/pages/scrap/coms/comScrapRequestCard.vue b/pages/scrap/coms/comScrapRequestCard.vue new file mode 100644 index 00000000..23d744ad --- /dev/null +++ b/pages/scrap/coms/comScrapRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/scrap/coms/requestDetailInfoPopup.vue b/pages/scrap/coms/requestDetailInfoPopup.vue new file mode 100644 index 00000000..8b4679fc --- /dev/null +++ b/pages/scrap/coms/requestDetailInfoPopup.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/pages/scrap/coms/requestInfoPopup.vue b/pages/scrap/coms/requestInfoPopup.vue new file mode 100644 index 00000000..04bdcb96 --- /dev/null +++ b/pages/scrap/coms/requestInfoPopup.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/scrap/coms/scrapDetailInfoPopup.vue b/pages/scrap/coms/scrapDetailInfoPopup.vue new file mode 100644 index 00000000..26c801eb --- /dev/null +++ b/pages/scrap/coms/scrapDetailInfoPopup.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/pages/scrap/coms/scrapInfoPopup.vue b/pages/scrap/coms/scrapInfoPopup.vue new file mode 100644 index 00000000..71a8f427 --- /dev/null +++ b/pages/scrap/coms/scrapInfoPopup.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/pages/scrap/coms/scrapJobListPopup.vue b/pages/scrap/coms/scrapJobListPopup.vue new file mode 100644 index 00000000..66af3f14 --- /dev/null +++ b/pages/scrap/coms/scrapJobListPopup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/scrap/job/scrapJob.vue b/pages/scrap/job/scrapJob.vue new file mode 100644 index 00000000..9e86406e --- /dev/null +++ b/pages/scrap/job/scrapJob.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/pages/scrap/job/scrapJobDetail.vue b/pages/scrap/job/scrapJobDetail.vue new file mode 100644 index 00000000..c226dd82 --- /dev/null +++ b/pages/scrap/job/scrapJobDetail.vue @@ -0,0 +1,448 @@ + + + + + + diff --git a/pages/scrap/record/scrapRecord.vue b/pages/scrap/record/scrapRecord.vue new file mode 100644 index 00000000..8e1b6489 --- /dev/null +++ b/pages/scrap/record/scrapRecord.vue @@ -0,0 +1,428 @@ + + + + + + diff --git a/pages/scrap/request/scrapRequestDetail.vue b/pages/scrap/request/scrapRequestDetail.vue new file mode 100644 index 00000000..ec7f8845 --- /dev/null +++ b/pages/scrap/request/scrapRequestDetail.vue @@ -0,0 +1,118 @@ + + + + + + diff --git a/pages/scrap/request/scrapRrequest.vue b/pages/scrap/request/scrapRrequest.vue new file mode 100644 index 00000000..e85995fa --- /dev/null +++ b/pages/scrap/request/scrapRrequest.vue @@ -0,0 +1,273 @@ + + + + + diff --git a/pages/setter/index.vue b/pages/setter/index.vue new file mode 100644 index 00000000..4579145e --- /dev/null +++ b/pages/setter/index.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/pages/setter/passwordpage.vue b/pages/setter/passwordpage.vue new file mode 100644 index 00000000..72434c61 --- /dev/null +++ b/pages/setter/passwordpage.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/pages/setter/setterDetail.vue b/pages/setter/setterDetail.vue new file mode 100644 index 00000000..708e6d06 --- /dev/null +++ b/pages/setter/setterDetail.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/pages/supplierDeliver/coms/comRecordCard.vue b/pages/supplierDeliver/coms/comRecordCard.vue new file mode 100644 index 00000000..1c6e0c4a --- /dev/null +++ b/pages/supplierDeliver/coms/comRecordCard.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/pages/supplierDeliver/coms/comRecordDetailCard.vue b/pages/supplierDeliver/coms/comRecordDetailCard.vue new file mode 100644 index 00000000..9c39c698 --- /dev/null +++ b/pages/supplierDeliver/coms/comRecordDetailCard.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/pages/supplierDeliver/coms/recordDetailInfoPopup.vue b/pages/supplierDeliver/coms/recordDetailInfoPopup.vue new file mode 100644 index 00000000..1689d6c4 --- /dev/null +++ b/pages/supplierDeliver/coms/recordDetailInfoPopup.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/pages/supplierDeliver/coms/recordInfoPopup.vue b/pages/supplierDeliver/coms/recordInfoPopup.vue new file mode 100644 index 00000000..7603a1b8 --- /dev/null +++ b/pages/supplierDeliver/coms/recordInfoPopup.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/pages/supplierDeliver/coms/recordListDetailPop.vue b/pages/supplierDeliver/coms/recordListDetailPop.vue new file mode 100644 index 00000000..3a8a98f1 --- /dev/null +++ b/pages/supplierDeliver/coms/recordListDetailPop.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/pages/supplierDeliver/coms/recordListPopup.vue b/pages/supplierDeliver/coms/recordListPopup.vue new file mode 100644 index 00000000..88edbd19 --- /dev/null +++ b/pages/supplierDeliver/coms/recordListPopup.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/supplierDeliver/coms/recordtDetailInfoPopup.vue b/pages/supplierDeliver/coms/recordtDetailInfoPopup.vue new file mode 100644 index 00000000..26c801eb --- /dev/null +++ b/pages/supplierDeliver/coms/recordtDetailInfoPopup.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/pages/supplierDeliver/record/supplierDeliverRecord.vue b/pages/supplierDeliver/record/supplierDeliverRecord.vue new file mode 100644 index 00000000..9c0fa09e --- /dev/null +++ b/pages/supplierDeliver/record/supplierDeliverRecord.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/pages/supplierDeliver/record/supplierDeliverRecordDetail.vue b/pages/supplierDeliver/record/supplierDeliverRecordDetail.vue new file mode 100644 index 00000000..ac541401 --- /dev/null +++ b/pages/supplierDeliver/record/supplierDeliverRecordDetail.vue @@ -0,0 +1,274 @@ + + + + + + diff --git a/pages/tabBar/API/API.nvue b/pages/tabBar/API/API.nvue new file mode 100644 index 00000000..47e2e744 --- /dev/null +++ b/pages/tabBar/API/API.nvue @@ -0,0 +1,494 @@ + + + + diff --git a/pages/tabBar/component/component.nvue b/pages/tabBar/component/component.nvue new file mode 100644 index 00000000..48979f2a --- /dev/null +++ b/pages/tabBar/component/component.nvue @@ -0,0 +1,216 @@ + + + + diff --git a/pages/tabBar/component/component.test.js b/pages/tabBar/component/component.test.js new file mode 100644 index 00000000..1706a090 --- /dev/null +++ b/pages/tabBar/component/component.test.js @@ -0,0 +1,57 @@ +describe('pages/tabBar/component/component.nvue', () => { + let page + beforeAll(async () => { + // 重新reLaunch至首页,并获取首页page对象(其中 program 是uni-automator自动注入的全局对象) + page = await program.reLaunch('/pages/tabBar/component/component') + await page.waitFor(1000) + }) + + it('u-link', async () => { + // 检测首页u-link的文本内容 + expect(await (await page.$('.hello-link')).text()).toBe( + 'https://uniapp.dcloud.io/component/') + }) + + it('视图容器', async () => { + let panelText = await page.$('.uni-panel-text') + // 检测首个 panel 是视图容器 + expect(await panelText.text()).toBe( + '视图容器') + + // 检测首个 panel 切换展开 + const panelH = await page.$('.uni-panel-h'); + // 不能做完全匹配,百度小程序会生成额外的class + expect(await panelH.attribute('class')).toContain('uni-panel-h') + await panelH.tap() + await page.waitFor(500) + // 已展开 + expect(await panelH.attribute('class')).toContain('uni-panel-h-on') + }) + + // it('.uni-panel', async () => { + // const lists = await page.$$('.uni-panel') + // expect(lists.length).toBe(9) + // }) + + it('.uni-panel action', async () => { + const listHead = await page.$('.uni-panel-h') + expect(await listHead.attribute('class')).toContain('uni-panel-h-on') + await listHead.tap() + await page.waitFor(200) + expect(await listHead.attribute('class')).toContain( + 'uni-panel-h', + ) + + // 展开第一个 panel,点击第一个 item,验证打开的新页面是否正确 + await listHead.tap() + await page.waitFor(200) + const item = await page.$('.uni-navigate-item') + await item.tap() + await page.waitFor(500) + expect((await program.currentPage()).path).toBe('pages/component/view/view') + await page.waitFor(500) + + // 执行 navigateBack 验证是否返回 + expect((await program.navigateBack()).path).toBe('pages/tabBar/component/component') + }) +}) diff --git a/pages/tabBar/extUI/extUI.nvue b/pages/tabBar/extUI/extUI.nvue new file mode 100644 index 00000000..aa311915 --- /dev/null +++ b/pages/tabBar/extUI/extUI.nvue @@ -0,0 +1,266 @@ + + + + diff --git a/pages/tabBar/extUI/extUI.test.js b/pages/tabBar/extUI/extUI.test.js new file mode 100644 index 00000000..802681cb --- /dev/null +++ b/pages/tabBar/extUI/extUI.test.js @@ -0,0 +1,58 @@ +describe('pages/tabBar/extUI/extUI.nvue', () => { + let page + beforeAll(async () => { + // 重新reLaunch至首页,并获取首页page对象(其中 program 是uni-automator自动注入的全局对象) + page = await program.reLaunch('/pages/tabBar/extUI/extUI') + if (process.env.UNI_PLATFORM === "h5") { + await page.waitFor(1000) + } + if (process.env.UNI_PLATFORM === "mp-weixin" || process.env.UNI_PLATFORM === "mp-baidu") { + await page.waitFor(10000) + } + + page = await program.currentPage() + + }) + /** + * 点击 u-link 组件 + */ + it('u-link 点击', async () => { + const helloLink = await page.$('.hello-link') + // 检测首页u-link的文本内容 + expect(await helloLink.text()).toBe( + 'https://ext.dcloud.net.cn') + }) + + /** + * 检测列表长度,是否发生变化 + */ + it('.uni-panel 列表长度', async () => { + const lists = await page.$$('.uni-panel') + expect(lists.length).toBe(29) + }) + + /** + * 检测打开列表第一个元素是否正确 + */ + it('.uni-panel-h tap 打开 badge 组件', async () => { + // 检测首个 panel 是视图容器 + expect(await (await page.$('.uni-panel-text')).text()).toBe( + 'Badge 数字角标') + + const listHead = await page.$('.uni-panel-h') + // 是否获取正确的元素 + expect(await listHead.attribute('class')).toContain( + 'uni-panel-h', + ) + + // 点击第一个 item,验证打开的新页面是否正确 + await listHead.tap() + await page.waitFor(2000) + + expect((await program.currentPage()).path).toBe('pages/extUI/badge/badge') + await page.waitFor(500) + // 执行 navigateBack 验证是否返回 + expect((await program.navigateBack()).path).toBe('pages/tabBar/extUI/extUI') + }) + +}) diff --git a/pages/tabBar/template/template.nvue b/pages/tabBar/template/template.nvue new file mode 100644 index 00000000..ed529836 --- /dev/null +++ b/pages/tabBar/template/template.nvue @@ -0,0 +1,210 @@ + + + + diff --git a/pages/template/component-communication/bus.js b/pages/template/component-communication/bus.js new file mode 100644 index 00000000..94950da1 --- /dev/null +++ b/pages/template/component-communication/bus.js @@ -0,0 +1,3 @@ +import Vue from 'vue' + +export default new Vue() \ No newline at end of file diff --git a/pages/template/component-communication/component-communication.vue b/pages/template/component-communication/component-communication.vue new file mode 100644 index 00000000..851345f6 --- /dev/null +++ b/pages/template/component-communication/component-communication.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/template/component-communication/reciver.vue b/pages/template/component-communication/reciver.vue new file mode 100644 index 00000000..c307e1cd --- /dev/null +++ b/pages/template/component-communication/reciver.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/template/component-communication/sender-bus.vue b/pages/template/component-communication/sender-bus.vue new file mode 100644 index 00000000..ceb4f821 --- /dev/null +++ b/pages/template/component-communication/sender-bus.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/pages/template/component-communication/sender.vue b/pages/template/component-communication/sender.vue new file mode 100644 index 00000000..59eb69d4 --- /dev/null +++ b/pages/template/component-communication/sender.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/pages/template/crop/crop.vue b/pages/template/crop/crop.vue new file mode 100644 index 00000000..f7dd0f79 --- /dev/null +++ b/pages/template/crop/crop.vue @@ -0,0 +1,639 @@ + + + + + diff --git a/pages/template/global/global.vue b/pages/template/global/global.vue new file mode 100644 index 00000000..481efaa9 --- /dev/null +++ b/pages/template/global/global.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/pages/template/list-with-badges/list-with-badges.vue b/pages/template/list-with-badges/list-with-badges.vue new file mode 100644 index 00000000..b0fa31e7 --- /dev/null +++ b/pages/template/list-with-badges/list-with-badges.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/pages/template/list-with-collapses/list-with-collapses.vue b/pages/template/list-with-collapses/list-with-collapses.vue new file mode 100644 index 00000000..d33228a8 --- /dev/null +++ b/pages/template/list-with-collapses/list-with-collapses.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/pages/template/list2detail-detail/list2detail-detail.vue b/pages/template/list2detail-detail/list2detail-detail.vue new file mode 100644 index 00000000..8ec90d52 --- /dev/null +++ b/pages/template/list2detail-detail/list2detail-detail.vue @@ -0,0 +1,191 @@ + + + + + diff --git a/pages/template/list2detail-list/list2detail-list.vue b/pages/template/list2detail-list/list2detail-list.vue new file mode 100644 index 00000000..48ec8e5b --- /dev/null +++ b/pages/template/list2detail-list/list2detail-list.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/pages/template/nav-button/nav-button.vue b/pages/template/nav-button/nav-button.vue new file mode 100644 index 00000000..85d16768 --- /dev/null +++ b/pages/template/nav-button/nav-button.vue @@ -0,0 +1,32 @@ + + + + diff --git a/pages/template/nav-city-dropdown/nav-city-dropdown.vue b/pages/template/nav-city-dropdown/nav-city-dropdown.vue new file mode 100644 index 00000000..3dfb263b --- /dev/null +++ b/pages/template/nav-city-dropdown/nav-city-dropdown.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/pages/template/nav-default/nav-default.vue b/pages/template/nav-default/nav-default.vue new file mode 100644 index 00000000..e902134a --- /dev/null +++ b/pages/template/nav-default/nav-default.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/pages/template/nav-dot/nav-dot.vue b/pages/template/nav-dot/nav-dot.vue new file mode 100644 index 00000000..502134fe --- /dev/null +++ b/pages/template/nav-dot/nav-dot.vue @@ -0,0 +1,66 @@ + + + + diff --git a/pages/template/nav-image/nav-image.vue b/pages/template/nav-image/nav-image.vue new file mode 100644 index 00000000..829208f1 --- /dev/null +++ b/pages/template/nav-image/nav-image.vue @@ -0,0 +1,26 @@ + + + + diff --git a/pages/template/nav-search-input/detail/detail.vue b/pages/template/nav-search-input/detail/detail.vue new file mode 100644 index 00000000..eb70baf1 --- /dev/null +++ b/pages/template/nav-search-input/detail/detail.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/pages/template/nav-search-input/nav-search-input.vue b/pages/template/nav-search-input/nav-search-input.vue new file mode 100644 index 00000000..b8b0f50f --- /dev/null +++ b/pages/template/nav-search-input/nav-search-input.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/pages/template/nav-transparent/nav-transparent.vue b/pages/template/nav-transparent/nav-transparent.vue new file mode 100644 index 00000000..53210412 --- /dev/null +++ b/pages/template/nav-transparent/nav-transparent.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/pages/template/scheme/scheme.vue b/pages/template/scheme/scheme.vue new file mode 100644 index 00000000..8a79d379 --- /dev/null +++ b/pages/template/scheme/scheme.vue @@ -0,0 +1,154 @@ + + + + diff --git a/pages/template/swiper-list-nvue/swiper-list-nvue.nvue b/pages/template/swiper-list-nvue/swiper-list-nvue.nvue new file mode 100644 index 00000000..f4a152aa --- /dev/null +++ b/pages/template/swiper-list-nvue/swiper-list-nvue.nvue @@ -0,0 +1,393 @@ + + + + + diff --git a/pages/template/swiper-list-nvue/swiper-page.nvue b/pages/template/swiper-list-nvue/swiper-page.nvue new file mode 100644 index 00000000..2923e64c --- /dev/null +++ b/pages/template/swiper-list-nvue/swiper-page.nvue @@ -0,0 +1,87 @@ + + + + + diff --git a/pages/template/swiper-list/swiper-list.nvue b/pages/template/swiper-list/swiper-list.nvue new file mode 100644 index 00000000..aedbddb9 --- /dev/null +++ b/pages/template/swiper-list/swiper-list.nvue @@ -0,0 +1,363 @@ + + + + + diff --git a/pages/template/swiper-list/swiper-page.nvue b/pages/template/swiper-list/swiper-page.nvue new file mode 100644 index 00000000..bb8135fe --- /dev/null +++ b/pages/template/swiper-list/swiper-page.nvue @@ -0,0 +1,45 @@ + + + + + diff --git a/pages/template/swiper-vertical/swiper-vertical.nvue b/pages/template/swiper-vertical/swiper-vertical.nvue new file mode 100644 index 00000000..4a276b1d --- /dev/null +++ b/pages/template/swiper-vertical/swiper-vertical.nvue @@ -0,0 +1,175 @@ + + + + diff --git a/pages/template/tabbar/detail/detail.vue b/pages/template/tabbar/detail/detail.vue new file mode 100644 index 00000000..7025348a --- /dev/null +++ b/pages/template/tabbar/detail/detail.vue @@ -0,0 +1,22 @@ + + + diff --git a/pages/template/tabbar/news-item.nvue b/pages/template/tabbar/news-item.nvue new file mode 100644 index 00000000..5102b517 --- /dev/null +++ b/pages/template/tabbar/news-item.nvue @@ -0,0 +1,211 @@ + + + + + diff --git a/pages/template/tabbar/tabbar.nvue b/pages/template/tabbar/tabbar.nvue new file mode 100644 index 00000000..4a4739be --- /dev/null +++ b/pages/template/tabbar/tabbar.nvue @@ -0,0 +1,436 @@ + + + + diff --git a/pages/template/ucharts/ucharts.vue b/pages/template/ucharts/ucharts.vue new file mode 100644 index 00000000..db80d110 --- /dev/null +++ b/pages/template/ucharts/ucharts.vue @@ -0,0 +1,1226 @@ + + + + + diff --git a/pages/template/vant-button/vant-button.vue b/pages/template/vant-button/vant-button.vue new file mode 100644 index 00000000..dd07066c --- /dev/null +++ b/pages/template/vant-button/vant-button.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/pages/transfer/coms/comTransferJobCard.vue b/pages/transfer/coms/comTransferJobCard.vue new file mode 100644 index 00000000..8fdddad7 --- /dev/null +++ b/pages/transfer/coms/comTransferJobCard.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/pages/transfer/coms/comTransferRecord.vue b/pages/transfer/coms/comTransferRecord.vue new file mode 100644 index 00000000..2ee03421 --- /dev/null +++ b/pages/transfer/coms/comTransferRecord.vue @@ -0,0 +1,431 @@ + + + + + + diff --git a/pages/transfer/coms/detailInfoPopup.vue b/pages/transfer/coms/detailInfoPopup.vue new file mode 100644 index 00000000..2fc76f5b --- /dev/null +++ b/pages/transfer/coms/detailInfoPopup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/pages/transfer/coms/jobInfoPopup.vue b/pages/transfer/coms/jobInfoPopup.vue new file mode 100644 index 00000000..465fb5a2 --- /dev/null +++ b/pages/transfer/coms/jobInfoPopup.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/pages/transfer/coms/jobListPopup.vue b/pages/transfer/coms/jobListPopup.vue new file mode 100644 index 00000000..4301be07 --- /dev/null +++ b/pages/transfer/coms/jobListPopup.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/pages/transfer/job/issueDetail.vue b/pages/transfer/job/issueDetail.vue new file mode 100644 index 00000000..89a0c25c --- /dev/null +++ b/pages/transfer/job/issueDetail.vue @@ -0,0 +1,529 @@ + + + + + diff --git a/pages/transfer/job/issueJob.vue b/pages/transfer/job/issueJob.vue new file mode 100644 index 00000000..d2983849 --- /dev/null +++ b/pages/transfer/job/issueJob.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/pages/transfer/job/receiptDetail.vue b/pages/transfer/job/receiptDetail.vue new file mode 100644 index 00000000..44aaf5ec --- /dev/null +++ b/pages/transfer/job/receiptDetail.vue @@ -0,0 +1,505 @@ + + + + + diff --git a/pages/transfer/job/receiptJob.vue b/pages/transfer/job/receiptJob.vue new file mode 100644 index 00000000..eeeda509 --- /dev/null +++ b/pages/transfer/job/receiptJob.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/pages/transfer/job/transferDetail.vue b/pages/transfer/job/transferDetail.vue new file mode 100644 index 00000000..4d84271f --- /dev/null +++ b/pages/transfer/job/transferDetail.vue @@ -0,0 +1,616 @@ + + + + + diff --git a/pages/transfer/job/transferJob.vue b/pages/transfer/job/transferJob.vue new file mode 100644 index 00000000..b3ac330a --- /dev/null +++ b/pages/transfer/job/transferJob.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/pages/transfer/record/issueRecord.vue b/pages/transfer/record/issueRecord.vue new file mode 100644 index 00000000..a7dcceb2 --- /dev/null +++ b/pages/transfer/record/issueRecord.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/pages/transfer/record/receiptRecord.vue b/pages/transfer/record/receiptRecord.vue new file mode 100644 index 00000000..efd0c4ea --- /dev/null +++ b/pages/transfer/record/receiptRecord.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/pages/unPlanned/coms/comBalance.vue b/pages/unPlanned/coms/comBalance.vue new file mode 100644 index 00000000..45e326fb --- /dev/null +++ b/pages/unPlanned/coms/comBalance.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/pages/unPlanned/coms/comIssueDetailCard.vue b/pages/unPlanned/coms/comIssueDetailCard.vue new file mode 100644 index 00000000..456c22bb --- /dev/null +++ b/pages/unPlanned/coms/comIssueDetailCard.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/pages/unPlanned/coms/comIssueJobCard.vue b/pages/unPlanned/coms/comIssueJobCard.vue new file mode 100644 index 00000000..f9d352fd --- /dev/null +++ b/pages/unPlanned/coms/comIssueJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/unPlanned/coms/comIssueRequestCard.vue b/pages/unPlanned/coms/comIssueRequestCard.vue new file mode 100644 index 00000000..3ca67a93 --- /dev/null +++ b/pages/unPlanned/coms/comIssueRequestCard.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/pages/unPlanned/coms/comReceiptDetailCard.vue b/pages/unPlanned/coms/comReceiptDetailCard.vue new file mode 100644 index 00000000..cd119f55 --- /dev/null +++ b/pages/unPlanned/coms/comReceiptDetailCard.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/pages/unPlanned/coms/comReceiptJobCard.vue b/pages/unPlanned/coms/comReceiptJobCard.vue new file mode 100644 index 00000000..7038fc1d --- /dev/null +++ b/pages/unPlanned/coms/comReceiptJobCard.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/pages/unPlanned/coms/comReceiptRecord.vue b/pages/unPlanned/coms/comReceiptRecord.vue new file mode 100644 index 00000000..2bc2353e --- /dev/null +++ b/pages/unPlanned/coms/comReceiptRecord.vue @@ -0,0 +1,175 @@ + + + + + diff --git a/pages/unPlanned/coms/comReceiptRequestCard.vue b/pages/unPlanned/coms/comReceiptRequestCard.vue new file mode 100644 index 00000000..f9784b43 --- /dev/null +++ b/pages/unPlanned/coms/comReceiptRequestCard.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/pages/unPlanned/coms/detailInfoPopup.vue b/pages/unPlanned/coms/detailInfoPopup.vue new file mode 100644 index 00000000..f9dafe90 --- /dev/null +++ b/pages/unPlanned/coms/detailInfoPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/unPlanned/coms/jobInfoPopup.vue b/pages/unPlanned/coms/jobInfoPopup.vue new file mode 100644 index 00000000..9076bb71 --- /dev/null +++ b/pages/unPlanned/coms/jobInfoPopup.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/pages/unPlanned/coms/jobListPopup.vue b/pages/unPlanned/coms/jobListPopup.vue new file mode 100644 index 00000000..d57df207 --- /dev/null +++ b/pages/unPlanned/coms/jobListPopup.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/pages/unPlanned/coms/requestIssDetailInfoPopup.vue b/pages/unPlanned/coms/requestIssDetailInfoPopup.vue new file mode 100644 index 00000000..584178df --- /dev/null +++ b/pages/unPlanned/coms/requestIssDetailInfoPopup.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/pages/unPlanned/coms/requestIssInfoPopup.vue b/pages/unPlanned/coms/requestIssInfoPopup.vue new file mode 100644 index 00000000..c7bda5c4 --- /dev/null +++ b/pages/unPlanned/coms/requestIssInfoPopup.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/unPlanned/coms/requestRecDetailInfoPopup.vue b/pages/unPlanned/coms/requestRecDetailInfoPopup.vue new file mode 100644 index 00000000..acb6cb5f --- /dev/null +++ b/pages/unPlanned/coms/requestRecDetailInfoPopup.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/pages/unPlanned/coms/requestRecInfoPopup.vue b/pages/unPlanned/coms/requestRecInfoPopup.vue new file mode 100644 index 00000000..d666cb2d --- /dev/null +++ b/pages/unPlanned/coms/requestRecInfoPopup.vue @@ -0,0 +1,57 @@ + + + + + diff --git a/pages/unPlanned/job/issueJob.vue b/pages/unPlanned/job/issueJob.vue new file mode 100644 index 00000000..66839797 --- /dev/null +++ b/pages/unPlanned/job/issueJob.vue @@ -0,0 +1,296 @@ + + + + + diff --git a/pages/unPlanned/job/issueJobDetail.vue b/pages/unPlanned/job/issueJobDetail.vue new file mode 100644 index 00000000..b4554fc4 --- /dev/null +++ b/pages/unPlanned/job/issueJobDetail.vue @@ -0,0 +1,461 @@ + + + + + + diff --git a/pages/unPlanned/job/receiptJob.vue b/pages/unPlanned/job/receiptJob.vue new file mode 100644 index 00000000..b0eed125 --- /dev/null +++ b/pages/unPlanned/job/receiptJob.vue @@ -0,0 +1,280 @@ + + + + + diff --git a/pages/unPlanned/job/receiptJobDetail.vue b/pages/unPlanned/job/receiptJobDetail.vue new file mode 100644 index 00000000..6a9b90bf --- /dev/null +++ b/pages/unPlanned/job/receiptJobDetail.vue @@ -0,0 +1,477 @@ + + + + + + diff --git a/pages/unPlanned/record/issueRecord.vue b/pages/unPlanned/record/issueRecord.vue new file mode 100644 index 00000000..faa460e5 --- /dev/null +++ b/pages/unPlanned/record/issueRecord.vue @@ -0,0 +1,216 @@ + + + + + diff --git a/pages/unPlanned/record/receiptRecord.vue b/pages/unPlanned/record/receiptRecord.vue new file mode 100644 index 00000000..cbc3a5cc --- /dev/null +++ b/pages/unPlanned/record/receiptRecord.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/pages/unPlanned/request/issueRequest.vue b/pages/unPlanned/request/issueRequest.vue new file mode 100644 index 00000000..6c1b451d --- /dev/null +++ b/pages/unPlanned/request/issueRequest.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/pages/unPlanned/request/issueRequestDetail.vue b/pages/unPlanned/request/issueRequestDetail.vue new file mode 100644 index 00000000..b8765a95 --- /dev/null +++ b/pages/unPlanned/request/issueRequestDetail.vue @@ -0,0 +1,118 @@ + + + + + + diff --git a/pages/unPlanned/request/receiptRequest.vue b/pages/unPlanned/request/receiptRequest.vue new file mode 100644 index 00000000..bea896ee --- /dev/null +++ b/pages/unPlanned/request/receiptRequest.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/pages/unPlanned/request/receiptRequestDetail.vue b/pages/unPlanned/request/receiptRequestDetail.vue new file mode 100644 index 00000000..169a4231 --- /dev/null +++ b/pages/unPlanned/request/receiptRequestDetail.vue @@ -0,0 +1,123 @@ + + + + + + diff --git a/pages/work/index.vue b/pages/work/index.vue deleted file mode 100644 index 1afefc91..00000000 --- a/pages/work/index.vue +++ /dev/null @@ -1,183 +0,0 @@ - - - - - diff --git a/permission.js b/permission.js deleted file mode 100644 index a47d9473..00000000 --- a/permission.js +++ /dev/null @@ -1,39 +0,0 @@ -import { getAccessToken } from '@/utils/auth' - -// 登录页面 -const loginPage = "/pages/login" - -// 页面白名单 -const whiteList = [ - '/pages/login', '/pages/common/webview/index' -] - -// 检查地址白名单 -function checkWhite(url) { - const path = url.split('?')[0] - return whiteList.indexOf(path) !== -1 -} - -// 页面跳转验证拦截器 -let list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"] -list.forEach(item => { - uni.addInterceptor(item, { - invoke(to) { - if (getAccessToken()) { - if (to.path === loginPage) { - uni.reLaunch({ url: "/" }) - } - return true - } else { - if (checkWhite(to.url)) { - return true - } - uni.reLaunch({ url: loginPage }) - return false - } - }, - fail(err) { - console.log(err) - } - }) -}) diff --git a/platforms/app-plus/feedback/feedback.vue b/platforms/app-plus/feedback/feedback.vue new file mode 100644 index 00000000..03731665 --- /dev/null +++ b/platforms/app-plus/feedback/feedback.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/platforms/app-plus/orientation/orientation.vue b/platforms/app-plus/orientation/orientation.vue new file mode 100644 index 00000000..ba636c4e --- /dev/null +++ b/platforms/app-plus/orientation/orientation.vue @@ -0,0 +1,64 @@ +