Commit 8791c116 authored by chuan.liu's avatar chuan.liu

线索查询详情界面+联调

parent 1f445b2b
...@@ -100,22 +100,28 @@ ...@@ -100,22 +100,28 @@
"port": "8080", "port": "8080",
"disableHostCheck": true, "disableHostCheck": true,
"proxy": { "proxy": {
// "": {
// "target": "http://221.10.127.60:5000",
// "changeOrigin": true
// }
"/sap": { "/sap": {
// "target": "http://10.0.135.139/wlySap", "target": "http://221.10.127.60:5000/wlySap",
"target": "http://10.0.134.182:8000", // "target": "http://10.0.134.182:8000",
"changeOrigin": true "changeOrigin": true
}, },
"/crm-app": { "/crm-app": {
"target": "http://10.0.135.61", // "target": "http://10.0.135.61",
// "target": "http://10.0.135.139", // "target": "http://10.0.135.139",
// "target": "http://221.10.127.60:5000", "target": "http://221.10.127.60:5000",
"changeOrigin": true "changeOrigin": true
}, },
"/wmdpwebservices": { "/wmdpwebservices": {
"target": "https://10.0.134.182:9002", "target": "http://221.10.127.60:5000/sczx",
// "target": "https://10.0.134.182:9002",
"changeOrigin": true "changeOrigin": true
}, },
"/adapter": { "/adapter": {
// "target": "http://221.10.127.60:5000/cyj",
"target": "http://api.c0331.dev.guanyingyun.com", "target": "http://api.c0331.dev.guanyingyun.com",
"changeOrigin": true "changeOrigin": true
} }
......
...@@ -742,6 +742,22 @@ ...@@ -742,6 +742,22 @@
} }
} }
}, },
{
"path": "pages/breakwords-clue-detail/breakwords-clue-detail",
"style": {
"app-plus": {
"titleNView": {
"titleAlign": "left",
"titleColor": "#333",
"titleSize": "17px",
"backgroundColor": "transparent",
"titleText": "违约线索明细",
"autoBackButton": true
},
"bounce": "none"
}
}
},
{ {
"path": "pages/breakwords-market/breakwords-market", "path": "pages/breakwords-market/breakwords-market",
"style": { "style": {
......
...@@ -7,30 +7,33 @@ ...@@ -7,30 +7,33 @@
<view class="main"> <view class="main">
<view class="middle view"> <view class="middle view">
<view class="text-block"> <view class="text-block">
<text class="middle-date">匿名提报</text> <text class="middle-date">状态</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'SubmitMethod')" <text class="uni-input">{{clueDetail.statusName}}</text>
range-key='name' mode="selector" :value="condition.submitMethodName"
:range="selectDataOptions.SubmitMethod">
<text class="uni-input">{{condition.submitMethodName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
<text class="middle-date">匿名口令</text> <text class="middle-date">线索编号</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.pwdInfo" <text class="uni-input">{{clueDetail.id}}</text>
placeholder="请输入匿名提报口令,后期查询使用" /> </view>
</view>
</view>
</view>
<view class="text-block">
<text class="middle-date">匿名提报</text>
<view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell">
<view class="uni-list-cell-db">
<text class="uni-input">{{clueDetail.submitMethodName}}</text>
</view> </view>
</view> </view>
<!-- <image class="icon-arrow icon-search" src="@/static/image/search_b@3x.png" mode=""></image> -->
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -38,14 +41,9 @@ ...@@ -38,14 +41,9 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'ViolationType')" <text class="uni-input">{{clueDetail.viloationTypeName}}</text>
range-key='name' mode="selector" :value="condition.viloationTypeName"
:range="selectDataOptions.ViolationType">
<text class="uni-input">{{condition.viloationTypeName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -53,14 +51,9 @@ ...@@ -53,14 +51,9 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'ChildType')" <text class="uni-input">{{clueDetail.childTypeName}}</text>
range-key='name' mode="selector" :value="condition.childTypeName"
:range="selectDataOptions.ChildType">
<text class="uni-input">{{condition.childTypeName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -68,14 +61,9 @@ ...@@ -68,14 +61,9 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'ChannelType')" <text class="uni-input">{{clueDetail.happenChannelName}}</text>
range-key='name' mode="selector" :value="condition.happenChannelIdName"
:range="selectDataOptions.ChannelType">
<text class="uni-input">{{condition.happenChannelIdName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -83,14 +71,9 @@ ...@@ -83,14 +71,9 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'SupplyType')" <text class="uni-input">{{clueDetail.supplyTypeName}}</text>
range-key='name' mode="selector" :value="condition.supplyTypeName"
:range="selectDataOptions.SupplyType">
<text class="uni-input">{{condition.supplyTypeName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -98,14 +81,9 @@ ...@@ -98,14 +81,9 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'provincecode')" <text class="uni-input">{{clueDetail.provinceName}}</text>
range-key='description' mode="selector" :value="condition.provinceName"
:range="selectDataOptions.provincecode">
<text class="uni-input">{{condition.provinceName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -113,91 +91,73 @@ ...@@ -113,91 +91,73 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'citycode')" <text class="uni-input">{{clueDetail.cityName}}</text>
range-key='description' mode="selector" :value="condition.cityName"
:range="selectDataOptions.citycode">
<text class="uni-input">{{condition.cityName}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='MARKET'"> <view class="text-block" v-if="clueDetail.supplyType==='MARKET'">
<text class="middle-date">市场名称</text> <text class="middle-date">市场名称</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.marketName" <text class="uni-input">{{clueDetail.marketName}}</text>
placeholder="" />
</view> </view>
</view> </view>
<!-- <image class="icon-arrow icon-search" src="@/static/image/search_b@3x.png" mode=""></image> -->
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='PLATFORM'"> <view class="text-block" v-if="clueDetail.supplyType==='TERMINAL' || clueDetail.supplyType==='MARKET' ">
<text class="middle-date">平台名称</text> <text class="middle-date">终端名称</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.platformName" <text class="uni-input">{{clueDetail.terminalName}}</text>
placeholder="" />
</view> </view>
</view> </view>
<!-- <image class="icon-arrow icon-search" src="@/static/image/search_b@3x.png" mode=""></image> -->
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='PLATFORM'"> <view class="text-block" v-if="clueDetail.supplyType==='TERMINAL' || clueDetail.supplyType==='MARKET' ">
<text class="middle-date">商家名称</text> <text class="middle-date">终端地址</text>
<input class="middle-date-des" type="text" v-model="clueDetail.terminalAddress" placeholder="" />
</view>
<view class="text-block" v-if="clueDetail.supplyType==='PLATFORM'">
<text class="middle-date">平台名称</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.storeName" <text class="uni-input">{{clueDetail.platformName}}</text>
placeholder="" />
</view> </view>
</view> </view>
<!-- <image class="icon-arrow icon-search" src="@/static/image/search_b@3x.png" mode=""></image> -->
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='PLATFORM'"> <view class="text-block" v-if="clueDetail.supplyType==='PLATFORM'">
<text class="middle-date">网址</text> <text class="middle-date">商家名称</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.storeAddress" <text class="uni-input">{{clueDetail.storeName}}</text>
placeholder="" />
</view> </view>
</view> </view>
<!-- <image class="icon-arrow icon-search" src="@/static/image/search_b@3x.png" mode=""></image> -->
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='TERMINAL' || condition.supplyType==='MARKET' "> <view class="text-block" v-if="clueDetail.supplyType==='PLATFORM'">
<text class="middle-date">终端名称</text> <text class="middle-date">网址</text>
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.terminalName" <text class="uni-input">{{clueDetail.storeAddress}}</text>
placeholder="请填写" />
</view> </view>
</view> </view>
<image class="icon-arrow icon-search" @click="selectClueTerminal"
src="@/static/image/search_b@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block" v-if="condition.supplyType==='TERMINAL' || condition.supplyType==='MARKET' ">
<text class="middle-date">终端地址</text>
<input class="middle-date-des" type="text" v-model="condition.terminalAddress" placeholder="" />
</view>
<view class="text-block"> <view class="text-block">
<text class="middle-date">银行账户</text> <text class="middle-date">银行账户</text>
<view class="middle-date-des uni-list picker-year" @click="selectSalesAreaAccountInfo"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.salesAreaAccountPk" <text class="uni-input">{{clueDetail.salesAreaAccountPk}}</text>
placeholder="请填写" />
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block"> <view class="text-block">
...@@ -205,32 +165,24 @@ ...@@ -205,32 +165,24 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<picker class="picker-block" @change="bindPickerChange($event,'date')" mode="date" <text class="uni-input">{{clueDetail.auditTime}}</text>
:value="condition.auditTime" fields='day'>
<text class="uni-input">{{condition.auditTime}}</text>
</picker>
</view> </view>
</view> </view>
<image class="icon-arrow" src="@/static/image/arrow_r@3x.png" mode=""></image>
</view> </view>
</view> </view>
<view class="text-block text-block-last"> <view class="text-block text-block-last">
<text class="middle-date">稽查说明</text> <text class="middle-date">稽查说明</text>
</view> </view>
<view class="remark"> <view class="remark">
<textarea class="remark-text" v-model="condition.auditNotes" /> <textarea class="remark-text" v-model="clueDetail.auditNotes" />
</view> </view>
</view> </view>
<view class="middle view"> <view class="middle view">
<view class="text-block">
<text class="middle-date">物流码</text>
<input class="middle-date-des" type="text" v-model="condition.barcode" placeholder="请输入" />
</view>
<view class="text-block"> <view class="text-block">
<text class="middle-date">物流码行项目</text> <text class="middle-date">物流码行项目</text>
<view class="middle-date-des middle-date-buttons"> <!-- <view class="middle-date-des middle-date-buttons">
<button class="diy-entry" type="default" @click="handleScan"> <button class="diy-entry" type="default" @click="handleScan">
<image class="diy-icon" src="@/static/image/scan@3x.png" mode=""> <image class="diy-icon" src="@/static/image/scan@3x.png" mode="">
</image> </image>
...@@ -246,19 +198,15 @@ ...@@ -246,19 +198,15 @@
</image> </image>
<text class="diy-entry-text">删除</text> <text class="diy-entry-text">删除</text>
</button> </button>
</view> </view> -->
</view> </view>
</view> </view>
<view class="planout-block">
<button class="btn" type="default" @click="addProductByBarcode">
<text class="btn-text">查询</text>
</button>
</view>
<view class="middle view planout-block-item"> <view class="middle view planout-block-item" v-for="(productByBarcode,index2) in clueDetail.entries"
:key="index2">
<view class="text-block"> <view class="text-block">
<text class="middle-date">产品名称</text> <text class="middle-date">产品名称</text>
<text class="middle-date-des">{{productByBarcode.productId}}</text> <text class="middle-date-des">{{productByBarcode.productName}}</text>
</view> </view>
<view class="text-block"> <view class="text-block">
<text class="middle-date">物流码</text> <text class="middle-date">物流码</text>
...@@ -276,23 +224,39 @@ ...@@ -276,23 +224,39 @@
<view class="middle-date-des uni-list picker-year"> <view class="middle-date-des uni-list picker-year">
<view class="uni-list-cell"> <view class="uni-list-cell">
<view class="uni-list-cell-db"> <view class="uni-list-cell-db">
<input class="middle-date-des" type="text" v-model="condition.receiveAmount" <input class="middle-date-des" type="text" v-model="clueDetail.receiveAmount"
placeholder="请输入收货金额,保留2位小数" /> placeholder="请输入收货金额,保留2位小数" />
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="text-block no-border">
<text class="middle-date">事发战区及货源相关信息</text>
<text class="middle-date-des"></text>
</view>
<view class="text-block no-border"> <view class="text-block no-border">
<text class="middle-date">事发战区</text> <text class="middle-date">事发战区</text>
<text class="middle-date-des">{{distributerByBarcode.productDisSalesAreaName}}</text> <text class="middle-date-des">{{clueDetail.productDisSalesAreaName}}</text>
</view> </view>
<view class="text-block no-border"> <view class="text-block no-border">
<text class="middle-date">事发基地</text> <text class="middle-date">事发基地</text>
<text class="middle-date-des">{{distributerByBarcode.productDisSubSalesAreaName}}</text> <text class="middle-date-des">{{clueDetail.productDisSubSalesAreaName}}</text>
</view>
<view class="text-block no-border">
<text class="middle-date">货源渠道</text>
<text class="middle-date-des">{{clueDetail.productChannelName}}</text>
</view>
<view class="text-block no-border">
<text class="middle-date">货源经销商战区</text>
<text class="middle-date-des">{{clueDetail.productDisSalesAreaName}}</text>
</view>
<view class="text-block no-border">
<text class="middle-date">货源经销商基地</text>
<text class="middle-date-des">{{clueDetail.productDisSubSalesAreaName}}</text>
</view>
<view class="text-block no-border">
<text class="middle-date">货源经销商</text>
<text class="middle-date-des">{{clueDetail.productDistributerName}}</text>
</view>
<view class="text-block no-border">
<text class="middle-date">货源经销商渠道经理</text>
<text class="middle-date-des">{{clueDetail.productDisChaManagerName}}</text>
</view> </view>
</view> </view>
...@@ -300,33 +264,24 @@ ...@@ -300,33 +264,24 @@
<view class="upload-area view"> <view class="upload-area view">
<text class="title">门头照片</text> <text class="title">门头照片</text>
<view class="pic-lists"> <view class="pic-lists">
<uni-file-picker ref='files' :auto-upload='false' v-model="fileList" file-mediatype="image" <image class="swiper-item-img" :src="clueDetail.doorPicUrl" mode="widthFix">
:imageStyles="imageStyles" @select="select" @progress="progress" @success="success" </image>
@fail='fail'>
<text>+</text>
</uni-file-picker>
</view> </view>
<text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text> <text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text>
</view> </view>
<view class="upload-area view"> <view class="upload-area view">
<text class="title">产品照片</text> <text class="title">产品照片</text>
<view class="pic-lists"> <view class="pic-lists">
<uni-file-picker ref='files' :auto-upload='false' v-model="fileList" file-mediatype="image" <image class="swiper-item-img" :src="clueDetail.productPicUrl" mode="widthFix">
:imageStyles="imageStyles" @select="select" @progress="progress" @success="success" </image>
@fail='fail'>
<text>+</text>
</uni-file-picker>
</view> </view>
<text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text> <text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text>
</view> </view>
<view class="upload-area view"> <view class="upload-area view">
<text class="title">发票/收据照片</text> <text class="title">发票/收据照片</text>
<view class="pic-lists"> <view class="pic-lists">
<uni-file-picker ref='files' :auto-upload='false' v-model="fileList" file-mediatype="image" <image class="swiper-item-img" :src="clueDetail.receiptPicUrl" mode="widthFix">
:imageStyles="imageStyles" @select="select" @progress="progress" @success="success" </image>
@fail='fail'>
<text>+</text>
</uni-file-picker>
</view> </view>
<text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text> <text class="des">(点击图片可放大,只能上传一次图片,多次上传至保留最后上传)</text>
</view> </view>
...@@ -335,12 +290,6 @@ ...@@ -335,12 +290,6 @@
</view> </view>
<view class="bottom-area"></view> <view class="bottom-area"></view>
<view class="bottom">
<button class="btn" type="default" @tap="submit">
<text class="btn-text">提交</text>
</button>
</view>
</view> </view>
</view> </view>
</template> </template>
...@@ -351,300 +300,52 @@ ...@@ -351,300 +300,52 @@
} from 'vuex' } from 'vuex'
import { import {
apiGetDictionary, apiGetClueInfo,
apiClueSubmit,
apiGetClueProduct,
apiGetClueDistributer
} from '@/servers/breakwords.js' } from '@/servers/breakwords.js'
import {
apiGetProvinceCode
} from '@/servers/common.js'
import timeFormat from '@/uview-ui/libs/function/timeFormat.js'
export default { export default {
data() { data() {
return { return {
condition: { condition: {
submitMethod: '', id: ''
submitMethodName: '',
pwdInfo: '',
viloationType: '',
viloationTypeName: '',
childType: '',
childTypeName: '',
happenChannelId: '',
happenChannelIdName: '',
productChannelId: '',
productChannelName: '',
supplyType: '',
supplyTypeName: '',
provinceCode: '',
provinceName: '',
cityCode: '',
cityName: '',
terminalId: '',
terminalName: '',
terminalAddress: '',
platformName: '',
storeName: '',
storeAddress: '',
marketName: '',
salesAreaAccountPk: '',
auditTime: '',
auditNotes: '',
barcode: '',
receiveAmount: '',
doorPicUrl: 'https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF',
productPicUrl: 'https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF',
invoicePicUrl: 'https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF',
receiptPicUrl: 'https://t7.baidu.com/it/u=2487758541,1861252964&fm=193&f=GIF',
},
pickerIndexs: {
submitMethodIndex: 0
}, },
fileList: [], clueDetail: {},
selectDataOptions: {
'SubmitMethod': [],
'ViolationType': [],
'ChildType': [],
'ChannelType': [],
'provincecode': [],
'citycode': [],
},
productByBarcode: {},
distributerByBarcode: {},
} }
}, },
computed: { computed: {
...mapState(['sysinfo', 'userInfo']), ...mapState(['sysinfo']),
navHeight() { navHeight() {
return { return {
'height': `${this.sysinfo.safeArea.top + 44}px` 'height': `${this.sysinfo.safeArea.top + 44}px`
} }
}, },
imageStyles() {
return {
width: 64,
height: 64,
border: {
radius: '10%'
}
}
},
},
created() {
this.condition.auditTime = timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')
// 提交方式
this.getDictionary('SubmitMethod')
// 违规类型
this.getDictionary('ViolationType')
// 细分类型
this.getDictionary('ChildType')
// 事发渠道
this.getDictionary('ChannelType')
// 取证地
this.getDictionary('SupplyType')
// 事发渠道
this.getDictionary('ChannelType')
this.getProvinceCode('provincecode')
},
mounted() {
console.log('监听到事件来自 update');
let _this = this
uni.$on('selectClueTerminal', function(data) {
console.log('监听到事件来自 selectClueTerminal ,携带参数 msg 为:', data);
_this.condition.terminalName = data.selectedClueTerminal.name
_this.condition.terminalId = data.selectedClueTerminal.id
_this.condition.terminalAddress = data.selectedClueTerminal.address
})
uni.$on('selectSalesAreaAccountInfo', function(data) {
console.log('监听到事件来自 selectSalesAreaAccountInfo ,携带参数 msg 为:', data);
_this.condition.salesAreaAccountPk = data.selectedSalesAreaAccountInfo.pk
})
},
onUnload() {
console.log('onUnload')
uni.$off('selectClueTerminal')
uni.$off('selectSalesAreaAccountInfo')
}, },
beforeDestroy() { onLoad(option) {
console.log('onUnload2') console.log('breakwords-clue-detail', option)
uni.$off('selectClueTerminal') if (option && option.id) {
uni.$off('selectSalesAreaAccountInfo') this.condition.id = option.id
this.getOrderDetail()
}
}, },
methods: { methods: {
async getDictionary(key) { async getOrderDetail() {
const params = { uni.showLoading({
dictionaryKey: key title: '加载中'
}
const res = await apiGetDictionary(params)
this.selectDataOptions[key] = res.data
},
// 获取省市
async getProvinceCode(type, code) {
const params = `?field=${type}&type=${code}`
const res = await apiGetProvinceCode(params)
this.selectDataOptions[type] = res.data
},
bindPickerChange(e, type) {
console.log('picker发送选择改变,携带值为', e, type)
const index = e.detail.value
switch (type) {
case 'SubmitMethod':
this.condition.submitMethod = this.selectDataOptions[type][index].code
this.condition.submitMethodName = this.selectDataOptions[type][index].name
break;
case 'ViolationType':
this.condition.viloationType = this.selectDataOptions[type][index].code
this.condition.viloationTypeName = this.selectDataOptions[type][index].name
break;
case 'ChildType':
this.condition.childType = this.selectDataOptions[type][index].code
this.condition.childTypeName = this.selectDataOptions[type][index].name
break;
case 'ChannelType':
this.condition.happenChannelId = this.condition.productChannelId = this.selectDataOptions[type][
index
].code
this.condition.happenChannelIdName = this.condition.productChannelName = this.selectDataOptions[
type][index].name
break;
case 'SupplyType':
this.condition.supplyType = this.selectDataOptions[type][index].code
this.condition.supplyTypeName = this.selectDataOptions[type][index].name
break;
case 'provincecode':
this.condition.provinceCode = this.selectDataOptions[type][index].id
this.condition.provinceName = this.selectDataOptions[type][index].description
this.getProvinceCode('citycode', this.condition.provinceCode)
break;
case 'citycode':
this.condition.cityCode = this.selectDataOptions[type][index].id
this.condition.cityName = this.selectDataOptions[type][index].description
break;
case 'date':
this.condition.auditTime = index
break;
}
},
selectClueTerminal() {
uni.navigateTo({
url: `/pages/select-clue-terminal/select-clue-terminal?keywords=${this.condition.terminalName}`
});
},
selectSalesAreaAccountInfo() {
uni.navigateTo({
url: `/pages/select-salesarea-account/select-salesarea-account?keywords=`
}); });
}, setTimeout(function() {
async addProductByBarcode() { uni.hideLoading();
const params = { }, 2000);
barcode: this.condition.barcode const res = await apiGetClueInfo({
} id: this.condition.id
const res = await apiGetClueProduct(params) })
if (res.data) { uni.hideLoading();
this.productByBarcode = res.data for (let key in res.data) {
this.productByBarcode.id = 1 this.$set(this.clueDetail, key, res.data[key])
this.productByBarcode.group = res.data.classGroupId // this.clueDetail[key] = res.data[key]
this.productByBarcode.productId = res.data.productId
this.productByBarcode.productName = res.data.barcodeTypeName
}
this.addDistributerByBarcode()
},
async addDistributerByBarcode() {
const params = {
barcode: this.condition.barcode
}
const res = await apiGetClueDistributer(params)
if (res.data) {
this.distributerByBarcode = res.data
} }
}, }
deleteProductByBarcode() {
this.productByBarcode = {}
this.distributerByBarcode = {}
},
async submit() {
let params = {
'supplyType': this.condition.supplyType,
'auditTime': this.condition.auditTime,
'auditNotes': this.condition.auditNotes,
// 'channelId': this.condition.happenChannelId,
'childType': this.condition.childType,
'childTypeName': this.condition.childTypeName,
'cityCode': this.condition.cityCode,
'cityName': this.condition.cityName,
'doorPicUrl': this.condition.doorPicUrl,
'entries': [this.productByBarcode],
'happenSalesAreaCode': this.distributerByBarcode.productDisSalesAreaId,
'happenSalesAreaName': this.distributerByBarcode.productDisSalesAreaName,
'happenSubSalesAreaCode': this.distributerByBarcode.productDisSubSalesAreaId,
'happenSubSalesAreaName': this.distributerByBarcode.productDisSubSalesAreaName,
'happenChannelId': this.condition.happenChannelId,
'invoicePicUrl': this.condition.invoicePicUrl,
'productChannelId': this.condition.productChannelId,
'productChannelName': this.condition.productChannelName,
'productDisChaManagerId': this.distributerByBarcode.productDisChaManagerId,
'productDisChaManagerName': this.distributerByBarcode.productDisChaManagerName,
'productDisSalesAreaId': this.distributerByBarcode.productDisSalesAreaId,
'productDisSalesAreaName': this.distributerByBarcode.productDisSalesAreaName,
'productDisSubSalesAreaId': this.distributerByBarcode.productDisSubSalesAreaId,
'productDisSubSalesAreaName': this.distributerByBarcode.productDisSubSalesAreaName,
'productDistributerId': this.distributerByBarcode.productDistributerId,
'productDistributerName': this.distributerByBarcode.productDistributerName,
'productPicUrl': this.condition.productPicUrl,
'provinceCode': this.condition.provinceCode,
'provinceName': this.condition.provinceName,
'pwdInfo': this.condition.pwdInfo,
'receiptPicUrl': this.condition.receiptPicUrl,
'receiveAmount': this.condition.receiveAmount,
'submitMethod': this.condition.submitMethod,
'submitSource': 'DISTRIBUTER',
'submitUserId': this.userInfo.code,
'submitUserName': this.userInfo.name,
'terminalAddress': this.condition.terminalAddress,
'terminalId': this.condition.terminalId,
'terminalName': this.condition.terminalName,
'viloationType': this.condition.viloationType,
'platformName': this.condition.platformName,
'storeName': this.condition.storeName,
'marketName': this.condition.marketName,
'storeAddress': this.condition.storeAddress,
'salesAreaAccountPk': this.condition.salesAreaAccountPk,
}
const res = await apiClueSubmit(params)
},
handleScan() {
uni.scanCode({
scanType: ['barCode'],
success: function(res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
this.condition.barcode = res.result
}
});
},
// 获取上传进度
progress(e) {
console.log('上传进度:', e)
},
// 选择文件
select(e) {
console.log('选择文件:', e, this.fileList)
},
// 上传成功
success(e) {
console.log('上传成功', e)
},
// 上传失败
fail(e) {
console.log('上传失败:', e)
},
} }
} }
</script> </script>
...@@ -707,25 +408,22 @@ ...@@ -707,25 +408,22 @@
} }
.middle-date { .middle-date {
flex: 2; flex: 3;
font-size: 28rpx; font-size: 24rpx;
line-height: 96rpx; line-height: 96rpx;
color: #999; color: #999;
margin-bottom: 8rpx; margin-bottom: 8rpx;
} }
.middle-date-des { .middle-date-des {
display: flex;
align-items: center; align-items: center;
flex: 7; flex: 5.5;
font-size: 28rpx; font-size: 24rpx;
color: $text-base-color; color: $text-base-color;
height: 96rpx; height: 96rpx;
line-height: 96rpx; line-height: 96rpx;
} }
.middle-date-buttons {}
.uni-input-placeholder { .uni-input-placeholder {
color: #DBDBDB; color: #DBDBDB;
} }
...@@ -752,11 +450,6 @@ ...@@ -752,11 +450,6 @@
height: 100%; height: 100%;
} }
.uni-input {
font-size: 14px;
color: $text-base-color;
}
.icon-arrow { .icon-arrow {
position: absolute; position: absolute;
right: 22rpx; right: 22rpx;
...@@ -780,6 +473,7 @@ ...@@ -780,6 +473,7 @@
flex: 1; flex: 1;
height: 180rpx; height: 180rpx;
background: #f5f6f7; background: #f5f6f7;
font-size: 24rpx;
border-radius: 4px; border-radius: 4px;
padding: 12rpx 18rpx; padding: 12rpx 18rpx;
} }
...@@ -837,41 +531,4 @@ ...@@ -837,41 +531,4 @@
height: 140rpx; height: 140rpx;
margin-top: 12rpx; margin-top: 12rpx;
} }
.bottom {
position: fixed;
bottom: 0;
left: 0;
z-index: 10;
width: 750rpx;
height: 140rpx;
padding: 0 32rpx;
background-color: #fff;
display: flex;
justify-content: space-between;
align-items: center;
}
.btn {
flex: 1;
height: 92rpx;
background: $wly-primary-color;
border-radius: 46rpx;
}
.btn-l {
margin-right: 30rpx;
border: 1px solid $wly-primary-color;
background-color: transparent;
}
.btn-text {
color: #fff;
font-size: 34rpx;
}
.btn-text-l {
color: $wly-primary-color;
}
</style> </style>
...@@ -27,16 +27,18 @@ ...@@ -27,16 +27,18 @@
<view class="icon-line"></view> <view class="icon-line"></view>
</view> </view>
<view class="search-input-block"> <view class="search-input-block">
<image class="icon-search" src="@/static/image/search_b@3x.png" mode=""></image>
<input class="search-input" type="text" placeholder-class="uni-combox__input-plac" <input class="search-input" type="text" placeholder-class="uni-combox__input-plac"
@blur="getClueList" v-model="condition.productId" placeholder="请输入产品ID" /> @blur="getClueList" v-model="condition.productId" placeholder="请输入产品ID" />
<image @click="getClueList" class="icon-search" src="@/static/image/search_b@3x.png" mode="">
</image>
</view> </view>
</view> </view>
<view class="search-block" v-if="activeTabIndex===1"> <view class="search-block" v-if="activeTabIndex===1">
<view class="search-input-block"> <view class="search-input-block">
<image class="icon-search" src="@/static/image/search_b@3x.png" mode=""></image>
<input class="search-input" type="text" placeholder-class="uni-combox__input-plac" <input class="search-input" type="text" placeholder-class="uni-combox__input-plac"
@blur="getClueList" v-model="condition.pwd" placeholder="请输入口令进行查询" /> @blur="getClueList" v-model="condition.pwd" placeholder="请输入口令进行查询" />
<image @click="getClueList" class="icon-search" src="@/static/image/search_b@3x.png" mode="">
</image>
</view> </view>
</view> </view>
</view> </view>
...@@ -47,7 +49,7 @@ ...@@ -47,7 +49,7 @@
<!-- <loading-indicator></loading-indicator> --> <!-- <loading-indicator></loading-indicator> -->
</refresh> </refresh>
<cell v-for="(item,index) in lists" :key="index"> <cell v-for="(item,index) in lists" :key="index">
<view class="scroll-item"> <view class="scroll-item" @click="checkDetal(item)">
<view v-if="index===0" class="item-block item-block-sum"> <view v-if="index===0" class="item-block item-block-sum">
<text class="item-block-label">共 {{loadParams.total}} 项</text> <text class="item-block-label">共 {{loadParams.total}} 项</text>
</view> </view>
...@@ -278,6 +280,11 @@ ...@@ -278,6 +280,11 @@
checkTab(i) { checkTab(i) {
this.activeTabIndex = i this.activeTabIndex = i
this.getClueList() this.getClueList()
},
checkDetal(item) {
uni.navigateTo({
url: `/pages/breakwords-clue-detail/breakwords-clue-detail?id=${item.id}`
})
} }
} }
} }
......
...@@ -136,7 +136,7 @@ class Request { ...@@ -136,7 +136,7 @@ class Request {
constructor() { constructor() {
this.config = { this.config = {
baseUrl: 'http://10.0.135.61', // 请求的根域名 baseUrl: 'http://221.10.127.60:5000', // 请求的根域名
// 默认的请求头 // 默认的请求头
header: {}, header: {},
method: 'POST', method: 'POST',
...@@ -157,7 +157,7 @@ class Request { ...@@ -157,7 +157,7 @@ class Request {
this.interceptor = { this.interceptor = {
// 请求前的拦截 // 请求前的拦截
request: (config) => { request: (config) => {
// config.header['Authorization'] = `Basic ${Base64.encode('wangpc:LZY888@@')}`; config.header['Authorization'] = `Basic ${Base64.encode('wangpc:LZY888@@')}`;
try { try {
if (config.url.indexOf('crm-app/login') === - if (config.url.indexOf('crm-app/login') === -
1 && 1 &&
...@@ -165,19 +165,25 @@ class Request { ...@@ -165,19 +165,25 @@ class Request {
config.header['X-Auth-Token'] = store config.header['X-Auth-Token'] = store
.state.vuex_token .state.vuex_token
} }
config.header['Content-Type'] = "application/json; charset=utf-8"
// config.header['Content-Type'] = "application/x-www-form-urlencoded" if (config.header['Content-Type'] && config.header['Content-Type'].indexOf(
'x-www-form-urlencoded') === -1) {
config.header['Content-Type'] = "application/json; charset=utf-8"
}
if (config.url.indexOf('crm-app') !== -1) { if (config.url.indexOf('crm-app') !== -1) {
config.baseUrl = 'http://10.0.135.61' // config.baseUrl = 'http://10.0.135.61'
config.baseUrl = 'http://221.10.127.60:5000'
} else if (config.url.indexOf('adapter') !== -1) { } else if (config.url.indexOf('adapter') !== -1) {
config.baseUrl = 'http://api.c0331.dev.guanyingyun.com' config.baseUrl = 'http://api.c0331.dev.guanyingyun.com'
// config.baseUrl = 'http://221.10.127.60:5000/cyj'
} else if (config.url.indexOf('wmdpwebservices') !== -1) { } else if (config.url.indexOf('wmdpwebservices') !== -1) {
config.baseUrl = 'https://10.0.134.182:9002' config.baseUrl = 'https://10.0.134.182:9002'
// config.baseUrl = 'http://221.10.127.60:5000/sczx'
// config.baseUrl = '' // config.baseUrl = ''
} else { } else {
// config.baseUrl = 'http://10.0.135.139/wlySap' config.baseUrl = 'http://221.10.127.60:5000/wlySap'
config.baseUrl = 'http://10.0.134.182:8000'
} }
} catch (e) { } catch (e) {
console.log('error', e) console.log('error', e)
......
...@@ -70,6 +70,16 @@ export async function apiGetClueInfoPwdList(params) { ...@@ -70,6 +70,16 @@ export async function apiGetClueInfoPwdList(params) {
return res return res
} }
/**
* 线索详情接口
* @param name 账户名
* @returns {Promise<AxiosResponse<T>>}
*/
export async function apiGetClueInfo(params) {
const res = await apiHelper.post('/wmdpwebservices/clue/info', params)
return res
}
/** /**
* 联络函打款信息列表查询 * 联络函打款信息列表查询
* @param name 账户名 * @param name 账户名
......
...@@ -10,7 +10,7 @@ const install = (Vue, vm) => { ...@@ -10,7 +10,7 @@ const install = (Vue, vm) => {
// 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data // 如果将此值设置为true,拦截回调中将会返回服务端返回的所有数据response,而不是response.data
// 设置为true后,就需要在this.$u.http.interceptor.response进行多一次的判断,请打印查看具体值 // 设置为true后,就需要在this.$u.http.interceptor.response进行多一次的判断,请打印查看具体值
// originalData: true, // originalData: true,
// 设置自定义头部content-type // 设置自定义头部Content-Type
header: { header: {
"Content-Type": "application/json; charset=utf-8", "Content-Type": "application/json; charset=utf-8",
} }
...@@ -24,6 +24,13 @@ const install = (Vue, vm) => { ...@@ -24,6 +24,13 @@ const install = (Vue, vm) => {
.vuex_token; .vuex_token;
} }
if (config.header['Content-Type'] && config.header['Content-Type'].indexOf('x-www-form-urlencoded') ===
-1) {
config.header['Content-Type'] = "application/json; charset=utf-8"
}
// if (config.url.indexOf('crm-app') !== -1) { // if (config.url.indexOf('crm-app') !== -1) {
// config.baseUrl = 'http://10.0.135.139' // config.baseUrl = 'http://10.0.135.139'
// } else { // } else {
......
...@@ -17,7 +17,7 @@ export async function apiFindUnreadMsg(params) { ...@@ -17,7 +17,7 @@ export async function apiFindUnreadMsg(params) {
*/ */
export async function apiEditStatus(params) { export async function apiEditStatus(params) {
const res = await apiHelper.post('/crm-app//message/editStatus', params, { const res = await apiHelper.post('/crm-app//message/editStatus', params, {
'content-type': "application/x-www-form-urlencoded" 'Content-Type': "application/x-www-form-urlencoded"
}) })
return res return res
} }
......
...@@ -7,7 +7,7 @@ import apiHelper from './api.helper.js' ...@@ -7,7 +7,7 @@ import apiHelper from './api.helper.js'
*/ */
export async function apiLogin(params) { export async function apiLogin(params) {
const res = await apiHelper.post('/crm-app/login', params, { const res = await apiHelper.post('/crm-app/login', params, {
'content-type': "application/x-www-form-urlencoded" 'Content-Type': "application/x-www-form-urlencoded"
}) })
return res return res
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment