diff --git a/components/head-info/head-info.vue b/components/head-info/head-info.vue index 8c7e1ec..431383a 100644 --- a/components/head-info/head-info.vue +++ b/components/head-info/head-info.vue @@ -572,7 +572,7 @@ .borContent { width: 100%; - height: 120px; + height: 140px; overflow: scroll; display: flex; flex-direction: column; diff --git a/components/lx-progress-bar/lx-progress-bar.vue b/components/lx-progress-bar/lx-progress-bar.vue new file mode 100644 index 0000000..2065c19 --- /dev/null +++ b/components/lx-progress-bar/lx-progress-bar.vue @@ -0,0 +1,225 @@ + + + {{ title }} + + + + + + + {{ singleText }} + + 1 + + + + + {{ singleText }} + + + + + + + + + {{ singleText }} + + 1 + + + 1 + + + + {{ doubleText }} + + 1 + + + + + + + + + + diff --git a/components/lx-progress-bar/props.js b/components/lx-progress-bar/props.js new file mode 100644 index 0000000..adcdb11 --- /dev/null +++ b/components/lx-progress-bar/props.js @@ -0,0 +1,84 @@ +export default { + props: { + // 标题 + title: { + type: String, + required: true + }, + // 标题样式 + titleStyle: { + type: String, + }, + // 总数,计算的分母 + total: { + type: Number, + required: true + }, + // 第一个值 + firstValue: { + type: Number, + required: true + }, + // 第二个值 + secondValue: { + type: Number + }, + // 进度条背景颜色 + backColor: { + type: String, + default: '#f2f2f2' + }, + // 进度条高度 + barHeight: { + type: String + }, + // 进度条圆角 + barRadius: { + type: String + }, + // 进度条颜色 + contentColor: { + type: String, + default: '#4cd964' + }, + // 进度条2颜色 + contentColor2: { + type: String, + default: '#f0ad4e' + }, + // 进度条最小长度 + minWidth: { + type: String + }, + // 文字大小 + textSize: { + type: String, + default: '16px' + }, + // 文字颜色 + textColor: { + type: String, + default: '#333333' + }, + // 文字内显、外显、不显,可选值:inside/outside/none + textPosition: { + type: String, + default: 'inside' + }, + // 展示百分比或值 + percentum: { + type: Boolean, + default: false + }, + // 百分比精确到小数点后几位 + precision: { + type: [String, Number], + default: 2 + }, + // 是否选择动画加载 + animation: { + type: Boolean, + default: false + } + } +} \ No newline at end of file diff --git a/pages/discharge/index.vue b/pages/discharge/index.vue index d8c21ac..3354f68 100644 --- a/pages/discharge/index.vue +++ b/pages/discharge/index.vue @@ -151,6 +151,12 @@ // 选择船输入框 shipInput(e) { this.shipValue = e + if (e == "") { + this.vvyId = "" + this.vvyShip = "" + this.shipId = "" + this.shipName = "" + } this.getShip() }, // 获取船舶 @@ -254,7 +260,7 @@ line-height: 35px; padding-left: 10px; margin-right: 15px; - margin-top: 8px; + margin-top: 10px; } .btn { @@ -265,7 +271,7 @@ color: #fff; background-color: #0067CF; margin-right: 10px; - margin-top: 8px; + margin-top: 10px; } } diff --git a/pages/discharge/instruct.vue b/pages/discharge/instruct.vue index 03236e0..f3bdef4 100644 --- a/pages/discharge/instruct.vue +++ b/pages/discharge/instruct.vue @@ -75,113 +75,116 @@ - - - - - - - - 品牌:{{item.brdName}} - - - - 卸船进度 - - - - {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - - - - 车辆数量: - {{item.vehicleCount}} - - - 备件数量: - {{item.sparePartsCount}} - - - 总指令发送人: - {{item.totalSendUser}} - - - - - 负责人: - {{item.responsiblePerson}} - - - 发送时间: - {{item.totalSendTime}} - - - - - 展开 - - - 收起 - - - - - - + + + + + - {{item2.mnfBl}} - 详情 + + + + 品牌:{{item.brdName}} + - - - 车型: - {{item2.bvmName}} + + 卸船进度 + + - - 型号: - {{item2.model}} + {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + + + + 车辆数量: + {{item.vehicleCount}} - - 数量: - {{item2.amount}} + + 备件数量: + {{item.sparePartsCount}} - - 场位: - {{item2.yardPos}} + + 总指令发送人: + {{item.totalSendUser}} + + + + + 负责人: + {{item.responsiblePerson}} + + + 发送时间: + {{item.totalSendTime}} - + + 展开 + + + 收起 + + + + + + + + {{item2.mnfBl}} + 详情 + + + + 车型: + {{item2.bvmName}} + + + 型号: + {{item2.model}} + + + 数量: + {{item2.amount}} + + + 场位: + {{item2.yardPos}} + + + + + + - - + + - @@ -247,13 +250,156 @@ - + + + + + + + + + + + + + 品牌:{{item.brdName}} + + + + 卸船进度 + + + + {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + + + + 车辆数量: + {{item.vehicleCount}} + + + 备件数量: + {{item.sparePartsCount}} + + + 分指令发送人: + {{item.totalSendUser}} + + + + + 负责人: + {{item.responsiblePerson}} + + + 发送时间: + {{item.totalSendTime}} + + + + + + 指令下发 + + + + 展开 + + + 收起 + + + + + + + + {{item2.mnfBl}} + 详情 + + + + 中转港: + {{item2.transitPortName}} + + + 品牌: + {{item2.brdName}} + + + 车型: + {{item2.goodsTypeName}} + + + 型号: + {{item2.bvdName}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - @@ -296,10 +442,6 @@ 备件数量: {{item.sparePartsCount}} - - 分指令发送人: - {{item.totalSendUser}} - @@ -311,13 +453,15 @@ {{item.totalSendTime}} - - - 指令下发 + + + 分指令发送人: + {{item.totalSendUser}} + - + 展开 @@ -325,7 +469,7 @@ - + @@ -355,143 +499,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 品牌:{{item.brdName}} - - - - 卸船进度 - - - - {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - - - - 车辆数量: - {{item.vehicleCount}} - - - 备件数量: - {{item.sparePartsCount}} - - - - - 负责人: - {{item.responsiblePerson}} - - - 发送时间: - {{item.totalSendTime}} - - - - - 分指令发送人: - {{item.totalSendUser}} - - - - - 展开 - - - 收起 - - - - - - - - {{item2.mnfBl}} - 详情 - - - - 中转港: - {{item2.transitPortName}} - - - 品牌: - {{item2.brdName}} - - - 车型: - {{item2.goodsTypeName}} - - - 型号: - {{item2.bvdName}} - - - - - - - + + - @@ -767,8 +779,7 @@ placeTabs: 0, // 分页 - total: 0, - pageSize: 4, + pageSize: 10, current: 1, } }, @@ -813,6 +824,7 @@ this.bvmName = '' this.itemList = [] this.tabsValue = e.value + this.current = 1 this.zTjActive = -1 if (e.value == 1 || e.value == 2) { this.loadOtherOrder() @@ -897,7 +909,7 @@ this.brdId = num } uni.request({ - url: `${this.$local}/api/unload/command/page?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&bvmId=${this.bvmId}&tradeType=${this.tradeType}`, + url: `${this.$local}/api/unload/command/page?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&bvmId=${this.bvmId}&tradeType=${this.tradeType}&size=${this.pageSize}¤t=${this.current}`, header: { 'Content-Type': 'application/json', //自定义请求头信息 'Authorization': `Bearer ${this.loginObj.access_token}` @@ -905,10 +917,15 @@ method: 'GET', //请求方式,必须为大写 success: (res) => { console.log(res) - this.itemList = res.data.data.records - this.total = res.data.data.total + this.itemList.push(...res.data.data.records) + if (res.data.data.records.length == 10) { + this.current++ + this.loadSumOrder() + } this.itemList.forEach((v, index) => { // if (v.branchPlanStatus == 0) { + v.image = '../../static/images/theme/car1.png' + v.index = index this.zzlLwpIdList.push(v.lwpId) // } this.getBottomInfo(v.lwpId, index) @@ -934,9 +951,14 @@ method: 'GET', //请求方式,必须为大写 success: (res) => { console.log(res) - this.itemList = res.data.data.records - this.total = res.data.data.total + this.itemList.push(...res.data.data.records) + if (res.data.data.records.length == 10) { + this.current++ + this.loadOtherOrder() + } this.itemList.forEach((v, index) => { + v.image = '../../static/images/theme/car1.png' + v.index = index this.getBottomInfo(v.lwpId, index) }) } @@ -1321,9 +1343,14 @@ color: #108ee9; } + page { + overflow: hidden; + } + .content { background-color: #F6F7F9; position: relative; + overflow: hidden; /deep/.tab .tab-bar { height: 66px; @@ -1338,6 +1365,7 @@ color: #23262E; font-weight: bold; font-family: PingFangSC-Semibold; + padding: 0 24px !important; } /deep/.tab .tab-bar-item.active { @@ -1356,6 +1384,27 @@ .main { height: calc(100vh - 134px); + overflow: hidden; + } + + .askBox { + width: 97%; + padding: 20px; + margin: 20px; + background: #fff; + height: 300px; + overflow: scroll; + + .title { + font-size: 20px; + font-weight: bold; + text-align: center; + } + + .askContent { + font-size: 16px; + margin-top: 20px; + } } .pageBox { @@ -1599,233 +1648,241 @@ } .itemBox { - height: 465px; + height: 535px; overflow: scroll; + padding-bottom: 60px; } .itemList { display: flex; flex-wrap: wrap; justify-content: space-between; + align-items: flex-start; padding: 0 12px; - max-height: 70vh; - overflow: scroll; .exp { - // width: 100%; - width: 49.5%; + width: 100%; margin-bottom: 15px; background: #FFFFFF; border-radius: 8px; padding: 12px; padding-right: 0; position: relative; + } - .rowHead { - /deep/uni-checkbox .uni-checkbox-input { - width: 16px !important; - height: 16px !important; + /deep/.waterfalls-flow { + width: 100%; + } + + /deep/.waterfalls-flow-column { + margin-left: 2%; + } + + .rowHead { + /deep/uni-checkbox .uni-checkbox-input { + width: 16px !important; + height: 16px !important; + } + } + + .row { + display: flex; + padding: 5px 0px; + + .title { + display: flex; + font-size: 16px; + color: #23262E; + font-weight: bold; + + .titleImg { + width: 18px; + height: 18px; + margin-right: 5px; + margin-top: 2px; } } - .row { + .schedule { + padding: 5px 8px; + background: #F7F7F7; + margin-left: 8px; display: flex; + .text { + font-size: 12px; + color: #999999; + } + + .progressBox { + width: 50px; + margin-top: 5px; + margin: 5px 8px; + } + } + + .planStatus { + width: 68px; + height: 26px; + border-radius: 13px 0 0 13px; + position: absolute; + right: 0; + top: 16px; + text-align: center; + line-height: 26px; + + .text { + font-size: 16px; + font-weight: bold; + } + } + + .planStatus0 { + background: #F1F8FF; + + .text { + color: #0067CF; + } + } + + .planStatus1 { + background: #F7F7F7; + + .text { + color: #666; + } + } + + .planStatus3 { + background: #E8FFF7; + + .text { + color: #04B578; + } + } + + .planStatus5 { + background: #FFF5F0; + + .text { + color: #fc4f00; + } + } + + + .rowInfo { + display: flex; + flex-direction: column; + font-size: 14px; + width: 48%; + margin-top: 10px; + border-right: 1px solid #eee; + gap: 12px; + margin-left: 10px; + + text:first-child { + color: #999999; + } + + text:last-child { + color: #23262E; + } + } + + .rowInfo:last-child { + border: none; + } + } + + .xfBtn { + display: flex; + justify-content: flex-end; + padding: 10px 0; + border-top: 1px solid rgba(0, 0, 0, .1); + margin-top: 10px; + + .btn { + padding: 8px 12px; + text-align: center; + color: #fff; + background: #0067CF; + border-radius: 4px; + font-size: 12px; + margin-right: 28px; + } + + .stopbtn { + border: 1px solid #FC4F00; + color: #FC4F00; + background-color: #fff; + } + } + + .expand { + position: absolute; + left: 47%; + bottom: -10px; + font-size: 12px; + color: #23262E; + background: #FFFFFF; + text-align: center; + line-height: 14px; + border: 1px solid #EEEEEE; + border-radius: 13px; + padding: 6px; + } + + .details { + padding-right: 16px; + margin-top: 16px; + + .itemDetails { + background: rgba(236, 242, 249, .7); + + .detailsBox { + padding: 16px; + border-bottom: 1px dashed #D3DCE6; + } + .title { + width: 100%; display: flex; - font-size: 16px; - color: #23262E; - font-weight: bold; + justify-content: space-between; - .titleImg { - width: 18px; - height: 18px; - margin-right: 5px; + text { + font-size: 16px; + color: #23262E; margin-top: 2px; } - } - .schedule { - padding: 5px 8px; - background: #F7F7F7; - margin-left: 8px; - display: flex; - - .text { - font-size: 12px; - color: #999999; - } - - .progressBox { - width: 50px; - margin-top: 5px; - margin: 5px 8px; - } - } - - .planStatus { - width: 68px; - height: 26px; - border-radius: 13px 0 0 13px; - position: absolute; - right: 0; - top: 16px; - text-align: center; - line-height: 26px; - - .text { - font-size: 16px; - font-weight: bold; - } - } - - .planStatus0 { - background: #F1F8FF; - - .text { + button { + wdith: 50px; + height: 25px; + text-align: center; + line-height: 25px; color: #0067CF; + background: #FFFFFF; + border: 1px solid #EEEEEE; + border-radius: 4px; + font-size: 14px; + margin: 0; } } - .planStatus1 { - background: #F7F7F7; - - .text { - color: #666; - } - } - - .planStatus3 { - background: #E8FFF7; - - .text { - color: #04B578; - } - } - - .planStatus5 { - background: #FFF5F0; - - .text { - color: #fc4f00; - } - } - - - .rowInfo { + .info { display: flex; - flex-direction: column; - font-size: 14px; - width: 48%; - margin-top: 10px; - border-right: 1px solid #eee; - gap: 12px; - margin-left: 10px; + flex-wrap: wrap; - text:first-child { - color: #999999; - } + .cell { + margin-right: 15px; + margin-top: 10px; - text:last-child { - color: #23262E; - } - } + text:first-child { + color: #999999; + } - .rowInfo:last-child { - border: none; - } - } - - .xfBtn { - display: flex; - justify-content: flex-end; - padding: 10px 0; - border-top: 1px solid rgba(0, 0, 0, .1); - margin-top: 10px; - - .btn { - padding: 8px 12px; - text-align: center; - color: #fff; - background: #0067CF; - border-radius: 4px; - font-size: 12px; - margin-right: 28px; - } - - .stopbtn { - border: 1px solid #FC4F00; - color: #FC4F00; - background-color: #fff; - } - } - - .expand { - position: absolute; - left: 47%; - bottom: -10px; - font-size: 12px; - color: #23262E; - background: #FFFFFF; - text-align: center; - line-height: 14px; - border: 1px solid #EEEEEE; - border-radius: 13px; - padding: 6px; - } - - .details { - padding-right: 16px; - margin-top: 16px; - - .itemDetails { - background: rgba(236, 242, 249, .7); - - .detailsBox { - padding: 16px; - border-bottom: 1px dashed #D3DCE6; - } - - .title { - width: 100%; - display: flex; - justify-content: space-between; - - text { - font-size: 16px; + text:last-child { color: #23262E; - margin-top: 2px; - } - - button { - wdith: 50px; - height: 25px; - text-align: center; - line-height: 25px; - color: #0067CF; - background: #FFFFFF; - border: 1px solid #EEEEEE; - border-radius: 4px; - font-size: 14px; - margin: 0; - } - } - - .info { - display: flex; - flex-wrap: wrap; - - .cell { - margin-right: 15px; - margin-top: 10px; - - text:first-child { - color: #999999; - } - - text:last-child { - color: #23262E; - } } } } @@ -1892,6 +1949,7 @@ .imgTable { margin-top: 20px; + padding: 0 20px; .title { font-size: 20px; @@ -1905,36 +1963,43 @@ .imgLi { display: flex; - position: relative; - - .shipImg { - width: 100%; - height: 171px; - } .maskBox { - width: calc(100% - 200px); - height: 150px; - background-color: transparent; - display: flex; - position: absolute; - top: 11px; - left: 60px; + width: 1060px; + height: 191px; + margin: 0 auto; + background: url('@/static/images/ship-split.svg'); + background-repeat: no-repeat; + background-size: contain; + position: relative; + + .line { + position: absolute; + width: 850px; + height: 85%; + top: 15px; + left: 60px; + display: flex; + overflow-y: auto; + + .testLine { + flex: 1; + border-left: 1px solid #999; + } + + .testLine:first-child { + border: none; + } + + .mycanvas { + position: absolute; + top: 0; + left: 0; + width: 850px; + } - .testLine { - flex: 1; - height: 100%; - border-left: 1px solid #999; } - .testLine:first-child { - border-left: none; - } - - .testInfo { - height: 30px; - background-color: #0067CF; - } } .heightBox { @@ -1945,36 +2010,34 @@ } .imgSize { - width: 28px; - height: 28px; + width: 60px; position: absolute; } .leftTopImg { transform: rotate(90deg); - top: 10px; - left: 8px; + top: 5px; + left: -5px; } .imgSize2 { - width: 100px; - height: 30px; + width: 130px; position: absolute; } .leftBotImg { - bottom: 10px; - left: 8px; + bottom: 2px; + left: -1px; } .topImg { - top: -5px; + top: 0; left: 40%; } .botImg { transform: rotate(180deg); - bottom: -6px; + bottom: 0; left: 40%; } } diff --git a/pages/index/index.vue b/pages/index/index.vue index 48d4f35..d6a5afc 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -151,6 +151,12 @@ // 选择船输入框 shipInput(e) { this.shipValue = e + if (e == "") { + this.vvyId = "" + this.vvyShip = "" + this.shipId = "" + this.shipName = "" + } this.getShip() }, // 获取船舶 @@ -206,10 +212,6 @@ this.lotusLoadingData.isShow = false this.total = res.data.data.total this.itemList.push(...res.data.data.records) - this.vvyId = "" - this.vvyShip = "" - this.shipId = "" - this.shipName = "" } }) }, @@ -265,7 +267,7 @@ line-height: 35px; padding-left: 10px; margin-right: 15px; - margin-top: 8px; + margin-top: 10px; } .btn { @@ -276,7 +278,7 @@ color: #fff; background-color: #0067CF; margin-right: 10px; - margin-top: 8px; + margin-top: 10px; } } diff --git a/pages/index/instruct.vue b/pages/index/instruct.vue index 918389f..377ef55 100644 --- a/pages/index/instruct.vue +++ b/pages/index/instruct.vue @@ -78,114 +78,116 @@ - - - - - - - - 船舱层数:{{item.shipDeck}}层{{item.cabinNo}}舱 - - - - 装船进度 - - - - {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - {{item.totalPlanStatusDesc}} - - - - - - 数量: - {{item.totalCount}} - - - 港口: - {{item.potName}} - - - 发送人: - {{item.totalSendUser}} - - - - - 负责人: - {{item.responsiblePerson}} - - - 发送时间: - {{item.totalSendTime}} - - - - - 展开 - - - 收起 - - - - - - + + + + + - {{item2.mnfBl}} - 详情 + + + + 船舱层数:{{item.shipDeck}}层{{item.cabinNo}}舱 + - - - 中转港: - {{item2.transitPortName}} + + 装船进度 + + - - 品牌: - {{item2.brdName}} + {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + {{item.totalPlanStatusDesc}} + + + + + + 数量: + {{item.totalCount}} - - 车型: - {{item2.goodsTypeName}} + + 港口: + {{item.potName}} - - 型号: - {{item2.bvdName}} + + 发送人: + {{item.totalSendUser}} + + + + + 负责人: + {{item.responsiblePerson}} + + + 发送时间: + {{item.totalSendTime}} - + + 展开 + + + 收起 + + + + + + + + {{item2.mnfBl}} + 详情 + + + + 中转港: + {{item2.transitPortName}} + + + 品牌: + {{item2.brdName}} + + + 车型: + {{item2.goodsTypeName}} + + + 型号: + {{item2.bvdName}} + + + + + + - - + + - - @@ -254,13 +256,159 @@ - + + + + + + + + + + + + + 船舱层数:{{item.shipDeck}}层{{item.cabinNo}}舱 + + + + 装船进度 + + + + {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + {{item.branchPlanStatusDesc}} + + + + + + 数量: + {{item.totalCount}} + + + 港口: + {{item.potName}} + + + 分指令发送人: + {{item.branchSendUser}} + + + + + 负责人: + {{item.responsiblePerson}} + + + 发送时间: + {{item.totalSendTime}} + + + + + + 指令下发 + + + + 展开 + + + 收起 + + + + + + + + {{item2.mnfBl}} + 详情 + + + + 中转港: + {{item2.transitPortName}} + + + 品牌: + {{item2.brdName}} + + + 车型: + {{item2.goodsTypeName}} + + + 型号: + {{item2.bvdName}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - @@ -303,10 +451,6 @@ 港口: {{item.potName}} - - 分指令发送人: - {{item.branchSendUser}} - @@ -318,13 +462,15 @@ {{item.totalSendTime}} - - - 指令下发 + + + 分指令发送人: + {{item.branchSendUser}} + - + 展开 @@ -332,7 +478,7 @@ - + @@ -362,155 +508,20 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 船舱层数:{{item.shipDeck}}层{{item.cabinNo}}舱 - - - - 装船进度 - - - - {{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}% - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - {{item.branchPlanStatusDesc}} - - - - - - 数量: - {{item.totalCount}} - - - 港口: - {{item.potName}} - - - - - 负责人: - {{item.responsiblePerson}} - - - 发送时间: - {{item.totalSendTime}} - - - - - 分指令发送人: - {{item.branchSendUser}} - - - - - 展开 - - - 收起 - - - - - - - - {{item2.mnfBl}} - 详情 - - - - 中转港: - {{item2.transitPortName}} - - - 品牌: - {{item2.brdName}} - - - 车型: - {{item2.goodsTypeName}} - - - 型号: - {{item2.bvdName}} - - - - - - - + + - + 刷新 + 显示 + --> PORT OF DESTINATION @@ -536,33 +547,39 @@ 是否有跳板: {{item.whetherJumpName}} - + - - - + + + + + + + + + + + + + + + + + + {{item.tierHeight}}m - - - - - - - - - - - - + 货物明细 @@ -584,20 +601,22 @@ 位置 - - {{item2.stowageNo}} - {{item2.mnfBl}} - {{item2.potName}} - {{item2.brdName}} - {{item2.goodsTypeName}} - {{item2.model}} - {{item2.bvdName}} - {{item2.amount}} - {{item2.carLength}} - {{item2.carWidth}} - {{item2.carHeight}} - {{item2.cabinNoList}} - + + + {{item2.stowageNo}} + {{item2.mnfBl}} + {{item2.potName}} + {{item2.brdName}} + {{item2.goodsTypeName}} + {{item2.model}} + {{item2.bvdName}} + {{item2.amount}} + {{item2.carLength}} + {{item2.carWidth}} + {{item2.carHeight}} + {{item2.cabinNoList}} + + @@ -892,9 +911,8 @@ placeTabs: 0, // 分页 - // total: 0, - // pageSize: 4, - // current: 1, + pageSize: 10, + current: 1, // 配载图港口 pzPotList: [], @@ -920,7 +938,6 @@ }, onLoad(options) { this.shipInfo = JSON.parse(decodeURIComponent(options.params)).shipInfo - console.log(this.shipInfo) this.title = `${this.shipInfo.spmIdDesc} / ${this.shipInfo.vvyName}` this.loginObj = uni.getStorageSync('loginObj') if (this.tabsValue == 0) { @@ -938,6 +955,9 @@ HeadInfo, place, }, + onReachBottom() { + console.log(this.itemList) + }, methods: { // 点击tabs changeTabs(e) { @@ -950,6 +970,7 @@ this.tabsValue = e.value this.zTjActive = -1 this.shipDeck = "" + this.current = 1 if (e.value == 1 || e.value == 2) { this.loadOtherOrder() } else if (e.value == 0) { @@ -1027,24 +1048,27 @@ let fsum = v.branchSentCount + v.branchNotSentCount this.$set(v, "fsum", fsum) }) - console.log(this.zTjList) } }) }, // 获取总指令列表 loadSumOrder() { uni.request({ - url: `${this.$local}/api/shipInstructions/page?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&potId=${this.potId}&bvmId=${this.bvmId}&shipDeck=${this.shipDeck}`, - // &size=${this.pageSize}¤t=${this.current} + url: `${this.$local}/api/shipInstructions/page?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&potId=${this.potId}&bvmId=${this.bvmId}&shipDeck=${this.shipDeck}&size=${this.pageSize}¤t=${this.current}`, header: { 'Content-Type': 'application/json', //自定义请求头信息 'Authorization': `Bearer ${this.loginObj.access_token}` }, method: 'GET', //请求方式,必须为大写 success: (res) => { - this.itemList = res.data.data.records - this.total = res.data.data.total + this.itemList.push(...res.data.data.records) + if (res.data.data.records.length == 10) { + this.current++ + this.loadSumOrder() + } this.itemList.forEach((v, index) => { + v.image = '../../static/images/theme/car1.png' + v.index = index // if (v.branchPlanStatus == 0) { this.zzlLwpIdList.push(v.lwpId) // } @@ -1061,16 +1085,22 @@ this.sendValue = 1 } uni.request({ - url: `${this.$local}/api/shipInstructions/pageCommandForBranch?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&potId=${this.potId}&bvmId=${this.bvmId}&sendStatus=${this.sendValue}&shipDeck=${this.shipDeck}&teamFlag=${teamFlag}`, // &size=${this.pageSize}¤t=${this.current} + url: `${this.$local}/api/shipInstructions/pageCommandForBranch?vvyId=${this.shipInfo.vvyId}&brdId=${this.brdId}&mnfBl=${this.mnfBl}&potId=${this.potId}&bvmId=${this.bvmId}&sendStatus=${this.sendValue}&shipDeck=${this.shipDeck}&teamFlag=${teamFlag}&size=${this.pageSize}¤t=${this.current}`, header: { 'Content-Type': 'application/json', //自定义请求头信息 'Authorization': `Bearer ${this.loginObj.access_token}` }, method: 'GET', //请求方式,必须为大写 success: (res) => { - this.itemList = res.data.data.records - this.total = res.data.data.total + console.log(res) + this.itemList.push(...res.data.data.records) + if (res.data.data.records.length == 10) { + this.current++ + this.loadOtherOrder() + } this.itemList.forEach((v, index) => { + v.image = '../../static/images/theme/car1.png' + v.index = index this.getBottomInfo(v.lwpId, index) }) } @@ -1482,7 +1512,6 @@ // 配载图相关 // 获取配载图港口及对应颜色 getPotList() { - this.shipInfo.vvyId = 'f4303b2c8b6d715f4007f961f2498b10' uni.request({ url: `${this.$local}/api/stowage/portList?vvyId=${this.shipInfo.vvyId}`, header: { @@ -1496,7 +1525,7 @@ this.pzPotList.forEach(v => { this.$set(v, 'background', `background:${v.potColor}`) }) - console.log(this.pzPotList) + // console.log(this.pzPotList, '配载图顶部数据, 颜色色块') } } }) @@ -1511,9 +1540,14 @@ }, method: 'GET', //请求方式,必须为大写 success: (res) => { - console.log(res) + if (res.data.status == "200") { this.imgInfo = res.data.data + // 默认船舱画布高度最小为162 暂定10000 防止不画 + this.imgInfo.cabinInfoList.forEach(item => { + // + item.maxHeight = 10000 + }) } } }) @@ -1530,11 +1564,59 @@ success: (res) => { if (res.data.status == "200") { this.goodsInfo = res.data.data - console.log(this.goodsInfo) + this.goodsInfo.forEach((item, index) => { + item.stowageList.forEach(ele => { + let vertexPositionArr = ele.vertexPosition.split(',') + let y = vertexPositionArr[1] * 35 + let bigNum = (vertexPositionArr[1] + ele.blockLength) * 35 + if (bigNum < 162) { + bigNum = 162 + } + this.$set(this.imgInfo.cabinInfoList, index, { + ...this.imgInfo.cabinInfoList[index], + maxHeight: bigNum + }) + }) + this.initCanvas(item, index) + }) } } }) }, + initCanvas(item, index) { + let canvas = 'mycanvas' + index + const ctx = uni.createCanvasContext(canvas, this) + let sum = item.cabinNo + item.stowageList.forEach(ele => { + // 宽为850 每个仓位为20 850/20 + let widthDw = (42 / sum).toFixed(2) + let vertexPositionArr = ele.vertexPosition.split(',') + let x = vertexPositionArr[0] * widthDw + let y = vertexPositionArr[1] * 35 + // let bigNum = (vertexPositionArr[1] + ele.blockLength) * 35 + // console.log(this.imgInfo.cabinInfoList[index]); + // if (this.imgInfo.cabinInfoList[index].maxHeight < bigNum) { + // this.$set(this.imgInfo.cabinInfoList, index, { + // ...this.imgInfo.cabinInfoList[index], + // maxHeight: bigNum + // }) + // } + console.log(this.imgInfo.cabinInfoList[index].maxHeight); + ctx.setFillStyle(ele.potColor); + // 每层加一个 + ctx.fillRect(x, y, widthDw * ele.blockWidth - 3, ele.blockLength * 35 - 3); + ctx.fillStyle = '#fff' + ctx.font = 'bold 18px Arial' + ctx.setFontSize(20); + let stowageNo = '' + if (ele.stowageNo) { + stowageNo = ',' + ele.stowageNo + } + ctx.fillText(ele.potName + ',' + ele.amount + stowageNo, x, y + 22, widthDw * ele + .blockWidth, ele.blockLength * 35) + }) + ctx.draw(); + }, // 场位图相关 // 点击车道 toGoPlace() { @@ -1553,6 +1635,10 @@ color: #108ee9; } + page { + overflow: hidden; + } + .content2 { background-color: #F6F7F9; position: relative; @@ -1590,6 +1676,7 @@ .main { height: calc(100vh - 134px); + overflow: hidden; } .askBox { @@ -1853,232 +1940,241 @@ } .itemBox { - height: 465px; + height: 535px; overflow: scroll; + padding-bottom: 60px; } .itemList { display: flex; flex-wrap: wrap; justify-content: space-between; + align-items: flex-start; padding: 0 12px; .exp { - // width: 100%; - width: 49.5%; + width: 100%; margin-bottom: 15px; background: #FFFFFF; border-radius: 8px; padding: 12px; padding-right: 0; position: relative; + } - .rowHead { - /deep/uni-checkbox .uni-checkbox-input { - width: 16px !important; - height: 16px !important; + /deep/.waterfalls-flow { + width: 100%; + } + + /deep/.waterfalls-flow-column { + margin-left: 2%; + } + + .rowHead { + /deep/uni-checkbox .uni-checkbox-input { + width: 16px !important; + height: 16px !important; + } + } + + .row { + display: flex; + padding: 5px 0px; + + .title { + display: flex; + font-size: 16px; + color: #23262E; + font-weight: bold; + + .titleImg { + width: 18px; + height: 18px; + margin-right: 5px; + margin-top: 2px; } } - .row { + .schedule { + padding: 5px 8px; + background: #F7F7F7; + margin-left: 8px; display: flex; - padding: 5px 0; + + .text { + font-size: 12px; + color: #999999; + } + + .progressBox { + width: 50px; + margin-top: 5px; + margin: 5px 8px; + } + } + + .planStatus { + width: 68px; + height: 26px; + border-radius: 13px 0 0 13px; + position: absolute; + right: 0; + top: 16px; + text-align: center; + line-height: 26px; + + .text { + font-size: 16px; + font-weight: bold; + } + } + + .planStatus0 { + background: #F1F8FF; + + .text { + color: #0067CF; + } + } + + .planStatus1 { + background: #F7F7F7; + + .text { + color: #666; + } + } + + .planStatus3 { + background: #E8FFF7; + + .text { + color: #04B578; + } + } + + .planStatus5 { + background: #FFF5F0; + + .text { + color: #fc4f00; + } + } + + + .rowInfo { + display: flex; + flex-direction: column; + font-size: 14px; + width: 48%; + margin-top: 10px; + border-right: 1px solid #eee; + gap: 12px; + margin-left: 10px; + + text:first-child { + color: #999999; + } + + text:last-child { + color: #23262E; + } + } + + .rowInfo:last-child { + border: none; + } + } + + .xfBtn { + display: flex; + justify-content: flex-end; + padding: 10px 0; + border-top: 1px solid rgba(0, 0, 0, .1); + margin-top: 10px; + + .btn { + padding: 8px 12px; + text-align: center; + color: #fff; + background: #0067CF; + border-radius: 4px; + font-size: 12px; + margin-right: 28px; + } + + .stopbtn { + border: 1px solid #FC4F00; + color: #FC4F00; + background-color: #fff; + } + } + + .expand { + position: absolute; + left: 47%; + bottom: -10px; + font-size: 12px; + color: #23262E; + background: #FFFFFF; + text-align: center; + line-height: 14px; + border: 1px solid #EEEEEE; + border-radius: 13px; + padding: 6px; + } + + .details { + padding-right: 16px; + margin-top: 16px; + + .itemDetails { + background: rgba(236, 242, 249, .7); + + .detailsBox { + padding: 16px; + border-bottom: 1px dashed #D3DCE6; + } .title { + width: 100%; display: flex; - font-size: 16px; - color: #23262E; - font-weight: bold; + justify-content: space-between; - .titleImg { - width: 18px; - height: 18px; - margin-right: 5px; + text { + font-size: 16px; + color: #23262E; margin-top: 2px; } - } - .schedule { - padding: 5px 8px; - background: #F7F7F7; - margin-left: 8px; - display: flex; - - .text { - font-size: 12px; - color: #999999; - } - - .progressBox { - width: 50px; - margin-top: 5px; - margin: 5px 8px; - } - } - - .planStatus { - width: 68px; - height: 26px; - border-radius: 13px 0 0 13px; - position: absolute; - right: 0; - top: 16px; - text-align: center; - line-height: 26px; - - .text { - font-size: 16px; - font-weight: bold; - } - } - - .planStatus0 { - background: #F1F8FF; - - .text { + button { + wdith: 50px; + height: 25px; + text-align: center; + line-height: 25px; color: #0067CF; + background: #FFFFFF; + border: 1px solid #EEEEEE; + border-radius: 4px; + font-size: 14px; + margin: 0; } } - .planStatus1 { - background: #F7F7F7; - - .text { - color: #666; - } - } - - .planStatus3 { - background: #E8FFF7; - - .text { - color: #04B578; - } - } - - .planStatus5 { - background: #FFF5F0; - - .text { - color: #fc4f00; - } - } - - - .rowInfo { + .info { display: flex; - flex-direction: column; - font-size: 14px; - width: 48%; - margin-top: 10px; - border-right: 1px solid #eee; - gap: 12px; - margin-left: 10px; + flex-wrap: wrap; - text:first-child { - color: #999999; - } + .cell { + margin-right: 15px; + margin-top: 10px; - text:last-child { - color: #23262E; - } - } + text:first-child { + color: #999999; + } - .rowInfo:last-child { - border: none; - } - } - - .xfBtn { - display: flex; - justify-content: flex-end; - padding: 10px 0; - border-top: 1px solid rgba(0, 0, 0, .1); - margin-top: 10px; - - .btn { - padding: 8px 12px; - text-align: center; - color: #fff; - background: #0067CF; - border-radius: 4px; - font-size: 12px; - margin-right: 28px; - } - - .stopbtn { - border: 1px solid #FC4F00; - color: #FC4F00; - background-color: #fff; - } - } - - .expand { - position: absolute; - left: 47%; - bottom: -10px; - font-size: 12px; - color: #23262E; - background: #FFFFFF; - text-align: center; - line-height: 14px; - border: 1px solid #EEEEEE; - border-radius: 13px; - padding: 6px; - } - - .details { - padding-right: 16px; - margin-top: 16px; - - .itemDetails { - background: rgba(236, 242, 249, .7); - - .detailsBox { - padding: 16px; - border-bottom: 1px dashed #D3DCE6; - } - - .title { - width: 100%; - display: flex; - justify-content: space-between; - - text { - font-size: 16px; + text:last-child { color: #23262E; - margin-top: 2px; - } - - button { - wdith: 50px; - height: 25px; - text-align: center; - line-height: 25px; - color: #0067CF; - background: #FFFFFF; - border: 1px solid #EEEEEE; - border-radius: 4px; - font-size: 14px; - margin: 0; - } - } - - .info { - display: flex; - flex-wrap: wrap; - - .cell { - margin-right: 15px; - margin-top: 10px; - - text:first-child { - color: #999999; - } - - text:last-child { - color: #23262E; - } } } } @@ -2145,6 +2241,7 @@ .imgTable { margin-top: 20px; + padding: 0 20px; .title { font-size: 20px; @@ -2158,36 +2255,43 @@ .imgLi { display: flex; - position: relative; - - .shipImg { - width: 100%; - height: 171px; - } .maskBox { - width: calc(100% - 200px); - height: 150px; - background-color: transparent; - display: flex; - position: absolute; - top: 11px; - left: 60px; + width: 1060px; + height: 191px; + margin: 0 auto; + background: url('@/static/images/ship-split.svg'); + background-repeat: no-repeat; + background-size: contain; + position: relative; + + .line { + position: absolute; + width: 850px; + height: 85%; + top: 15px; + left: 60px; + display: flex; + overflow-y: auto; + + .testLine { + flex: 1; + border-left: 1px solid #999; + } + + .testLine:first-child { + border: none; + } + + .mycanvas { + position: absolute; + top: 0; + left: 0; + width: 850px; + } - .testLine { - flex: 1; - height: 100%; - border-left: 1px solid #999; } - .testLine:first-child { - border-left: none; - } - - .testInfo { - height: 30px; - background-color: #0067CF; - } } .heightBox { @@ -2198,36 +2302,34 @@ } .imgSize { - width: 28px; - height: 28px; + width: 60px; position: absolute; } .leftTopImg { transform: rotate(90deg); - top: 10px; - left: 8px; + top: 5px; + left: -5px; } .imgSize2 { - width: 100px; - height: 30px; + width: 130px; position: absolute; } .leftBotImg { - bottom: 10px; - left: 8px; + bottom: 2px; + left: -1px; } .topImg { - top: -5px; + top: 0; left: 40%; } .botImg { transform: rotate(180deg); - bottom: -6px; + bottom: 0; left: 40%; } } diff --git a/pages/quality/details.vue b/pages/quality/details.vue index c4a4ab6..c580ea1 100644 --- a/pages/quality/details.vue +++ b/pages/quality/details.vue @@ -29,8 +29,8 @@ 板车照片 - - + + @@ -40,8 +40,8 @@ 板车车牌照 - - + + @@ -122,8 +122,8 @@ 质损照片 - - + + @@ -133,8 +133,8 @@ 车架号图片 - - + + @@ -147,9 +147,6 @@ - @@ -248,12 +245,13 @@ } }) }, - // 取消 - cancel() { - uni.navigateTo({ - url: '/pages/quality/index' + // 点击图片放大 + clickImg(urlList, index) { + uni.previewImage({ + current: index, + urls: urlList, }) - } + }, } } @@ -367,17 +365,6 @@ } } } - - .btnList { - display: flex; - justify-content: center; - - /deep/ .van-button { - margin: 30px 0; - width: 120px; - height: 50px; - } - } } } \ No newline at end of file diff --git a/pages/quality/edit.vue b/pages/quality/edit.vue index baf316c..6765e08 100644 --- a/pages/quality/edit.vue +++ b/pages/quality/edit.vue @@ -431,6 +431,7 @@ success: (res) => { if (res.statusCode == 200) { this.infoData = res.data.data + console.log(this.infoData) // 获取板车照片 this.bcPhoto = this.infoData.boardCarPhotos this.infoData.boardCarPhotos.forEach(v => { @@ -1307,6 +1308,7 @@ this.carPhoto2.push(e.tempFiles[0]) let data = JSON.parse(res.data).data this.carPhoto.push(data) + console.log(this.carPhoto) }, }) }, @@ -1345,6 +1347,12 @@ if (this.current2 != '其他') { this.other = "" } + let editComplete = "" + if (this.type == 'add') { + editComplete = "1" + } else if (this.type == "edit") { + editComplete = "0" + } let editReqDTO = { "boardCarLicensePlates": this.bcLicense, // 板车车牌照 "boardCarPhotos": this.bcPhoto, // 板车照片 @@ -1354,7 +1362,7 @@ "dsOther": this.other2, // 损伤情况其他备注 "dispList": this.checkData3, // 处置情况 "dpsOther": this.other3, // 处置情况其他备注 - "editComplete": "1", // pad提交传 1 编辑完毕 扫描提交的数据不全不给后台展示 + "editComplete": editComplete, // pad提交传 1 编辑完毕 扫描提交的数据不全不给后台展示 "godId": this.godId, // 货物id "goodsType": this.carId, // 车型id "linkFeedback": this.feed, // 客户反馈 diff --git a/pages/quality/index.vue b/pages/quality/index.vue index 83391f2..4f65ced 100644 --- a/pages/quality/index.vue +++ b/pages/quality/index.vue @@ -376,7 +376,7 @@ background: #FAFAFA; border-top: 1px solid #EEEEEE; border-bottom: 1px solid #EEEEEE; - padding: 6px 10px; + padding: 10px; position: fixed; top: 66px; z-index: 995; @@ -458,7 +458,7 @@ justify-content: space-between; font-family: PingFangSC-Regular; font-size: 14px; - color: #23262E; + color: #23262E; margin-bottom: 16px; .headTop { diff --git a/pages/quality/zsEdit.vue b/pages/quality/zsEdit.vue index 3a48c60..eb66336 100644 --- a/pages/quality/zsEdit.vue +++ b/pages/quality/zsEdit.vue @@ -6,7 +6,7 @@ - + @@ -51,28 +51,31 @@ methods: { init() { this.ctx = uni.createCanvasContext('mycanvas', this); //创建绘图对象 - this.ctx.setFillStyle('#ff0000'); //设置画笔样式 this.ctx.lineWidth = 4; this.ctx.lineCap = 'round'; this.ctx.lineJoin = 'round'; var that = this - uni.getSystemInfo({ - success: function(res) { - that.ctx.drawImage("../../static/images/zs5.jpg", 0, 0, 1000, 222) - that.width = res.windowWidth; - that.height = res.windowHeight; + uni.getImageInfo({ + src: '../../static/images/zs2.png', + success(res1) { + //填充白色背景图片 + that.ctx.drawImage('../../static/images/zs2.png', 0, 0, 624, 224); + let pattern = that.ctx.createPattern(img, 'no-repeat') + that.ctx.fillStyle = pattern; }, + fail() { + console.log("fail"); + } }); - }, //触摸开始,获取到起点 touchstart: function(e) { let startX = e.changedTouches[0].x; let startY = e.changedTouches[0].y; let startPoint = { - X: startX, - Y: startY + X: startX / 1.75, + Y: startY / 1.75 }; /* ************************************************** @@ -89,8 +92,8 @@ let moveX = e.changedTouches[0].x; let moveY = e.changedTouches[0].y; let movePoint = { - X: moveX, - Y: moveY + X: moveX / 1.75, + Y: moveY / 1.75 }; this.points.push(movePoint); //存点 let len = this.points.length; @@ -115,6 +118,8 @@ let point1 = this.points[0]; let point2 = this.points[1]; this.points.shift(); + this.ctx.strokeStyle = 'red'; + this.ctx.lineWidth = 2; this.ctx.moveTo(point1.X, point1.Y); this.ctx.lineTo(point2.X, point2.Y); this.ctx.stroke(); @@ -130,7 +135,7 @@ //清空画布 handleReset: function() { var that = this - that.ctx.clearRect(0, 0, 1000, 222); + that.ctx.clearRect(0, 0, 624, 224); that.ctx.draw(true); tempPoint = []; that.init() @@ -151,30 +156,6 @@ uni.navigateBack({ delta: 1 }); - // let timestamp = new Date().getTime(); - // let sunumber = Math.floor(Math.random() * 999); - // var file = that.base64ToFile(that.url, timestamp + sunumber) - // uni.uploadFile({ - // url: `${that.$local}/api/file/upload`, //上传图片api - // header: { - // 'Authorization': `Bearer ${that.loginObj.access_token}` - // }, - // file: file, - // fileType: 'image', - // name: 'file', - // success: (res) => { - // console.log(res) - // console.log(JSON.parse(res.data)) - // that.signImg = JSON.parse(res.data).data.filePath - // console.log(that.signImg) - // // uni.navigateBack({ - // // delta: 1 - // // }); - // }, - // fail: (err) => { - // console.log(err) - // } - // }) }) .catch(error => { console.error(error) @@ -216,6 +197,7 @@ display: flex; justify-content: center; position: relative; + margin-top: 48px; } .sign-view { @@ -228,7 +210,7 @@ } .btn { - margin: 10px 10px 0; + margin: 100px 10px 0; } /deep/.van-button { @@ -240,17 +222,19 @@ .mycanvas { margin: auto 0rpx; background-color: transparent; - margin-top: 80px; - width: 1000px; - height: 222px; + margin-top: 130px; + width: 624px; + height: 224px; z-index: 999; + transform: scale(1.75) } .canvasBg { - width: 1000px; - height: 222px; + width: 624px; + height: 224px; position: absolute; - top: 80px; + top: 130px; + transform: scale(1.75) } .canvsborder { diff --git a/pages/shipWork/abnormalAdd.vue b/pages/shipWork/abnormalAdd.vue index 0a6b012..921ea60 100644 --- a/pages/shipWork/abnormalAdd.vue +++ b/pages/shipWork/abnormalAdd.vue @@ -20,7 +20,7 @@ 贸易类型: - {{shipInfo.spmTradeName}} + {{spmTradeName}} *作业日期: @@ -87,6 +87,7 @@ vvyInfo: [], importExportFlagName: "", + spmTradeName: "", // 下拉数据 optionData: [], @@ -165,6 +166,7 @@ this.vvyInfo.forEach(v => { if (v.vvyId == e) { this.importExportFlagName = v.importExportFlagName + this.spmTradeName = v.tradeTypeName } }) }, diff --git a/pages/shipWork/documentList.vue b/pages/shipWork/documentList.vue index c3d8d9c..fafa854 100644 --- a/pages/shipWork/documentList.vue +++ b/pages/shipWork/documentList.vue @@ -101,7 +101,7 @@ ], otherListh: [{ name: "安全巡检", - url: "", + url: "patrol", imgUrl: "../../static/images/shipWork/aqxj.png", tableName: "safetyInspectionRespList", }, diff --git a/pages/shipWork/index.vue b/pages/shipWork/index.vue index c8e489d..401d8f2 100644 --- a/pages/shipWork/index.vue +++ b/pages/shipWork/index.vue @@ -85,10 +85,10 @@ - + @@ -133,7 +133,7 @@ vtpList: [], // 分页 total: 0, - pageSize: 6, + pageSize: 12, current: 1, // 下拉数据 @@ -197,6 +197,11 @@ HeadInfo, LotusLoading }, + onReachBottom() { + this.current++ + this.initData() + this.lotusLoadingData.isShow = true + }, onBackPress(options) { // 触发返回就会调用此方法,这里实现的是禁用物理返回,顶部导航栏的自定义返回 uni.navigateBack 仍可使用 if (options.from == 'backbutton') { @@ -254,8 +259,9 @@ method: 'GET', //请求方式,必须为大写 success: (res) => { if (res.statusCode === 200) { + this.lotusLoadingData.isShow = false this.total = res.data.data.total - this.itemList = res.data.data.records + this.itemList.push(...res.data.data.records) } } }) @@ -335,7 +341,6 @@ }, // 船舶基本信息 shipDataInfo(info, vtpId) { - console.log(vtpId) console.log(info) let date = new Date().getTime() let webId = uuidv4() @@ -398,6 +403,7 @@ vvyIds.push(item.inVvyId) vvyIds.push(item.outVvyId) } + console.log(vvyIds) uni.request({ url: `${this.$local}/api/shipOperate/download?vvyIds=${vvyIds}`, header: { @@ -994,11 +1000,18 @@ } .content { - padding: 16px; min-height: calc(100vh - 68px); .form { + width: 100%; + background: #f5f6fa; display: flex; + height: ; + position: fixed; + top: 66px; + right: 0; + z-index: 995; + padding: 16px; .select { width: 200px; @@ -1028,6 +1041,8 @@ display: flex; justify-content: space-between; flex-wrap: wrap; + padding: 16px; + margin-top: 30px; /deep/.o-empty { width: 100%; diff --git a/pages/shipWork/mafiAdd.vue b/pages/shipWork/mafiAdd.vue index dbe3e8b..38a73a9 100644 --- a/pages/shipWork/mafiAdd.vue +++ b/pages/shipWork/mafiAdd.vue @@ -20,7 +20,7 @@ 贸易类型: - {{shipInfo.spmTradeName}} + {{spmTradeName}} *作业日期: @@ -128,6 +128,7 @@ vvyInfo: [], importExportFlagName: "", + spmTradeName: "", // 下拉数据 optionData: [], @@ -211,6 +212,7 @@ this.vvyInfo.forEach(v => { if (v.vvyId == e) { this.importExportFlagName = v.importExportFlagName + this.spmTradeName = v.tradeTypeName } }) }, @@ -352,7 +354,7 @@ line-height: 35px; background-color: #fff !important; } - + /deep/.is-input-border { margin-top: 8px; height: 40px; diff --git a/pages/shipWork/noticeAdd.vue b/pages/shipWork/noticeAdd.vue index 0a45e54..b4efa09 100644 --- a/pages/shipWork/noticeAdd.vue +++ b/pages/shipWork/noticeAdd.vue @@ -20,7 +20,7 @@ 贸易类型: - {{shipInfo.spmTradeName}} + {{spmTradeName}} *作业日期: @@ -72,6 +72,7 @@ vvyInfo: [], importExportFlagName: "", + spmTradeName: "", // 下拉数据 optionData: [], @@ -148,6 +149,7 @@ this.vvyInfo.forEach(v => { if (v.vvyId == e) { this.importExportFlagName = v.importExportFlagName + this.spmTradeName = v.tradeTypeName } }) }, diff --git a/pages/shipWork/opinionAdd.vue b/pages/shipWork/opinionAdd.vue index c31b4b7..bd39496 100644 --- a/pages/shipWork/opinionAdd.vue +++ b/pages/shipWork/opinionAdd.vue @@ -20,7 +20,7 @@ 贸易类型: - {{shipInfo.spmTradeName}} + {{spmTradeName}} *泊位: @@ -106,6 +106,7 @@ vvyInfo: [], importExportFlagName: "", + spmTradeName: "", // 下拉数据 optionData: [], @@ -214,6 +215,7 @@ this.vvyInfo.forEach(v => { if (v.vvyId == e) { this.importExportFlagName = v.importExportFlagName + this.spmTradeName = v.tradeTypeName } }) }, diff --git a/pages/shipWork/patrol.vue b/pages/shipWork/patrol.vue index aad6bf0..38fb2c0 100644 --- a/pages/shipWork/patrol.vue +++ b/pages/shipWork/patrol.vue @@ -12,11 +12,11 @@ 类型:{{item.type}} 贸易类型:{{item.tradeTypeName}} - 进出口:{{item.importExportFlagName}} + 进出口:{{item.importExportName}} - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uni_modules/custom-waterfalls-flow/package.json b/uni_modules/custom-waterfalls-flow/package.json new file mode 100644 index 0000000..5861272 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/package.json @@ -0,0 +1,80 @@ +{ + "id": "custom-waterfalls-flow", + "displayName": "瀑布流 灵活配置 简单易用 兼容vue2vue3小程序、H5、app等多端", + "version": "1.0.7", + "description": "瀑布流,根据内容自动计算进行流式布局,简单参数配置,实现兼容多端及vue2和vue3的瀑布流布局;uv-ui发布https://ext.dcloud.net.cn/plugin?name=uv-ui", + "keywords": [ + "瀑布流", + "瀑布流式布局" +], + "repository": "https://gitee.com/my_dear_li_pan/my-uni-modules.git", +"engines": { + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "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": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "u", + "Edge": "u", + "Firefox": "y", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "y", + "字节跳动": "y", + "QQ": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/custom-waterfalls-flow/readme.md b/uni_modules/custom-waterfalls-flow/readme.md new file mode 100644 index 0000000..5ac9f19 --- /dev/null +++ b/uni_modules/custom-waterfalls-flow/readme.md @@ -0,0 +1,445 @@ +- 概要 +- 支持的平台 +- 使用方式 +- 属性说明 +- 事件说明 +- 组件方法 +- refresh的使用示例 +- 隐藏单项图片示例 +- 完整示例 +- 温馨提示 +- 关注我,不迷路 +- 个人作品展示 + + + +#### 概要 + +custom-waterfalls-flow是一个瀑布流插件,灵活配置、简单易用、兼容多端、同时兼容vue2和vue3。 + +最近在做项目的时候需要用到瀑布流,于是在插件市场找了一些,下载量最高的是用了定位来做的,我认为瀑布流可以不用定位去实现,于是我就自己写了该插件。经过反复的测试优化,最终搞定! + +**设置列数:** 瀑布流的列数可以通过参数直接控制,实时监听,随改随生效。列数最小为2,最大默认为5,可以通过maxColumn参数去控制最大列数,理论上可以设置无限大,具体值自己拿捏。 + +**更新数据:** 瀑布流的每项数据,可以直接通过修改value,随改随生效,这样可以实现加载更多数据。已经渲染过的数据不会再次渲染,每次只会渲染新增的数据,这样避免了数据越多渲染越慢的情况。可以调用组件的```refresh()```方法进行数据刷新,注意vue2和vue3中调用子组件的方法有区别,也会在下面进行说明。 + +**展示方式:** 瀑布流可以是纯图片,可以使用插槽自定义文字描述,微信小程序与app、h5使用会有些区别,也会在下面具体说明。内容高度及排序都不用担心,会根据每项的内容高度自动计算。 + +**实现思路:** 通过配置列数,先渲染出每列,再计算每列的高度,最小的那列就加入一条数据进行渲染,然后再重复计算每列,高度小的加入数据...其实思路是很简单的。 + +uniapp插件市场地址:[https://ext.dcloud.net.cn/plugin?id=7594](https://ext.dcloud.net.cn/plugin?id=7594) + + + +#### 支持的平台 + +H5、app、微信小程序(这三个平台经过反复测试优化,兼容vue2和vue3)。 + +百度小程序:由于插槽不能循环渲染的限制,只支持纯图片瀑布流。 + +其他小程序:暂未测试,需要的可以自己测试和修改,思路肯定是没错的,主要是兼容插槽的问题。 + +nvue:暂不支持,后期可能会支持,目前需要的可以自己修改源码。 + + + +#### 使用方式 + +**1、导入插件** + +该组件符合uni_modules规范,使用Hbuilderx导入插件,导入到项目根目录中的uni_modules文件夹中。 + +**2、template中使用** + +uni_modules规范在项目页面中直接使用,不需要单独引入注册组件。 + +***纯图片瀑布流使用*** + +``` + + + +``` + +***微信小程序自定义内容使用*** + +微信小程序没有动态模板,使用for循环的方式进行渲染。 + +``` + + + + {{item.title}} + {{item.desc}} + + + +``` + +***h5、app端自定义内容使用*** + +使用作用域插槽实现 + +``` + + + + + {{item.title}} + {{item.desc}} + + + + +``` + +***小程序、h5、app等多端自定义内容使用*** + +条件渲染-多端同时兼容 + +``` + + + + + {{item.title}} + {{item.desc}} + + + + + + {{item.title}} + {{item.desc}} + + + + + +``` + + + +#### 属性说明 + +参数|说明|类型|是否必填|可选值|默认值 +-|-|-|-|-|-| +value|渲染的列表|Array|是|-|- +column|列数|Number|否|2-maxColumn|2 +maxColumn|最大列数|Number|否|>2|5 +columnSpace|列之间的间距(单位是百分比)|Number|否|-|2 +imageKey|列表中的图片字段的键名|String|否|-|image +hideImageKey|隐藏图片字段的键名|String|否|-|hide +seat|自定义文字的位置,1-图片上方,2-图片下方|Number|否|1/2|2 +listStyle|单个展示项的样式|Object|否|示例:```{'background':'red'}```|- + + + +#### 事件说明 + +事件名称|说明|回调参数 +-|-|-| +@loaded|图片加载完成事件|- +@wapperClick|单项点击事件|单项对应参数 +@imageClick|图片点击事件|单项对应参数 + + + +#### 组件方法 + +事件名称|说明|参数|使用场景 +-|-|-|- +refresh|刷新数据,数据初始化,vue2中使用:```this.$refs.waterfallsFlowRef.refresh();```;vue3中使用:```const waterfallsFlowRef = ref(null);waterfallsFlowRef.value.refresh();```|-|下拉刷新等 + + + +#### refresh的使用示例 + +***vue2中使用*** + +``` + + + 刷新数据 + + + + +``` + +***vue3中使用*** + +``` + + + 刷新数据 + + + + +``` + + + +#### 隐藏单项图片示例 + +在数据列表中配置```hide:true```或者```hide:1```,就可以达到不显示图片的效果。支持使用参数hideImageKey自定义键名称,那就使用:```定义的键名称:true```或者```定义的键名称:1```。 + +``` + + + + + {{item.title}} + {{item.desc}} + + + + + + {{item.title}} + {{item.desc}} + + + + + + +``` + + + +#### 完整示例 + +``` + + + + 增加数据 + +列数({{column}}) + -列数({{column}}) + 刷新数据 + + + + + {{item.title}} + {{item.desc}} + + + + + + {{item.title}} + {{item.desc}} + + + + + + + + + + +``` + + + +#### 温馨提示 + +1、该插件反复测试过微信小程序、h5、app-vue三个端,vue2和vue3都兼容,其他端可能需要测试改进。 + +2、该插件的使用hbuilderx版本最好升级到较新版本,我开发的版本是hbuilderx3.3.11.20220209。 + +3、对此插件或相关问题有好的建议,可以直接在评论区进行讨论。 + +4、希望遇到问题不要喷,也不要骂人,其实这种心情我能理解,写该插件也不是一时半会就完成了的,所以希望互相理解。只要有问题,我会第一时间回复解决。 + +5、对此插件有任何问题的可以在下方留言,我会第一时间回复和解决问题。还可以加QQ群进行前端技术交流 568984539,加群备注‘地区-名字-技术类型’。 + +#### 最后我想说:认为该插件对你有帮助的,记得收藏、好评,这样可以帮助到更多人哟! + +--- + + + +#### 关注我,不迷路 + +如果任何疑问的可以在评论区留言,还可以加QQ群交流:568984539,加群备注‘地区-名字-技术类型’。 + +更多前端等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343 + + + +#### 个人作品展示 + +uniapp+vue3.2+unicloud开发微信小程序:**皮皮虎去水印**。 + +关注下方公众号:【**全网免费网盘资源**】、【**美团外卖饿了么天天领红包**】、【**去水印**】 + +![image](https://vkceyugu.cdn.bspapp.com/VKCEYUGU-bb657efd-fece-483e-a715-5daea480fde8/6e029310-aec8-46e9-9883-1c88dc1925ad.jpg) \ No newline at end of file diff --git a/uni_modules/helang-waterfall/changelog.md b/uni_modules/helang-waterfall/changelog.md new file mode 100644 index 0000000..344391d --- /dev/null +++ b/uni_modules/helang-waterfall/changelog.md @@ -0,0 +1,22 @@ +## 1.1.6(2022-10-24) +修复 初始化渲染变量取值错误问题 +## 1.1.5(2022-10-24) +初始化渲染增加状态条件判断 +## 1.1.4(2022-10-24) +修改空数据提示 +## 1.1.3(2022-10-24) +1、增加内容插槽 + +2、删除状态文本属性 + +3、组件创建时可触发渲染条件 +## 1.1.2(2022-09-26) +修改了开启布局的判断条件 +## 1.1.1(2022-08-28) +1、加强组件化封装 + +2、 完善注释和优化使用逻辑 +## 1.1.0(2022-08-22) +重写渲染列表逻辑 +## 1.0.1(2021-06-08) +修改插入方向计算方式 diff --git a/uni_modules/helang-waterfall/components/waterfall/waterfall-item.vue b/uni_modules/helang-waterfall/components/waterfall/waterfall-item.vue new file mode 100644 index 0000000..489496f --- /dev/null +++ b/uni_modules/helang-waterfall/components/waterfall/waterfall-item.vue @@ -0,0 +1,98 @@ + + + + + + {{params.title}} + {{params.money}}元 + + {{params.label}} + + {{params.shop}} + 123 + + + + + + + + diff --git a/uni_modules/helang-waterfall/components/waterfall/waterfall-list.vue b/uni_modules/helang-waterfall/components/waterfall/waterfall-list.vue new file mode 100644 index 0000000..9053562 --- /dev/null +++ b/uni_modules/helang-waterfall/components/waterfall/waterfall-list.vue @@ -0,0 +1,241 @@ + + + + + + + 456 + + + + + + 456 + + + + + + + + + + + + \ No newline at end of file diff --git a/uni_modules/helang-waterfall/mock-data/waterfall-list.js b/uni_modules/helang-waterfall/mock-data/waterfall-list.js new file mode 100644 index 0000000..c5acc02 --- /dev/null +++ b/uni_modules/helang-waterfall/mock-data/waterfall-list.js @@ -0,0 +1,39 @@ +let list = ()=>{ + return new Promise((resolve,reject)=>{ + setTimeout(() => { + // 生成随机数方法 + let random = (min = 0, max) => { + return Math.floor(Math.random() * max) + min; + } + // 待选的图片数据 + let imgs = []; + // 待选的标题数据 + let titles = [ + '桃花坞里桃花庵,桃花庵里桃花仙;', + '桃花仙人种桃树,又摘桃花卖酒钱。', + '酒醒只在花前坐,酒醉还来花下眠;半醒半醉日复日,花落花开年复年。', + '但愿老死花酒间,不愿鞠躬车马前;', + '车尘马足富者趣,酒盏花枝贫者缘。若将富贵比贫贱,', + '一在平地一在天;若将贫贱比车马,他得驱驰我得闲。', + '别人笑我太疯癫,我笑他人看不穿;不见五陵豪杰墓,无花无酒锄作田。' + ]; + + let res = []; + for (let i = 0; i < 10; i++) { + res.push({ + id:i+1, + url:`/uni_modules/helang-waterfall/static/waterfall/${random(0,3)}.jpg?t=${new Date().getTime()}`, + title: titles[random(0, titles.length)], + money: random(9, 9999), + label:'官方自营', + shop:'唐诗三百首旗舰店' + }) + } + resolve(res); + }, 500); + }) +} + +export default { + getList:list +} \ No newline at end of file diff --git a/uni_modules/helang-waterfall/package.json b/uni_modules/helang-waterfall/package.json new file mode 100644 index 0000000..254ec1e --- /dev/null +++ b/uni_modules/helang-waterfall/package.json @@ -0,0 +1,76 @@ +{ + "id": "helang-waterfall", + "displayName": "瀑布流布局-waterfall", + "version": "1.1.6", + "description": "这是一款简单又好用的瀑布流布局模板,通过页面模板+组件的方式。充分利用组件的复用性和页面的生命周期。", + "keywords": [ + "瀑布流", + "布局", + "列表", + "waterfall" +], + "repository": "https://gitee.com/myDarling/uniapp-extend", + "engines": { + "HBuilderX": "^3.2.11" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "", + "type": "uniapp-template-page" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "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", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/helang-waterfall/pages/waterfall/waterfall.vue b/uni_modules/helang-waterfall/pages/waterfall/waterfall.vue new file mode 100644 index 0000000..6d3acdc --- /dev/null +++ b/uni_modules/helang-waterfall/pages/waterfall/waterfall.vue @@ -0,0 +1,247 @@ + + + + + + 上拉加载更多 + + + 加载中 + + + 加载中 + + + 没有更多了 + + + + 出错了,请刷新重试 + + + + 暂无数据 + + + + + + + 切换状态 + + + + + + + \ No newline at end of file diff --git a/uni_modules/helang-waterfall/readme.md b/uni_modules/helang-waterfall/readme.md new file mode 100644 index 0000000..b2fb6f8 --- /dev/null +++ b/uni_modules/helang-waterfall/readme.md @@ -0,0 +1 @@ +# helang-waterfall \ No newline at end of file diff --git a/uni_modules/helang-waterfall/static/waterfall/0.jpg b/uni_modules/helang-waterfall/static/waterfall/0.jpg new file mode 100644 index 0000000..24755c7 Binary files /dev/null and b/uni_modules/helang-waterfall/static/waterfall/0.jpg differ diff --git a/uni_modules/helang-waterfall/static/waterfall/1.jpg b/uni_modules/helang-waterfall/static/waterfall/1.jpg new file mode 100644 index 0000000..2ef8a69 Binary files /dev/null and b/uni_modules/helang-waterfall/static/waterfall/1.jpg differ diff --git a/uni_modules/helang-waterfall/static/waterfall/2.jpg b/uni_modules/helang-waterfall/static/waterfall/2.jpg new file mode 100644 index 0000000..157fe62 Binary files /dev/null and b/uni_modules/helang-waterfall/static/waterfall/2.jpg differ diff --git a/uni_modules/helang-waterfall/static/waterfall/empty.png b/uni_modules/helang-waterfall/static/waterfall/empty.png new file mode 100644 index 0000000..8b28751 Binary files /dev/null and b/uni_modules/helang-waterfall/static/waterfall/empty.png differ diff --git a/uni_modules/helang-waterfall/static/waterfall/fail.png b/uni_modules/helang-waterfall/static/waterfall/fail.png new file mode 100644 index 0000000..e1e1e49 Binary files /dev/null and b/uni_modules/helang-waterfall/static/waterfall/fail.png differ diff --git a/uni_modules/jp-signature.rar b/uni_modules/jp-signature.rar deleted file mode 100644 index bfecc02..0000000 Binary files a/uni_modules/jp-signature.rar and /dev/null differ diff --git a/uni_modules/q-previewImage/changelog.md b/uni_modules/q-previewImage/changelog.md new file mode 100644 index 0000000..cd4026c --- /dev/null +++ b/uni_modules/q-previewImage/changelog.md @@ -0,0 +1,24 @@ +## 1.1.1(2023-08-01) +优化文档 +## 1.1.0(2023-08-01) +优化文档 +## 1.0.9(2023-07-10) +优化文档 +## 1.0.8(2023-06-25) +优化文档 +## 1.0.7(2023-06-25) +优化文档 +## 1.0.6(2023-05-26) +优化文档 +## 1.0.5(2023-05-22) +优化文档 +## 1.0.4(2023-04-30) +新增图片放大功能,解决原生组件和tabbar导航栏等无法覆盖的问题 +## 1.0.3(2023-04-28) +优化文档 +## 1.0.2(2023-04-28) +优化文档 +## 1.0.1(2023-04-28) +新增长按事件 +## 1.0.0(2023-04-28) +插件上线 diff --git a/uni_modules/q-previewImage/components/q-previewImage/q-previewImage.vue b/uni_modules/q-previewImage/components/q-previewImage/q-previewImage.vue new file mode 100644 index 0000000..5386aa1 --- /dev/null +++ b/uni_modules/q-previewImage/components/q-previewImage/q-previewImage.vue @@ -0,0 +1,121 @@ + + + + {{ current + 1 }} / {{ urls.length }} + + + + + + + + + + + + + + + + + + diff --git a/uni_modules/q-previewImage/package.json b/uni_modules/q-previewImage/package.json new file mode 100644 index 0000000..3550c3f --- /dev/null +++ b/uni_modules/q-previewImage/package.json @@ -0,0 +1,81 @@ +{ + "id": "q-previewImage", + "displayName": "图片预览、多图左右滑动、图片放大、支持覆盖原生组件、原生导航栏、tabbar", + "version": "1.1.1", + "description": "最简洁的模拟图片预览,支持长按事件,多图左右滑动,大图上下滑动查看,支持图片放大,支持覆盖原生组件/原生导航栏/tabbar 支持vue2/vue3/app/小程序/h5", + "keywords": [ + "图片预览" +], + "repository": "", + "engines": { + "HBuilderX": "^3.4.14" + }, + "dcloudext": { + "type": "component-vue", + "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": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "u", + "微信浏览器(Android)": "u", + "QQ浏览器(Android)": "u" + }, + "H5-pc": { + "Chrome": "u", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "y", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/q-previewImage/readme.md b/uni_modules/q-previewImage/readme.md new file mode 100644 index 0000000..76c9508 --- /dev/null +++ b/uni_modules/q-previewImage/readme.md @@ -0,0 +1,244 @@ +# 最简洁的模拟图片预览,支持长按事件,多图左右滑动,大图上下滑动查看,支持图片放大,支持覆盖原生组件/原生导航栏/tabbar 支持vue2/vue3/app/小程序/h5 + + - 为了解决项目中因一些特殊原因无法使用uni.previewImage,例如App.onShow或者页面的oShow中写了方法。 + - 如果用uni.previewImage,每次预览图片都会进到onShow的方法里 + - 可以基本实现官方的预览图片功能,但是体验不如uni.previewImage() + - 如没有特殊原因,还是推荐官方的uni.previewImage() + +## 安装指引 + +##1. 在插件市场打开本插件页面,在右侧点击`使用 HBuilderX 导入插件`,选择要导入的项目点击确定 + +##2. 使用方法 vue2写法 + +``` + + + + + + + + + + + +``` + +##3. vue3 setup写法 + +``` + + + + + + + + + + + +``` + +##4. 项目示例 (一般返回的数据图片是以逗号或特殊字符分割的字符串,点击时就需要传两个参数,一个是图片数组,一个是当前图片的index) +## 注意q-previewImage不要写在循环体中,imgs其实就是用来存放当前图片的数组,每次点击每次赋值就行 + +``` + + + + + + + + + + + + +``` + + +## 如果插件对您有一点帮助,请给个五星好评,感谢支持 + + +## 如有问题,请加qq 965969604 \ No newline at end of file
贸易类型:
*作业日期:
*泊位:
类型:{{item.type}}
贸易类型:{{item.tradeTypeName}}
进出口:{{item.importExportFlagName}}
进出口:{{item.importExportName}}