Commit f8d4dd3d authored by 李星剑's avatar 李星剑

fix:面料建模,登录

parent 740960a6
......@@ -5,7 +5,7 @@
:key="tab.name" @tap="switchTabbar(tab, index)"
:class="[tab.path === currentPath ? 'active':'']">
<div class="image">
<img :src="tab.path === currentPath ? tab.activeImage : tab.image" style="height: 100%;width: 100%;"/>
<image :src="tab.path === currentPath ? tab.activeImage : tab.image" style="height: 100%;width: 100%;"/>
<div class="num" v-if="tab.message && cartNum">
{{cartNum}}
</div>
......@@ -24,27 +24,80 @@
*/
import { mapMutations, mapActions, mapState, mapGetters } from 'vuex';
import { router } from '@/config/router';
let menuIcon = {
index: {
active: require('@/static/images/components/tabBar/index.active.png'),
default: require('@/static/images/components/tabBar/index.png')
},
message:{
active: require('@/static/images/components/tabBar/message.active.png'),
default: require('@/static/images/components/tabBar/message.png')
},
center:{
active: require('@/static/images/components/tabBar/my.active.png'),
default: require('@/static/images/components/tabBar/my.png')
},
collection:{
active: require('@/static/images/components/tabBar/collection.active.png'),
default: require('@/static/images/components/tabBar/collection.png')
}
};
export default {
name: 'hsTabBar',
components: {},
data() {
return {
currentPath: '', //当前页面路径
cartNum: '100',
tabbarData: {
style: 1,
list: [
{ name: '首页', path: '/pages/home/index',activeImage: '',image:'' },
{ name: '消息', path: '',activeImage: '',image:'', message: 1 },
{ name: '我的', path: '/pages/user/center/index',activeImage: '',image:'' },
]
}
cartNum: '',
type1: [
]
};
},
mounted() {
this.currentPath = this.$Route.path === '/pages/home/index' ? this.$Route.path : this.$Route.fullPath;
this.currentPath = this.$Route.path ? this.$Route.path : this.$Route.fullPath;
},
computed: {
tabbarData() {
let type = uni.getStorageSync("assignType") || 1;
return {
style: 1,
list: type == 1 ? [
{ name: '首页', path: '/pages/home/index',
activeImage: menuIcon['index'].active,
image: menuIcon['index'].default,
},
{ name: '消息', path: '', message: 1 ,
activeImage: menuIcon['message'].active,
image: menuIcon['message'].default,
},
{ name: '我的',
path: '/pages/user/center/index',
// path: '',
activeImage: menuIcon['center'].active,
image: menuIcon['center'].default,
},
] : [
{ name: '首页', path: '/pages/brands/brands',
activeImage: menuIcon['index'].active,
image: menuIcon['index'].default,
},
{ name: '收藏', path: '/pages/brands/collection',
activeImage: menuIcon['collection'].active,
image: menuIcon['collection'].default,
},
{ name: '我的',
path: '/pages/user/center/index',
// path: '',
activeImage: menuIcon['center'].active,
image: menuIcon['center'].default,
},
]
}
},
// ...mapGetters(['cartNum', 'tabbarData']),
// 底部导航栏列表
tabbarList() {
......@@ -55,12 +108,15 @@ export default {
// 后台tabbarList数据中必需含有'/pages/index/index',不然逻辑混乱
showTabbar() {
if (this.tabbarData && this.tabbarData.list) {
let arr = ['/pages/home/index'];
let path = '';
for (let item of this.tabbarData.list) {
arr.push(item.path);
}
return arr.includes(this.currentPath);
// let arr = ['/pages/home/index'];
// let path = '';
// for (let item of this.tabbarData.list) {
// arr.push(item.path);
// }
// console.log(this.tabbarData.list.map((item) => item.path))
// console.log(this.currentPath)
return this.tabbarData.list.map((item) => item.path)
.includes(this.currentPath)
}
}
},
......
......@@ -10,8 +10,10 @@
import stylelibraryorder from './stylelibraryorder/index'
import modelingtask from './modelingtask'
import mobileBrand from './mobileBrand'
import branddevelop from "./branddevelop";
export default {
...stylelibraryorder,
...modelingtask,
...mobileBrand
...mobileBrand,
...branddevelop
}
......@@ -58,6 +58,10 @@ export default {
'shPay':{
url: `${baseUrl}/shPay`,
method: 'post'
},
'listingDetailsByCode':{
url: `${baseUrl}/listingDetailsByCode`,
method: 'get'
}
}
}
......@@ -47,8 +47,8 @@ export default function http(
// token过期注销
if (response.code === 401) {
// store.dispatch('logout');
// router.push("/pages/user/login/login")
store.dispatch('logout');
router.replace("/pages/home/tenantSelection")
throw (`登录已过期或注销,已阻止此次API请求: '${api.url}'`);
}
return response
......
......@@ -17,7 +17,7 @@ export default class Request {
baseUrl: API_URL,
header: {
'content-type': 'application/json',
'app': "huansi",
// 'app': "huansi",
'Authorization-Basic': 'Basic c3dvcmQ6c3dvcmRfc2VjcmV0',
'platform': platform.get()
},
......
......@@ -84,7 +84,7 @@
<view class="color_FA5353">{{ item.oddStatus == 1 ? '两天无人接单' : '' }} {{ item.oddStatus == 2 ? '未及时完成' : '' }}</view>
<view>
<view v-if="item.status == 1" @click="dateilEnt(item, 'edit')" class="u-m-l-10 btn">即刻发布</view>
<view v-if="item.status == 3" class="u-m-l-10 btn" @click="dateilEnt(item, 'item')">撤回</view>
<view v-if="item.status == 3 || item.status == 2" class="u-m-l-10 btn" @click="dateilEnt(item, 'item')">撤回</view>
<view v-if="item.status == 4" @click="dateilEnt(item, 'item')" class="u-m-l-10 btn">马上寄送</view>
<view v-if="item.oddStatus == 2 && item.status == 5" @click.stop="reminder(item.id)" class="u-m-l-10 btn">催单</view>
<view v-if="item.status == 7" @click="dateilEnt(item,'item' )" class="u-m-l-10 btn">前往审核</view>
......
......@@ -272,7 +272,7 @@ export default {
.item{
padding: 36rpx 30px;
height: 160rpx;
background: url(../../static/images/home/exhibition.png) no-repeat;
background: url(~@/static/images/home/exhibition.png) no-repeat;
background-size: 100% 100%;
margin-bottom: 20rpx;
color: #fff;
......@@ -281,7 +281,7 @@ export default {
.back_img {
height: 486rpx;
width: 100%;
background: url(../../static/images/home/exhibition.png) no-repeat;
background: url(~@/static/images/home/exhibition.png) no-repeat;
background-size: 100% 100%;
}
.home_top {
......
......@@ -34,7 +34,11 @@ export default {
return {
selectedIndex: -1,
list: []
// list: []
list: [
// {"id":"1466279033363894272","userNo":"18268270336","userName":"18268270336","phone":"18268270336","tenantId":"1466279033363894272","tenantCode":"18268270336","tenantName":"18268270336","tenantPlat":"saas","globalUserId":"1466279033251729408"},
// {"id":"1466279033363894274","userNo":"18268270336","userName":"18268270336","phone":"18268270336","tenantId":"1466279033363894274","tenantCode":"18268270336dtd","tenantName":"18268270336的团队","tenantPlat":"paas","globalUserId":"1466279033251729408"}
]
};
},
created() {
......@@ -90,7 +94,7 @@ export default {
// #endif
},
testLogin(){
uni.setStorageSync('encryptToken',"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJpc3N1c2VyIiwiYXVkIjoiYXVkaWVuY2UiLCJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJyb2xlX25hbWUiOiJST0xFX0FETUlOIiwidXNlcl9pZCI6IjE0NzM1ODI0NDI5MTEwMjMxMDUiLCJyb2xlX2lkIjoiMTEyMzU5ODgxNjczODY3NTIwMSIsInVzZXJfbmFtZSI6IiIsIm9hdXRoX2lkIjoiIiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImFjY291bnQiOiIiLCJjbGllbnRfaWQiOiJzd29yZCIsImV4cCI6MTY0MDIwMDQwNywibmJmIjoxNjQwMTY0NDA3fQ.b2lDYtf8huuxRSfp0YKAHXgcsx59AEo2omgrE8V1tJQNwFIOTD7GzS-iAbpCalj6QXqw-OnNP9HKbsBEuloAMA")// uni.setStorageSync("encryptToken","11")
uni.setStorageSync('encryptToken',"iX8yRPFVwT9LtD7Y4J/1X9OZUVca8RandOim1vTKkt+UGhc9H7rWuNxCbjmAm5Ky2g/xWcC7fNzwpHxX/wG5moHPvT6yqWr5p0EHt63kuc/vAwlPUju5XpFlnY1sfIRwIakXu1pZH4VVPdpB6IHkAtWeoVQjo2cc32Yh16SEWn8=")
this.login()
},
......@@ -98,9 +102,6 @@ export default {
this.selectedIndex = item;
},
login(){
// uni.showToast({
// title: "login"
// })
// 核对
this.$http(
"auth.checkSecretKey",
......@@ -116,6 +117,7 @@ export default {
} = data;
this.userData = data;
uni.setStorageSync('tenantId', data.tenantId);
uni.setStorageSync('assignType', data.identityType);
if(userId && enterpriseId){
this.createToken(data);
}else{
......@@ -188,12 +190,11 @@ export default {
}
},
createToken(data){
let identityType = uni.getStorageSync("assignType");
let type = identityType ? {identityType: identityType} : {};
this.$http("auth.createTokenByApp" ,{
...data,
...{
identityType: uni.getStorageSync("identityType")
}
...type
}).then(res =>{
let {
code, data
......
......@@ -30,13 +30,13 @@
<view v-if="!isEdit">
<view
class="u-absolute prev"
@click="routerPush(true)"
@click="routerPush(false)"
v-if="!isFirst"
>上一款</view
>
<view
class="u-absolute next"
@click="routerPush(false)"
@click="routerPush(true)"
v-if="!isLast"
>下一款</view
>
......@@ -105,13 +105,13 @@
:class="[selectedMaterial.id === color.id ? 'active' : '']"
v-for="color in MaterialList"
>
<image src="" style="width: 100%; height: 100%"></image>
<image :src="`${$IMG_URL}${color}`" style="width: 100%; height: 100%"></image>
<view class="image-tip u-line-1">{{ color.materialName }}</view>
</view>
</view>
<view class="overflow" v-if="selectedMaterialItemColors.length > 0">
<u-image
:src="`${$IMG_URL}${item.color}`"
:src="`${$IMG_URL}${item.fileCode}`"
width="80rpx"
height="80rpx"
:class="[activeColor.id === item.id ? 'active' : '']"
......@@ -161,13 +161,13 @@
style="width: 100%; height: 100%"
mode="aspectFit"
></image>
<view class="image-tip u-line-1">{{ color.colour }}</view>
<view class="image-tip u-line-1">{{ color.colourName }}</view>
</view>
</view>
<view v-if="!isEditMode">
<view class="image u-m-r-10" v-for="color in mainPartBodyColor">
<image
:src="`${$IMG_URL}${color.fileCode}`"
:src="`${$IMG_URL}${color.colourApi.fileCode}`"
style="width: 100%; height: 100%"
mode="aspectFit"
></image>
......@@ -202,7 +202,7 @@
style="width: 100%; height: 100%"
mode="aspectFit"
></image>
<view class="image-tip u-line-1">{{ color.colour }}</view>
<view class="image-tip u-line-1">{{ color.colourName }}</view>
</view>
</view>
<view v-if="!isEditMode">
......@@ -211,7 +211,7 @@
v-for="color in mainPartOtherColor"
>
<image
:src="`${$IMG_URL}${color.fileCode}`"
:src="`${$IMG_URL}${color.colourApi.fileCode}`"
style="width: 100%; height: 100%"
mode="aspectFit"
></image>
......@@ -300,18 +300,14 @@ export default {
});
},
selectedMaterialItemColors() {
let key = (this.selectedMaterialItem.materialColourVOList || []).map(
(item) => item.colourId
);
return this.colors
.filter((item) => key.indexOf(item.id) > -1)
.map((item) => {
return {
...item,
mdmMaterialColourId: item.id,
materialId: this.selectedMaterialItem.id,
};
});
return (this.selectedMaterialItem.materialColourVOList || [])
.map((item) => {
return {
...item,
mdmMaterialColourId: item.colourId,
materialId: this.selectedMaterialItem.id,
};
})
},
index() {
return this.list.findIndex((item) => item.id === this.detail.id);
......@@ -327,11 +323,7 @@ export default {
},
// 默认的物料颜色可选
defaultColorList() {
let key = (this.materialDetail.materialColourVOList || []).map(
(item) => item.colourId
);
return this.colors
.filter((item) => key.indexOf(item.id) > -1)
return (this.materialDetail.materialColourVOList || [])
.map((item) => {
return {
...item,
......@@ -344,11 +336,14 @@ export default {
selectColorList() {
// 如果部位是主体 且 存在信息则回填老的数据
if (this.mainPart.length !== 0) {
console.log(
this.mainPart[0].materialColoursList
)
return this.mainPart[0].materialColoursList.map((item) => {
return {
...item,
colour: item.colourName || item.colour,
mdmMaterialColourId: item.colourId || item.mdmMaterialColourId,
mdmMaterialColourId: item.mdmMaterialColourId,
};
});
} else {
......@@ -461,7 +456,7 @@ export default {
},
pageReload() {
this.$Router.replace({
path: "pages/material/createMaterial",
path: "/pages/material/createMaterial",
query: this.$Route.query,
});
},
......@@ -556,7 +551,7 @@ export default {
let index = $data.findIndex(
(item) =>
item.mdmMaterialColourId === color.mdmMaterialColourId &&
item.type === 2 &&
item.type === 0 &&
item.isMainBodyPart === 1
);
if (index > -1) {
......@@ -649,6 +644,7 @@ export default {
let parts = (data.styleLibraryPictureVOList || []).sort((a, b) => {
return a.isMainBodyPart - b.isMainBodyPart < -1;
});
let selectedList = parts.reduce((res, item) => {
let selectItem = item["styleLibraryMaterialVOList"].map(($i) => {
return {
......
......@@ -8,7 +8,10 @@
</u-navbar>
<view class="body" :style="{ bottom: footerHeight + 'px', top: headerHeight+ 'px'}">
<view class="tip u-m-b-20" v-if="detail.status === 1">剩余59分1秒自动取消上架单</view>
<!-- {{createTime | limitTimeFilter}}-->
<view class="tip u-m-b-20" v-if="detail.status === 1 && limitTimeFilter(detail.createTime)">
剩余{{ limitTimeFilter(detail.createTime) }}自动取消上架单
</view>
<view class="u-p-r-30 u-p-l-30">
<view class="bg-fff u-p-r-30 u-p-b-30 u-p-l-30 u-m-b-20">
<view class="u-border-bottom u-l-height-44 u-flex">
......@@ -81,7 +84,7 @@
</view>
<view class="footer" id="footer" v-if="detail.status === 1">
<view class="footer-btn">
<view class="button button-default">
<view class="button button-default" @click="toPay(detail)">
立刻付款
</view>
</view>
......@@ -96,14 +99,28 @@ export default {
mixins:[dom],
data(){
return {
title: '待付款',
detail:{
styleLibraryTaskItemVOList:[]
},
end: true
end: true,
time: 60 * 60 * 1000,
createTime: '',
ticker: null
}
},
computed:{
title(){
let value = this.detail.status;
switch (value) {
case 1:
return '待付款';
case 2:
return '已付款';
case 3:
return '已取消';
}
},
list(){
let data = this.detail.styleLibraryTaskItemVOList || [];
return this.end === true && data.length > 3
......@@ -115,9 +132,50 @@ export default {
this.getItem(id)
},
methods:{
limitTimeFilter (value,activeTime) {
let start = new Date(value).valueOf(),
end = activeTime - start,
active = this.time;
const MillisecondToDate = mss => {
/* eslint-disable */
let date='';
const days = parseInt(mss / (1000 * 60 * 60 * 24));
const hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
const seconds = (mss % (1000 * 60)) / 1000;
if(days>0){
date+=`${Math.floor(days)} 天`;
}
if(hours>0){
date+=`${Math.floor(hours)} 小时`;
}
if(minutes>0){
date+=`${Math.floor(minutes)} 分钟`;
}
if(seconds>0){
date+=`${Math.floor(seconds)} 秒`;
}
/* eslint-enable */
return date;
};
return active - end > 0 ? MillisecondToDate(active - end) : false;
},
beginTimer() { //这个计时器是每秒减去数组中指定字段的时间
this.ticker = setInterval(() => {
this.createTime = this.createTime - 60;
}, 1000);
},
toggle(){
this.end = !this.end;
},
toPay(item){
this.$Router.push({
path: '/pages/webview/index',
query:{
id: item.payOrderCode
}
})
},
getItem(id){
this.$http("stylelibraryorder.listingDetails",id).then(res =>{
let {
......@@ -126,6 +184,11 @@ export default {
if(code === 200){
if(Object.keys(data).length > 0){
this.detail = data;
//这一段是防止进入页面出去后再进来计时器重复启动
if (this.ticker) {
clearInterval(this.ticker);
}
this.beginTimer();
}
}
})
......
......@@ -54,8 +54,8 @@
</view>
<view class="item-buttons u-flex-1 u-flex" >
<!-- v-if="item.putawayStatus === 3"-->
<view class="button button-plain button-plain--default u-m-r-20" @click.stop.self="cancel(item)" >取消上架</view>
<view class="button button-default" v-if="item.status === 1">付款</view>
<view class="button button-plain button-plain--default u-m-r-20" @click.stop="cancel(item)" >取消上架</view>
<view class="button button-default" v-if="item.status === 1" @click.stop="toPay(item)">付款</view>
</view>
</view>
</view>
......@@ -104,6 +104,14 @@ export default {
}
},
methods:{
toPay(item){
this.$Router.push({
path: '/pages/webview/index',
query:{
id: item.payOrderCode
}
})
},
setStatus(index){
this.activeStatus = index;
this.getList(true);
......@@ -130,7 +138,6 @@ export default {
})
},
cancel(item){
this.$http("stylelibraryorder.unlisted", { id: item.id})
.then(res => {
let {
......
......@@ -3,9 +3,13 @@
<view id="header">
<!--新增委托navbar-->
<view class="navbar u-p-t-20 u-p-r-30 u-p-b-20 u-p-l-30 u-flex">
<u-icon name="arrow-left" color="#000" @click="$Router.back()"></u-icon>
<text class="u-flex-1 text-center">款式委托</text>
<text @click="goEntrustList">上架单</text>
<u-navbar title="款式委托" :custom-back="() =>{ $Router.back()}"
:border-bottom="false"
:background="{backgroundColor: 'whitesmoke'}">
<template slot="right">
<text @click="goEntrustList">上架单</text>
</template>
</u-navbar>
</view>
<view class="u-p-30">
<u-search placeholder="请输入款式名称或面料名称" v-model="keyword"
......@@ -49,7 +53,11 @@
@click="() => { triggerSelectItem(item)}"
/>
<view class="item u-flex-1 u-flex u-p-l-30" @click="goItem(item)">
<view class="item-img"></view>
<view class="item-img">
<u-image
width="100%" height="100%"
:src="`${$IMG_URL}${item.originalImageCode}`"></u-image>
</view>
<view class="u-flex-1 u-p-l-20">
<view class="item-title u-line-1 u-font-28">{{ item.materialName}}</view>
<view class="u-flex u-m-t-6 u-m-b-6">
......@@ -83,14 +91,19 @@
<text class="u-flex-1 u-p-l-30">
{{ item.label}}
</text>
<u-icon name="arrow-down"
<u-icon
:name="checkToggle(index) ? 'arrow-up': 'arrow-down'"
color="#000" size="40"
@click="triggerToggle(index)"
/>
</view>
<view class="u-flex u-p-t-30" v-for="item in item.children">
<view class="item u-flex-1 u-flex u-p-l-30" @click="goItem(item)">
<view class="item-img"></view>
<view class="item-img">
<u-image
width="100%" height="100%"
:src="`${$IMG_URL}${item.originalImageCode}`"></u-image>
</view>
<view class="u-flex-1 u-p-l-20">
<view class="item-title u-line-1 u-font-28">{{ item.materialName }}</view>
<view class="u-flex u-m-t-6 u-m-b-6">
......@@ -134,6 +147,9 @@
<view class="u-flex u-p-t-30">
<view class="item u-flex-1 u-flex u-p-l-30">
<view class="item-img">
<u-image
width="100%" height="100%"
:src="`${$IMG_URL}${item.originalImageCode}`"></u-image>
<!-- <image :src="`${$IMG_URL}${item.pci}`"></image>-->
</view>
<view class="u-flex-1 u-p-l-20">
......@@ -167,7 +183,7 @@
<view class="footer-btn">
<view class="custom-style-round-circle custom-style-btn custom-style"
>
<view class="custom-style-left save">删除</view>
<!-- <view class="custom-style-left save">删除</view>-->
<view class="custom-style-right submit" @click="submit">
一键上架({{selected.length}})
</view>
......@@ -269,10 +285,16 @@ export default {
})
},
submit(){
if(this.selectedIds.length === 0){
this.$refs.uToast.show({
title: '请选择一个款式'
})
return;
}
this.$http("stylelibraryorder.oneClickListing", this.selectedIds)
.then(res => {
let {
code, msg
code, msg, data
} = res;
if(code === 200){
this.$refs['uToast'].show({
......@@ -280,7 +302,12 @@ export default {
})
this.selected = [];
this.hideList = [];
this.getList();
this.$Router.push({
path: '/pages/webview/index',
query:{
id: data
}
})
}else{
this.$refs['uToast'].show({
title: msg
......@@ -302,7 +329,7 @@ export default {
// 获取所有id
let childrenIds = children.map(item => item.id);
// 核对是否存在
return this.selectedIds.filter(id => childrenIds.indexOf(id)).length
return this.selectedIds.filter(id => childrenIds.indexOf(id) > -1).length
},
checkToggle(index){
return this.hideList.indexOf(index) > -1
......
......@@ -66,7 +66,7 @@
<!--指定面料颜色数量-->
<u-form-item label="指定面料颜色数量" prop="component" required>
<u-number-box v-model="detail.clothRowColourQuantity"
:max="10"
:max="10" ref="clothRowColourQuantity"
@minus="addModelingTaskColourDTOList"
@plus="addModelingTaskColourDTOList"
@blur="addModelingTaskColourDTOList"></u-number-box>
......@@ -169,15 +169,50 @@
</template>
</u-navbar>
<view class="body" :style="{ bottom: footerHeight + 'px', top: headerHeight+ 'px'}">
<view class="u-p-t-26 u-p-r-30 u-p-l-30">
<view class="pre-item pre-item--80 u-relative"
:class="[color.checked ? 'active': '']"
@click="selectColor(color)"
v-for="(color,index) in computedModelingTaskColorLibraryList" :key="index">
<image class="pre-item-image" :src="`${imgUrl}${color.pictureCode}`" mode="aspectFill"></image>
<text class="u-absolute pre-item-text text-center">{{ color.colorName }}</text>
<!-- <view class="u-p-t-20 u-p-r-30 u-p-b-20 u-p-l-30" :style="{-->
<!-- background:'whitesmoke'-->
<!-- } ">-->
<!-- <u-search-->
<!-- :show-action="false"-->
<!-- bg-color="#fff"-->
<!-- placeholder="请输入颜色名称"-->
<!-- ></u-search>-->
<!-- </view>-->
<scroll-view scroll-y="true" class="u-height-100 color--tree">
<view class="u-flex u-col-top u-height-100">
<view class="left u-border-right u-height-100">
<view class="color--tree-label u-line-1"
@click="activeColorsTab = index"
:class="[ activeColorsTab === index ? 'active': '']"
v-for="(color,index) in colors">
<text>{{color.colour}}</text>
<text>
({{color.children.filter((item) => {return checkedList.indexOf(item.id) > -1}).length }})
</text>
</view>
</view>
<view class="right u-flex-1 color--tree-children">
<view class="tree-item u-flex"
@click="selectColor(item)"
v-for="(item) in activeColorTree">
<u-checkbox
v-model="item.checked"
></u-checkbox>
<view class="tree-level-text">
{{ item.colour }}
</view>
</view>
</view>
</view>
</view>
<!-- <view class="pre-item pre-item&#45;&#45;80 u-relative"-->
<!-- :class="[color.checked ? 'active': '']"-->
<!-- @click="selectColor(color)"-->
<!-- v-for="(color,index) in computedModelingTaskColorLibraryList" :key="index">-->
<!-- <image class="pre-item-image" :src="`${imgUrl}${color.pictureCode}`" mode="aspectFill"></image>-->
<!-- <text class="u-absolute pre-item-text text-center">{{ color.colorName }}</text>-->
<!-- </view>-->
</scroll-view>
</view>
<!--底部按钮-->
<view class="footer">
......@@ -304,7 +339,7 @@ export default {
clothWidth:[
{
validator:(rule, value, callback) => {
let reg = new RegExp(/^([1-9][0-9]*)+(\\.[0-9]{1,2})?$/);
let reg = new RegExp(/(^[0-9][0-9]*$)|(^[0-9][0-9]*[\.]{1}[0-9]{1,2}$)/);
return reg.test(value);
},
message: '门幅应保留小数点后两位',
......@@ -332,6 +367,10 @@ export default {
show: false
},
checkedList: [],
colorsSource: [],
colors: [],
activeColorsTab: 0,
}
},
computed:{
......@@ -370,13 +409,22 @@ export default {
return this.activeTaskMaterialColour.map(item => item.colorId)
},
computedModelingTaskColorLibraryList(){
return this.modelingTaskColorLibraryList.map((item) =>{
return {
...item,
checked: this.checkedList.indexOf(item.id) > -1
}
})
// computedModelingTaskColorLibraryList(){
// return this.modelingTaskColorLibraryList.map((item) =>{
// return {
// ...item,
// checked: this.checkedList.indexOf(item.id) > -1
// }
// })
// }
activeColorTree(){
return this.colors.length === 0 ? []:
this.colors[this.activeColorsTab]['children'].map((item) =>{
return {
...item,
checked: this.checkedList.indexOf(item.id) > -1
}
})
}
},
methods:{
......@@ -391,14 +439,16 @@ export default {
submitColor(){
if(this.checkedList.length === this.designAgencyColourQuantity){
this.removeColor();
let row = this.computedModelingTaskColorLibraryList
.filter((item) => item.checked)
let row = this.colorsSource
.filter((item) => this.checkedList.indexOf(item.id) > -1)
.map((item) =>{
let { id,...other} = item;
let { id,colour,...other} = item;
return {
...other,
colorName: colour,
colorId: id,
type: 2
type: 2,
isDeleted: false
}
});
this.addColor(row);
......@@ -424,8 +474,8 @@ export default {
}
}
}
list = list.filter((item) => checked.indexOf(item.id) > -1);
// console.log(list)
this.detail.modelingTaskMaterialColourList = list.filter((item) => item.id && checked.indexOf(item.id) > -1);
console.log(list)
},
// 颜色库选择 点击时间 存一份选中状态 在确定的时候过滤
selectColor(colorItem){
......@@ -478,6 +528,39 @@ export default {
this.detail.modelingCategoryText = label;
this.detail.price = extra;
},
getSelectColour(){
function arr2Tree(data, id = "colourGroup") {
const newList = [],
map = Array.from(
new Set(
data.map((item) => {
return item["colourGroup"];
})
)
);
for (let i = 0; i < data.length; i++) {
let item = data[i],
name = item[id],
index = map.indexOf(name);
if (newList[index]) {
newList[index]["children"].push(item);
} else {
newList.push({
colour: name,
children: [item]
});
}
}
return newList;
}
this.$http("colour.selectColour", { color: "" }).then((res) => {
let { code, data } = res;
if (code === 200) {
this.colorsSource = data;
this.colors = arr2Tree(data);
}
});
},
getModelingTaskCategoryList(){
this.$http("modelingTaskCategory.list")
.then(res =>{
......@@ -508,7 +591,8 @@ export default {
},
init(){
this.getModelingTaskCategoryList();
this.getModelingTaskColorLibrary();
// this.getModelingTaskColorLibrary();
this.getSelectColour();
},
validateList(callback){
// 指定面料颜色
......@@ -669,6 +753,26 @@ export default {
</script>
<style scoped lang="scss">
.color--tree{
&-label{
width: 200rpx;
padding: 30rpx;
&.active{
color: #D5AA7A;
}
}
&-children{
overflow-y: auto;
.tree-item{
padding: 26rpx 30rpx;
}
}
}
.u-height-100{
height: 100%
}
.u-width-100{
width: 200rpx;
}
......@@ -677,8 +781,6 @@ export default {
height: 64rpx;
}
.required::before{
//position: absolute;
//left: 8px;
color: #ee0a24;
font-size: 14px;
content: '*';
......
......@@ -374,7 +374,8 @@
<view class="title">建模合格</view>
</view>
</view>
<view class="custom-style-round-circle custom-style-btn custom-style" v-if="detail.status === 3">
<view class="custom-style-round-circle custom-style-btn custom-style"
v-if="detail.status === 3 || detail.status === 2">
<!-- <view class="custom-style-left save" @click="cancel(3)">撤回</view>-->
<view class="custom-style-right submit" @click="cancel">
<view class="title">撤回</view>
......@@ -492,7 +493,7 @@ export default {
clothWidth:[
{
validator:(rule, value, callback) => {
let reg = new RegExp(/^([1-9][0-9]*)+(\\.[0-9]{1,2})?$/);
let reg = new RegExp(/(^[0-9][0-9]*$)|(^[0-9][0-9]*[\.]{1}[0-9]{1,2}$)/);
return reg.test(value);
},
message: '门幅应保留小数点后两位',
......@@ -603,12 +604,14 @@ export default {
},
submit(type){
let {modelingTaskPictureDTOList, ...onther} = this.detail;
this.$http("modeling.submit",Object.assign({},
this.$http("modeling.submit",
Object.assign({},
onther,
{
designAgencyColourQuantity: this.designAgencyColourQuantity,
operationType:type,
modelingTaskPictureDTOList: modelingTaskPictureDTOList.concat(this.delModelingTaskPictureDTOList)})
modelingTaskPictureDTOList: modelingTaskPictureDTOList}),
"请求中"
).then(res =>{
let {
code,msg
......@@ -654,10 +657,10 @@ export default {
this.$http("modeling.sendSamples",{
...this.formData,
modelingTaskId: this.detail.id
}).then(res =>{
},"请求中").then(res =>{
let {
code ,msg
} = data;
} = res;
if(code === 200){
this.$refs.uToast.show({
title: msg,
......@@ -675,11 +678,20 @@ export default {
...this.detail,
...data,
modelingTaskReviewer:this.modelingTaskReviewer
}).then(res =>{
this.$refs.uToast.show({
title: msg,
back: true
});
},"请求中").then(res =>{
let {
msg,code
} = res;
if(code === 200){
this.$refs.uToast.show({
title: msg,
back: true
});
}else{
this.$refs.uToast.show({
title: msg
});
}
})
},
validate(operationType,callback){
......@@ -704,7 +716,7 @@ export default {
cancel(){
this.$http("modeling.withdraw", {
...this.detail
}).then(res =>{
},"请求中").then(res =>{
let {
code,msg
} = res;
......
......@@ -133,7 +133,7 @@ export default {
this.$http("materialLabel.save",{
"labelName": value,
"labelType": 0
}).then(res =>{
},'加载中').then(res =>{
let {
code, data,msg
} = res;
......@@ -173,13 +173,20 @@ export default {
submitLabel(){
// console.log(this.detail.modelingTaskLabelList)
this.$http("modeling.saveOrUpdateLabel", this.detail.modelingTaskLabelList)
this.$http("modeling.saveOrUpdateLabel", this.detail.modelingTaskLabelList,'加载中')
.then(res =>{
let {
code, data,msg
code,msg
} = res;
if(code === 200){
this.$refs.uToast.show({
title: msg,
back: true
})
}else{
this.$refs.uToast.show({
title: msg
})
}
})
},
......
<!--我的-->
<template>
<view>
<view class="">
<text class="u-font-40">我的</text>
<text class="">my</text>
<view class="head">
<text class="text1">我的</text>
<text class="text2">My</text>
</view>
<view>
<view class=""></view>
<view class="u-p-30">
<view class="item item--round" @click="edit">
<view class="u-font-32 u-m-b-8 u-line-1">{{msg.fullName}}</view>
<view class="u-font-24">{{msg.userName}}</view>
</view>
<view @click="toRegister" class="u-l-height-44">切换身份</view>
</view>
<hs-tab-bar></hs-tab-bar>
</view>
</template>
......@@ -20,12 +25,82 @@ export default {
components: {HsTabBar},
data(){
return{
msg: uni.getStorageSync("userInfo")
}
},
created() {
// let msg = uni.getStorageSync("userInfo")
// console.log(msg)
},
methods:{
edit(){
let type = uni.getStorageSync("assignType");
this.$Router.push({
path: '/pages/user/register/completeInformation',
query:{
type
}
})
},
toRegister(){
let type = uni.getStorageSync("assignType");
this.$Router.push({
path: '/pages/user/register/stepSelectType',
query:{
type
}
})
}
}
}
</script>
<style scoped>
<style scoped lang="scss">
.item--round{ border-radius: 8rpx;}
.item{
padding: 36rpx 30px;
height: 160rpx;
background: url(~@/static/images/home/exhibition.png) no-repeat;
background-size: 100% 100%;
margin-bottom: 20rpx;
color: #fff;
}
.head {
width: 100%;
margin-top: 16rpx;
position: relative;
.text1 {
width: 160rpx;
height: 56rpx;
font-size: 40rpx;
font-family: PingFangSC, PingFangSC-Medium;
font-weight: 500;
color: rgba(0, 0, 0, 0.8);
line-height: 56rpx;
margin-left: 38rpx;
}
.text2 {
width: 194rpx;
height: 40-rpx;
font-size: 28rpx;
font-family: PingFangSC, PingFangSC-Regular;
font-weight: 400;
color: #dda973;
line-height: 40rpx;
margin-left: 10rpx;
}
.btn {
width: 56rpx;
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC, PingFangSC-Medium;
font-weight: 700;
text-align: right;
color: rgba(0, 0, 0, 0.6);
line-height: 40rpx;
position: absolute;
right: 30rpx;
bottom: 0;
}
}
</style>
<!-- 完善信息 -->
<template>
<view>
<view class="body" :style="{ bottom: footerHeight + 'px'}">
<!-- 完善信息 -->
<view v-if="current === 1">
<!-- 面料供应商 -->
<template v-if="assignType === 1">
<u-form labelWidth="100" labelPosition="top" class="bg-fff">
<u-form-item label="企业名称" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.enterpriseName" :border="false" placeholder="请输入企业名称" />
</u-form-item>
<u-form-item label="企业联系人" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.corporateContactName" :border="false" placeholder="请输入企业联系人" />
</u-form-item>
</u-form>
<view class="u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30 u-m-b-30 u-m-t-30 bg-fff">
<view v-for="(item,index) in subsidiaryInfo" :key="index">
<view class="u-flex">
<view class="u-flex-1">
<view class="title u-m-r-22">
<view class="line"></view>
档口{{ index + 1 }}
</view>
<text class="button--delete" @click.stop="delBrandRow(item)">删除</text>
</view>
<view @click="brandCollapseChange(index)">
{{
brandActive === index ? "收起":"展开"
}}
</view>
</view>
<view class="collapse-body" :style="[{
height: brandActive === index ? 'auto' : '0'
}]">
<u-form labelWidth="100" labelPosition="top" >
<u-form-item label="档口名称" :style="style">
<u-input v-model="item.stallName" :border="false" placeholder="请输入档口名称" />
</u-form-item>
<u-form-item label="档口地址" :style="style">
<u-input v-model="item.stallAddress" :border="false" placeholder="请输入档口地址"
/>
</u-form-item>
</u-form>
</view>
</view>
</view>
<view class="button-plain" @click="addSubsidiaryInfoRow">+添加档口</view>
</template>
<!-- 我要选款 -->
<template v-if="assignType === 2">
<u-form labelWidth="100" labelPosition="top" class="bg-fff">
<u-form-item label="企业名称" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.enterpriseName" :border="false" placeholder="请输入企业名称" />
</u-form-item>
<u-form-item label="企业联系人" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.corporateContactName" :border="false" placeholder="请输入企业联系人" />
</u-form-item>
<u-form-item label="档口地址" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input :border="false" placeholder="请输入档口地址"
v-model="form2.subsidiaryInfoDTOList[form2.subsidiaryInfoDTOList.length - 1].stallAddress"
/>
</u-form-item>
</u-form>
<view class="u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30 u-m-b-30 u-m-t-30 bg-fff">
<view v-for="(item,index) in brandInfo" :key="index">
<view class="u-flex">
<view class="u-flex-1">
<view class="title u-m-r-22">
<view class="line"></view>
品牌{{ index + 1 }}
</view>
<text class="button--delete" @click.stop.self="delBrandRow(item)">删除</text>
</view>
<view @click="InfoCollapseChange(index)">
{{
brandActive === index ? "收起":"展开"
}}
</view>
</view>
<view class="collapse-body" :style="[{
height: brandActive === index ? 'auto' : '0'
}]">
<u-form labelWidth="100" labelPosition="top" >
<u-form-item label="品牌名称" :style="style">
<u-input v-model="item.brandName" :border="false" placeholder="请输入品牌名称" />
</u-form-item>
<u-form-item label="品牌定位" :style="style">
<u-input v-model="item.brandFixedText" :border="false" placeholder="请输入品牌定位"
:select-open="show"
type="select" @click="() => { show = true; rowIndex = index}"
readonly/>
</u-form-item>
</u-form>
</view>
</view>
</view>
<view class="button-plain" @click="addBrandRow">+添加品牌</view>
<u-select v-model="show" mode="single-column" :list="column" @confirm="selectConfirm"></u-select>
</template>
<!-- 设计机构 -->
<template v-if="assignType === 3">
<u-form labelWidth="150" labelPosition="top">
<u-form-item label="机构名称" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.enterpriseName" :border="false" placeholder="请输入机构名称" />
</u-form-item>
<u-form-item label="机构联系人" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.corporateContactName" :border="false" placeholder="请输入机构联系人" />
</u-form-item>
<u-form-item label="机构地址" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.institutionAddress" :border="false" placeholder="请输入机构地址" />
</u-form-item>
<u-form-item label="合作方式(可多选)" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-checkbox-group>
<view class="u-tag u-size-default u-shape-circle u-mode-plain-primary"
:key="index"
v-for="(item, index) in checkbox">
<u-checkbox iconClass="displayNone" @change="checkChange"
v-model="item.checked"
:name="item.value"
>{{item.label}}</u-checkbox>
</view>
</u-checkbox-group>
</u-form-item>
</u-form>
</template>
<!-- 检测结构 -->
<template v-if="assignType === 4">
<u-form labelWidth="100" labelPosition="top">
<u-form-item label="机构名称" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.enterpriseName" :border="false" placeholder="请输入机构名称" />
</u-form-item>
<u-form-item label="机构联系人" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.corporateContactName" :border="false" placeholder="请输入机构联系人" />
</u-form-item>
<u-form-item label="机构地址" class="u-border-bottom u-p-t-24 u-p-r-30 u-p-b-24 u-p-l-30" :style="style">
<u-input v-model="formData.institutionAddress" :border="false" placeholder="请输入机构地址" />
</u-form-item>
</u-form>
</template>
</view>
</view>
<!-- 底部按钮 -->
<view class="footer" id="footer">
<view class="footer-btn u-p-t-12 u-p-r-60 u-p-b-12 u-p-l-60">
<!-- :class="[!canSubmit ? 'button&#45;&#45;submit&#45;&#45;disabled' : '' ]"-->
<u-button type="primary" @click="submit" shape="circle"
v-if="current === 1" class="button--submit"
:custom-style=" assignType === -1 ? {background: '#b5b5b5 !important'} : {background: '#333 !important'}"
:disabled="!canSubmit">下一步</u-button>
</view>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
import UserSelect from "./components/UserSelect";
import Steps from "./components/Steps";
import dom from '@/mixins/dom'
import goIndex from "./mixins/goIndex";
export default {
name: "register",
components: {Steps, UserSelect},
mixins: [dom,goIndex],
data(){
return{
current: 1,
userSelect: [
{
title: "我是面料供应商",
desc: "Fabric supplier",
imgSrc: "/static/images/index/userSelect/type_1.png",
activeImgSrc: "/static/images/index/userSelect/type_1_active.png",
},
{
title: "我要选款",
desc: "I want to choose",
imgSrc: "/static/images/index/userSelect/type_2.png",
activeImgSrc: "/static/images/index/userSelect/type_2_active.png",
},
{
title: "我是设计机构",
desc: "Design agency",
imgSrc: "/static/images/index/userSelect/type_3.png",
activeImgSrc: "/static/images/index/userSelect/type_3_active.png",
},
{
title: "我是检测机构",
desc: "Testing institutions",
imgSrc: "/static/images/index/userSelect/type_4.png",
activeImgSrc: "/static/images/index/userSelect/type_4_active.png",
}
],
assignType: -1, //身份类型: 1-我是面料供应商 2-我要选款 3-我是设计机构 4-我是检测机构
steps: [
{
title: '第一步',
desc: '选择身份'
},
{
title: '第二步',
desc: '完善信息'
},
{
title: '第三步',
desc: '完成'
}
],
formData:{
"enterpriseName": "", //企业名称
"corporateContactName": "", //企业联系人姓名
"institutionAddress": "" //企业/机构地址
},
error: true,
time: 3,
show: false,
rowIndex: null,
row: {},
column: [
{
value: '1',
label: '高端'
},
{
value: '2',
label: '终端'
}
],
typeDir: [
{
label: "承接面料建模",
value: 1,
},
{
label: "承接款式开发",
value: 2
},
],
style: {lineHeight: 'inherit'},
comData:{
pcBasicsId: '', //PC端注册的企业id
pcUserId: '', //PC端注册的企业id
corporateContactId: '', //企业联系人id
institutionAddressId: '',//企业/机构地址id
// "pcBasicsId": 5,
// "pcUserId": "1422769059341709341"
},
form1:{
subsidiaryInfoDTOList: [
// {
// "stallAddress": "档口地址", //档口地址
// "stallName": "档口名称" //档口名称
// }
]
},
form2:{
subsidiaryInfoDTOList:[
{stallAddress: ''}
],
brandInfoDTOList: [
// {
// "brandName": "品牌名称", //品牌名称
// "brandFixed": "品牌定位" //品牌定位
// }
]
},
form3:{
cooperationMethodList: [] // 合作方式
},
form4:{},
footerHeight: 0,
isInit: true,
status:{
isBrandOwner: 0, // 我要选款
isDesignAgency: 0, // 完善设计机构信息
isFabricSupplier: 0, //完善面料供应商信息
isTestingFacility: 0, // 完善检测机构信息
},
brandActive: 0,
infoActive: 0,
}
},
computed:{
canSubmit(){
if(this.assignType === 4){
return this.formData.corporateContactName && this.formData.enterpriseName && this.formData.institutionAddress;
}else if(this.assignType === 3){
return this.formData.corporateContactName && this.formData.enterpriseName && this.formData.institutionAddress && this.form3.cooperationMethodList.length > 0;
}else if(this.assignType === 2){
return this.formData.corporateContactName && this.formData.enterpriseName && (
this.form2.brandInfoDTOList.length === 0 ||
this.validateBrandItem(
this.form2.brandInfoDTOList.filter((item) =>{
return item.isDeleted === false
})
)
)
}else {
return (
this.formData.corporateContactName && this.formData.enterpriseName && (
this.form1.subsidiaryInfoDTOList.length === 0 ||
this.validateInfoItem(
this.form1.subsidiaryInfoDTOList.filter((item) =>{
return item.isDeleted === false
})
)
)
)
}
},
checkbox(){
let value = this.form3.cooperationMethodList,
{typeDir} = this,
res = [];
for (let i = 0; i < typeDir.length; i++) {
res.push({
...typeDir[i],
checked: value.indexOf(typeDir[i].value) > -1
})
}
return res;
},
subsidiaryInfo(){
return this.form1.subsidiaryInfoDTOList.filter((item) =>{
return item.isDeleted === false
})
},
brandInfo(){
return this.form2.brandInfoDTOList.filter((item) =>{
return item.isDeleted === false
})
}
},
onLoad(options) {
this.comData = {
...options,
...{
pcUserId: uni.getStorageSync("pcUserId") || options.pcUserId,
pcBasicsId: uni.getStorageSync("pcBasicsId") || options.pcBasicsId,
tenantId: uni.getStorageSync("tenantId") || options.tenantId,
}
};
this.assignType = Number(options.type)
if(this.comData.pcBasicsId && this.comData.pcUserId){
this.getItem();
}
},
mounted() {
this.uGetRect("#footer").then(res =>{
this.footerHeight = res.height;
})
},
methods:{
validateInfoItem(data){
let res = true;
for (let i = 0; i < data.length; i++) {
let item = data[i];
if(item.stallAddress && item.stallName){
}else{
res = false
}
}
return res;
},
validateBrandItem(data){
let res = true;
for (let i = 0; i < data.length; i++) {
let item = data[i];
if(item.brandName && item.brandFixed){
}else{
res = false
}
}
return res;
},
brandCollapseChange(index){
this.brandActive = this.brandActive === index ? null: index;
},
InfoCollapseChange(index){
this.infoActive = this.infoActive === index ? null: index;
},
getItem(){
this.$http(
"user.getItemMsg",
{
...this.comData,
assignType: this.assignType
}
).then(res =>{
let { code ,data} = res;
if(code === 200){
let {identityType,
supplierStudioCooperationMethodList,
addressList,
brandInfoList,
basics,
contact
} = data;
if(identityType !== -1 && identityType){
this.assignType = identityType;
}
this.form3.cooperationMethodList = supplierStudioCooperationMethodList['cooperationMethod'] || [];
this.form1.subsidiaryInfoDTOList = addressList.length > 0 ? addressList.map((item) =>{
return {
...item,
stallAddress: item.detailedAddress
}
}) : [
{stallAddress: '',isDeleted: false}
]
this.form2.brandInfoDTOList = brandInfoList.map((item) => {
return{
...item,
brandFixedText: this.column.find(($item) => {
return $item.value === item.brandFixed
})?.label || ''
}
}) || [];
this.form2.subsidiaryInfoDTOList = addressList.length > 0 ? addressList.map((item) =>{
return {
...item,
stallAddress: item.detailedAddress,
}
}): [
{stallAddress:'' ,isDeleted: false}
]
this.formData = {
enterpriseName: basics.fullName,
corporateContactName: contact[contact.length - 1]?.name || '',
institutionAddress: addressList[addressList.length - 1]?.detailedAddress || '',
corporateContactId: contact[contact.length - 1]?.id || '', //企业联系人id
institutionAddressId: addressList[addressList.length - 1]?.id || '',//企业/机构地址id
}
}
})
},
uGetRect(selector, all) {
return new Promise((resolve) => {
uni.createSelectorQuery()
.in(this)[all ? 'selectAll' : 'select'](selector)
.boundingClientRect((rect) => {
if (all && Array.isArray(rect) && rect.length) {
resolve(rect)
}
if (!all && rect) {
resolve(rect)
}
})
.exec()
})
},
userSelectCallback(type){
this.assignType = type;
let {
pcUserId,
pcBasicsId
} = this.comData;
if(pcUserId && pcBasicsId){
this.getItem();
}
},
// 重新选择时 核对当前选中状态
checkStatusByType(assignType){
let{
isBrandOwner, // 我要选款
isDesignAgency, // 完善设计机构信息
isFabricSupplier, //完善面料供应商信息
isTestingFacility, // 完善检测机构信息
} = this.status;
switch (assignType){
case 1:
isFabricSupplier ? this.goIndex() : '';
return ;
case 2:
isBrandOwner ? this.goIndex() : '';
return ;
case 3:
isDesignAgency ? this.goIndex() : '';
return ;
case 4:
isTestingFacility ? this.goIndex() : "";
return ;
}
},
goEndPage(isSuccess){
this.$Router.push({
path: '/pages/user/register/success',
query:{
status: isSuccess ? 'success':'error'
}
})
},
filterData(type){
switch (type){
case 1:
return this.form1;
case 2:
return this.form2
case 3:
return this.form3
case 4:
return this.form4
}
},
getData(){
return {
...this.comData,
...this.formData,
assignType: this.assignType,
...this.filterData(this.assignType),
}
},
submit() {
this.$http(
"user.register",
this.getData()
).then(res =>{
let { code ,data,msg} = res;
if(code === 200){
uni.setStorageSync("identityType", this.assignType);
this.createToken(data,()=>{
this.$Router.back()
})
}else{
uni.showToast({
title: msg
})
// this.error = true;
//this.goEndPage(false)
}
})
},
createToken(data,callback){
this.$http("auth.createTokenByApp" ,data).then(res =>{
let {
code, data
} = res;
if(code === 200){
uni.setStorageSync('token', data.accessToken);
uni.setStorageSync('pcUserId', data.userId);
uni.setStorageSync('pcBasicsId', data.enterpriseId);
uni.setStorageSync('userInfo', data);
callback();
}
})
},
defaultSubsidiaryInfoRow() {
return {
"stallAddress": "", //品牌名称
"stallName": "", //品牌定位
"isDeleted": false
}
},
addSubsidiaryInfoRow() {
let list = this.form1.subsidiaryInfoDTOList.filter((item) =>{
return item.isDeleted === false
});
if(list.length < 10){
this.form1.subsidiaryInfoDTOList.push(this.defaultSubsidiaryInfoRow())
}else{
this.$refs.uToast.show({
title: '最多添加10条',
})
}
},
delSubsidiaryInfoRow(item,index) {
this.row = item;
this.rowIndex = index;
this.delModal();
// this.modal.show = true;
},
defaultBrandInfoRow() {
return {
"brandName": "", //品牌名称
"brandFixed": "", //品牌定位
"brandFixedText": "", //品牌定位站位文本
"isDeleted": false
}
},
addBrandRow() {
let list = this.form2.brandInfoDTOList.filter((item) =>{
return item.isDeleted === false
});
if(list.length < 10){
this.form2.brandInfoDTOList.push(this.defaultBrandInfoRow())
}else{
this.$refs.uToast.show({
title: '最多添加10条',
})
}
},
delModal(){
uni.showModal({
title: '提示',
content: '是否删除数据',
success: (res) =>{
if (res.confirm) {
this.modalConfirm();
// console.log('用户点击确定');
} else if (res.cancel) {
// console.log('用户点击取消');
}
}
});
},
delBrandRow(item,index) {
this.row = item;
this.rowIndex = index;
this.delModal();
// this.modal.show = true;
},
selectConfirm(e,index){
let item = e[0];
if(this.assignType === 1){
}else{
this.$set(
this.form2.brandInfoDTOList,
this.rowIndex,
{
...this.form2.brandInfoDTOList[this.rowIndex],
brandFixedText: item.label,
brandFixed: item.value
},
)
}
},
modalConfirm(){
if(this.assignType === 2){
let {row} = this, data = this.form2.brandInfoDTOList;
if(row.id){
let index = data.findIndex((item) =>{
return item.id === row.id
});
if(index > -1){
this.$set(data,index,{
...this.row,
isDeleted: true
})
}
}else{
data.splice(
data.findIndex((item) =>{
return item === row;
}),
1);
}
}else{
let {row} = this, data = this.form1.subsidiaryInfoDTOList;
if(row.id){
let index = data.findIndex((item) =>{
return item.id === row.id
});
if(index > -1){
this.$set(this.form1.subsidiaryInfoDTOList,index,{
...this.row,
isDeleted: true
})
}
}else{
data.splice(
data.findIndex((item) =>{
return item === row;
}),
1);
}
}
},
checkChange(e){
let { name, value} = e;
if(value){
this.form3.cooperationMethodList.push(name)
}else{
let index = this.form3.cooperationMethodList.findIndex((item) => {
return item === name
});
this.form3.cooperationMethodList.splice(index,1);
}
}
}
}
</script>
<style scoped lang="scss">
@import './css/index';
</style>
export default {
methods:{
// 注册成功 跳转到首页
goIndex(){
uni.setStorageSync('assignType', this.assignType)
if(this.assignType !== 2){
this.$Router.replace({
path: '/pages/home/index'
})
}else{
this.$Router.replace({
path: '/pages/brands/brands'
})
}
},
}
}
......@@ -170,10 +170,11 @@
import UserSelect from "./components/UserSelect";
import Steps from "./components/Steps";
import dom from '@/mixins/dom'
import goIndex from "./mixins/goIndex";
export default {
name: "register",
components: {Steps, UserSelect},
mixins: [dom],
mixins: [dom,goIndex],
data(){
return{
current: 1,
......@@ -268,7 +269,7 @@ export default {
},
form2:{
subsidiaryInfoDTOList:[
{stallAddress: ''}
{stallAddress: '',isDeleted: false}
],
brandInfoDTOList: [
// {
......@@ -363,7 +364,7 @@ export default {
}
};
this.assignType = Number(options.type)
if(options.pcBasicsId && options.pcUserId){
if(this.comData.pcBasicsId && this.comData.pcUserId){
this.getItem();
}
},
......@@ -403,13 +404,6 @@ export default {
InfoCollapseChange(index){
this.infoActive = this.infoActive === index ? null: index;
},
// 注册成功 跳转到首页
goIndex(){
this.$Router.replace({
path: '/pages/home/index'
})
},
getItem(){
this.$http(
......@@ -428,7 +422,7 @@ export default {
basics,
contact
} = data;
if(identityType !== -1){
if(identityType !== -1 && identityType){
this.assignType = identityType;
}
......@@ -571,6 +565,7 @@ export default {
uni.setStorageSync('token', data.accessToken);
uni.setStorageSync('pcUserId', data.userId);
uni.setStorageSync('pcBasicsId', data.enterpriseId);
uni.setStorageSync('userInfo', data);
callback();
}
})
......
......@@ -35,13 +35,14 @@
<script>
import dom from "@/mixins/dom";
import goIndex from "./mixins/goIndex";
import UserSelect from "./components/UserSelect";
import Steps from "./components/Steps";
export default {
name: "register",
components: {Steps, UserSelect},
mixins: [dom],
mixins: [dom,goIndex],
data(){
return{
current: 0,
......@@ -103,9 +104,6 @@ export default {
},
onLoad(options) {
// let {
// redirect
// } = options;
this.comData = {
...options,
...{
......@@ -114,6 +112,9 @@ export default {
tenantId: uni.getStorageSync("tenantId") || options.tenantId,
}
};
uni.setStorageSync("pcUserId", this.comData.pcUserId)
uni.setStorageSync("pcBasicsId",this.comData.pcBasicsId)
uni.setStorageSync("tenantId",this.comData.tenantId)
let {
pcBasicsId,pcUserId
} = this.comData;
......@@ -144,13 +145,6 @@ export default {
},
userSelectCallback(type){
this.assignType = type;
// let {
// pcUserId,
// pcBasicsId
// } = this.comData;
// if(pcUserId && pcBasicsId){
// this.getItem();
// }
},
// 重新选择时 核对当前选中状态
checkStatusByType(assignType){
......@@ -162,33 +156,45 @@ export default {
} = this.status;
switch (assignType){
case 1:
isFabricSupplier ? this.goIndex() : '';
return ;
if(isFabricSupplier){
this.goIndex();
return false;
}else{
return true
}
case 2:
isBrandOwner ? this.goIndex() : '';
return ;
if(isBrandOwner){
this.goIndex();
return false;
}else{
return true
}
case 3:
isDesignAgency ? this.goIndex() : '';
return ;
if(isDesignAgency){
this.goIndex();
return false;
}else{
return true
}
case 4:
isTestingFacility ? this.goIndex() : "";
return ;
if(isTestingFacility){
this.goIndex();
return false;
}else{
return true
}
}
},
goIndex(){
this.$Router.replace({
path: '/pages/home/index'
})
},
next(){
this.checkStatusByType(this.assignType);
this.$Router.push({
path: '/pages/user/register/perfectInformation',
query:{
...this.comData,
type: this.assignType
}
})
if(this.checkStatusByType(this.assignType)){
this.$Router.push({
path: '/pages/user/register/perfectInformation',
query:{
...this.comData,
type: this.assignType
}
})
}
},
checkStatus(){
this.$http(
......@@ -201,6 +207,7 @@ export default {
let { identityType} = data.userLastIdentity;
if(identityType){
this.assignType = identityType;
this.status = data;
}
}
})
......
......@@ -49,13 +49,14 @@
<script>
import dom from "@/mixins/dom";
import goIndex from "./mixins/goIndex";
import UserSelect from "./components/UserSelect";
import Steps from "./components/Steps";
export default {
name: "register",
components: {Steps, UserSelect},
mixins: [dom],
mixins: [dom,goIndex],
data(){
return{
current: 2,
......@@ -116,11 +117,6 @@ export default {
back(){
this.$Router.back();
},
goIndex(){
this.$Router.replace({
path: '/pages/home/index'
})
},
success() {
let timer = setInterval(() => {
this.time--;
......
......@@ -11,6 +11,8 @@ export default {
return{
baseUrl: 'http://pay.huansi.net/#/payorder/',
orderId: '',
timer: null,
loading: false,
// html: 'http://pay.huansi.net/#/payorder/1483979726701785089'
}
},
......@@ -19,16 +21,53 @@ export default {
return `${this.baseUrl}${this.orderId}`
}
},
created() {
this.$http("stylelibraryorder.shPay").then(res => {
let {
success, result
} = res;
// console.log(res)
if(success){
this.orderId = result.orderId;
methods:{
checkStatus(){
if(this.loading){
return;
}
})
this.loading = true;
this.$http("stylelibraryorder.listingDetailsByCode",this.orderId)
.then(res =>{
let {
code, data,msg
} = res;
if(code === 200){
if(data.status === 2){
uni.showToast({
title: msg,
complete:() =>{
this.$Router.back();
}
})
}
}else{
uni.showToast({
title: msg
})
}
})
.complete(() =>{
this.loading = false;
})
}
},
created() {
this.orderId = this.$Router.currentRoute.query.id;
},
onShow() {
if(this.ticker){
clearInterval(this.ticker);
}else {
this.ticker = setInterval(this.checkStatus, 1000);
}
//
// this.$once("hooks:onHide", () =>{
// clearInterval(this.ticker);
// })
},
onHide(){
clearInterval(this.ticker);
}
}
</script>
......
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