1234 lines
46 KiB
Vue
1234 lines
46 KiB
Vue
<template>
|
|
<view class="create-container">
|
|
<view class="container-box">
|
|
<swiper indicator-dots style="height: 120rpx;" autoplay indicator-active-color="#fff">
|
|
<swiper-item>
|
|
<image src="/static/images/banner_1.png" style="width: 100vw;height: 120rpx;"></image>
|
|
</swiper-item>
|
|
<swiper-item>
|
|
<image src="/static/images/banner_2.png" style="width: 100vw;height: 120rpx;"></image>
|
|
</swiper-item>
|
|
</swiper>
|
|
<view class="info-box">
|
|
<view class="info-title">项目信息</view>
|
|
<textarea :value="projectName" @input="inputProjectName" class="info-value"
|
|
placeholder="请输入系统全称(注:建议以'软件''平台''系统'等字眼结尾)" placeholder-style="font-size:14px;"></textarea>
|
|
<view class="info-btn" @click="doCommendProjectName">推荐</view>
|
|
</view>
|
|
<view class="content-box">
|
|
<!-- 第一部分 -->
|
|
<view class="section">
|
|
<view class="item">
|
|
<text class="label">产权联系人</text>
|
|
<picker style="flex:1;" mode="selector" :range="contactList" range-key="name"
|
|
@change="doChangeContact">
|
|
<view style="display: flex;align-items: center;">
|
|
<view style="font-size: 14px;text-align: center;flex:1;color: #000000;">
|
|
{{selectContact.name}}
|
|
</view>
|
|
<view class="icon-arrow-down-line"
|
|
style="width: 24rpx;height: 24rpx;margin-right: 20px;"></view>
|
|
</view>
|
|
</picker>
|
|
<view class="link" @click="doCreateContact">新建</view>
|
|
</view>
|
|
<view class="item">
|
|
<view class="flex-1">
|
|
<text class="label" style="flex: 1;">系统版本</text>
|
|
<input class="value" :class="version != '' ? 'v-select':''" placeholder="v1.0"
|
|
style="flex:1;" :value="version" @input="inputVersion" />
|
|
</view>
|
|
<view class="flex-1">
|
|
<text class="label">系统语言</text>
|
|
<view class="value selection-box ml-20">
|
|
<view style="display: flex;align-items: center;">
|
|
<view class="language-sel" :class="selectLang != ''? 'v-select':''"
|
|
@click="doShowLang">{{selectLang}}</view>
|
|
<view class="icon-arrow-down-line" style="width: 28rpx;height: 28rpx;"></view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="item">
|
|
<view class="label">开发完成时间</view>
|
|
<picker mode="date" style="flex:1;" :value="completeDate" start="2010-01-01" end="2050-01-01"
|
|
@change="bindDateChange">
|
|
<view class="select-time" :class="completeDate ==''? 'value-hint':''">
|
|
{{completeDate != ''? completeDate:'请选择开发完成时间'}}
|
|
</view>
|
|
</picker>
|
|
<view style="display: flex;flex-direction: row;">
|
|
<view v-if="completeDate !=''" @click="clearTime" class="icon-clear"
|
|
style="height: 32rpx;width: 32rpx;margin-right: 10rpx;">
|
|
</view>
|
|
<view v-if="completeDate==''" class="icon-calendar-ind"
|
|
style="height: 32rpx;width: 32rpx;margin-right: 10rpx;">
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 第二部分 -->
|
|
<view class="section">
|
|
<view v-if="canSelPackage" class="item" style="justify-content: space-between;">
|
|
<text class="label">套餐包</text>
|
|
<text class="value" :class="!isEmpty(selectPackage) ? 'v-select':''"
|
|
style="flex: 1;text-align: right;"
|
|
@click="doShowPackage">{{selectPackage.packageName?selectPackage.packageName:'请选择套餐包'}}</text>
|
|
<text v-if="!isEmpty(selectPackage)" class="link" @click="clearSelectPackageOrCoupons">取消</text>
|
|
</view>
|
|
<view v-if="canSelCoupons" class="item">
|
|
<text class="label">优惠券</text>
|
|
<text @click="doShowCoupons" class="value"
|
|
:class="!isEmpty(selectCoupons)? 'v-select':''">{{selectCoupons.couponId? selectCoupons.coupon.title : '请选择优惠券'}}</text>
|
|
<text class="link" v-if="!isEmpty(selectCoupons)" @click="clearSelectPackageOrCoupons">取消</text>
|
|
<text class="link" @click="doShowCoupons" v-if="isEmpty(selectCoupons)">选择</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="bottom-box">
|
|
<view class="money">
|
|
<view>金额:<text class="price">{{price/100}}元</text></view>
|
|
<checkbox-group @change="doUrgent" v-if="isShowUrgent">
|
|
<checkbox :checked="isUrgent" color="#FFA900"
|
|
style="transform: scale(0.7);transform-origin: left center;margin-left: 8rpx;"
|
|
:disabled="isUrgentDisable">
|
|
<text style="color: #532A00;padding-left: 8rpx;font-weight: 400;">加急办理{{urgent/100}}元</text>
|
|
</checkbox>
|
|
</checkbox-group>
|
|
</view>
|
|
<view class="btn" @click="doCreateProject">保存并付款</view>
|
|
</view>
|
|
<view>
|
|
<!-- 推荐项目名称 -->
|
|
<uni-popup ref="commendDialog" type="bottom" background-color="#fff" border-radius="15rpx 15rpx 0rpx 0rpx">
|
|
<view class="bottom-dialog-box">
|
|
<view class="bottom-title-box">
|
|
<view class="icon-close close-icon" @click="closeCommendDialog"></view>
|
|
<view class="bottom-title-txt">项目名称</view>
|
|
</view>
|
|
<textarea @input="inputProjectName" placeholder="请简单介绍您想创建的系统,我们会根据您的描述为您推荐系统全称"
|
|
class="commend-text-area"></textarea>
|
|
<scroll-view scroll-y style="height: 300rpx;">
|
|
<view class="project-box">
|
|
<block v-for="(item,index) in projectNameList" :key="index">
|
|
<view class="project-item" @click="doSelectProjectName" :data-value="item">{{item}}
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="confirm-btn" @click="doCreateFullName">生成</view>
|
|
</view>
|
|
</uni-popup>
|
|
<!-- 新建联系人 -->
|
|
<uni-popup ref="createContactDialog" type="bottom" background-color="#fff"
|
|
border-radius="15rpx 15rpx 0rpx 0rpx">
|
|
<view class="bottom-dialog-box">
|
|
<view class="bottom-title-box">
|
|
<view class="icon-close close-icon" @click="closeCreateContact"></view>
|
|
<view class="bottom-title-txt">新建联系人</view>
|
|
</view>
|
|
<view class="form-box">
|
|
<view class="form-item">
|
|
<view class="form-item-title">姓名</view>
|
|
<input :adjust-position="true" :cursor-spacing="50" :value="contactName" placeholder="请输入姓名"
|
|
class="form-item-content" @input="inputContactName" />
|
|
</view>
|
|
<view class="form-item">
|
|
<view class="form-item-title">联系电话</view>
|
|
<input :adjust-position="true" :cursor-spacing="50" :value="contactPhone"
|
|
placeholder="请输入联系电话" class="form-item-content" @input="inputContactPhone" />
|
|
</view>
|
|
<view class="form-item">
|
|
<view class="form-item-title no-after" style="padding-left: 16rpx;">联系邮箱</view>
|
|
<input :adjust-position="true" :cursor-spacing="50" :value="contactEmail"
|
|
placeholder="请输入联系邮箱" class="form-item-content" @input="inputContactEmail" />
|
|
</view>
|
|
<view class="form-item">
|
|
<view class="form-item-title no-after" style="padding-left: 16rpx;">公司</view>
|
|
<input :adjust-position="true" :cursor-spacing="50" :value="contactCompany"
|
|
placeholder="请输入公司名称" class="form-item-content" @input="inputContactCompany" />
|
|
</view>
|
|
</view>
|
|
<view class="confirm-btn" @click="doCreateFullName">生成</view>
|
|
</view>
|
|
</uni-popup>
|
|
<!-- 语言选择 -->
|
|
<uni-popup ref="selectLangDialog" type="bottom" background-color="#fff"
|
|
border-radius="15rpx 15rpx 0rpx 0rpx">
|
|
<view class="bottom-dialog-box">
|
|
<view class="bottom-title-box">
|
|
<view class="icon-close close-icon" @click="closeLangDialog"></view>
|
|
<view class="bottom-title-txt">系统语言</view>
|
|
</view>
|
|
<view class="coupons-list-box">
|
|
<radio-group style="display: flex;flex-direction: column;width: 100vw;" @change="changeLang">
|
|
<block v-for="(item,index) in langList" :key="index">
|
|
<radio color="#FFA900" style="transform:scale(0.9);" :checked="selectLang==item"
|
|
:value="item">
|
|
<view style="margin-left: 20rpx;text-align: center;">{{item}}</view>
|
|
</radio>
|
|
</block>
|
|
</radio-group>
|
|
</view>
|
|
<view class="confirm-btn" @click="doConfirmLang">确定</view>
|
|
</view>
|
|
</uni-popup>
|
|
<!-- 套餐包弹窗 -->
|
|
<uni-popup ref="selPackageDialog" type="bottom" background-color="#fff"
|
|
border-radius="15rpx 15rpx 0rpx 0rpx">
|
|
<view class="bottom-dialog-box">
|
|
<view class="bottom-title-box">
|
|
<view class="icon-close close-icon" @click="closePackage"></view>
|
|
<view class="bottom-title-txt">套餐包</view>
|
|
</view>
|
|
<scroll-view scroll-y style="height: 500rpx;">
|
|
<view class="coupons-list-box">
|
|
<radio-group @change="radioSelPackage">
|
|
<block v-for="(item,index) in packageList" :key="index">
|
|
<view class="tickets" @click="choosePackage" :data-value="item">
|
|
<view class="l-tickets">
|
|
<view class="ticket-title">
|
|
<view>套餐包</view>
|
|
<view>剩余{{item.packageTotalSurplusCount}}件</view>
|
|
</view>
|
|
<view class="ticket-content">{{item.packageInfoAppDTO.packageName}}</view>
|
|
<view class="ticket-desc">{{item.packageInfoAppDTO.packageDescription}}
|
|
</view>
|
|
</view>
|
|
<view class="r-tickets">
|
|
<radio color="#FFA900" style="margin-left: 5px;transform:scale(0.8)"
|
|
:value="index+''"
|
|
:checked="tempPackage.packageInfoId==item.packageInfoId">
|
|
</radio>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</radio-group>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="confirm-btn" @click="doConfirmPackage">确定</view>
|
|
</view>
|
|
</uni-popup>
|
|
|
|
<!-- 优惠卷弹窗 -->
|
|
<uni-popup ref="selCouponsDialog" type="bottom" background-color="#fff"
|
|
border-radius="15rpx 15rpx 0rpx 0rpx">
|
|
<view class="bottom-dialog-box">
|
|
<view class="bottom-title-box">
|
|
<view class="icon-close close-icon" @click="closeCoupons"></view>
|
|
<view class="bottom-title-txt">优惠卷</view>
|
|
</view>
|
|
<scroll-view scroll-y style="height: 500rpx;">
|
|
<view class="coupons-list-box">
|
|
<radio-group @change="radioSelCoupons">
|
|
<block v-for="(item,index) in couponsList" :key="index">
|
|
<view class="tickets" @click="chooseCoupons" :data-value="item">
|
|
<view class="l-tickets">
|
|
<view class="ticket-title">
|
|
<view
|
|
style="display: flex;flex-direction: row;justify-content: center;align-items: center;">
|
|
<view class="coupons-icon" style="width: 24px;height: 24px;">
|
|
</view>
|
|
<text>优惠卷</text>
|
|
</view>
|
|
<view>减{{item.coupon.amount/100}}元</view>
|
|
</view>
|
|
<view class="ticket-content">{{item.coupon.title}}</view>
|
|
<view class="ticket-desc">
|
|
有效期:{{item.coupon.useGmtStart}}至{{item.coupon.useGmtEnd}}</view>
|
|
</view>
|
|
<view class="r-tickets">
|
|
<radio color="#FFA900" style="margin-left: 5px;transform: scale(0.8);"
|
|
:value="index+''" :checked="tempCoupons.couponId==item.couponId">
|
|
</radio>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</radio-group>
|
|
</view>
|
|
</scroll-view>
|
|
<view class="confirm-btn" @click="doConfirmCoupons">确定</view>
|
|
</view>
|
|
</uni-popup>
|
|
<uni-popup type="message" ref="msg">
|
|
<uni-popup-message :type="msgType" :message="msgTxt" :duration="2000"></uni-popup-message>
|
|
</uni-popup>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import ProApi from '@/common/js/net/projectApi.js'
|
|
import UserApi from '@/common/js/net/UserApi.js'
|
|
import {
|
|
formatDate
|
|
} from '@/common/js/util.js'
|
|
import {
|
|
isEmpty,
|
|
objIsEmpty
|
|
} from '@/common/js/conver.js'
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
msgType: 'info',
|
|
msgTxt: '',
|
|
completeDate: '', //开发完成时间
|
|
version: "v1.0", //系统版本
|
|
type: 'ALL', //默认全托管 上级页面传递type参数 all全托管 material写材料
|
|
languageList: ['JAVA'],
|
|
currentLanguage: 'JAVA', //当前选中的语言
|
|
price: 0,
|
|
packageList: [], //套餐包
|
|
tempPackage: {}, //临时选中的优惠卷,没有点击确定按钮前
|
|
selectPackage: {}, //选中的套餐包
|
|
couponsList: [], //优惠卷
|
|
selectCoupons: {}, //选中的优惠卷
|
|
tempCoupons: {}, //临时选中的优惠卷,没有点击确定按钮
|
|
contactList: [], //联系人
|
|
selectContact: {}, //当前选中的联系人
|
|
contactPhone: '', //联系人电话
|
|
contactName: '', //联系人姓名
|
|
contactEmail: '', //联系人邮箱
|
|
csaNo: '', //客服NO
|
|
projectName: '',
|
|
projectNameList: [],
|
|
isUrgent: false, //是否加急
|
|
canSelCoupons: true, //是否可以使用优惠卷
|
|
canSelPackage: true, //是否可以使用套餐包
|
|
langList: [], //项目语言
|
|
showLang: false, //显示选择语言
|
|
tempLang: '', //临时选中的语言
|
|
selectLang: '',
|
|
contactCompany: '', //联系人公司
|
|
isShowUrgent: true, //是否加急
|
|
urgent: 0, //加急费用
|
|
isUrgentDisable: false, //是否禁用加急
|
|
proPrice: 0, //价格
|
|
transmitPId: '', //传递过来的套餐包ID
|
|
}
|
|
},
|
|
onLoad(options) {
|
|
uni.setNavigationBarTitle({
|
|
title: '创建软著',
|
|
})
|
|
uni.setNavigationBarColor({
|
|
frontColor: '#000000', // 必写项,字体颜色仅支持#ffffff和#000000
|
|
backgroundColor: '#F0F0F0', // 传递的颜色值,仅支持十六进制颜色
|
|
animation: { // 可选项
|
|
duration: 500,
|
|
timingFunc: 'easeIn'
|
|
}
|
|
})
|
|
const typeParams = options.type //类型
|
|
const priceParams = options.price //价格
|
|
const isUrgentParams = options.isUrgent //是否加急
|
|
const pId = options.pId //套餐包ID
|
|
console.log(priceParams)
|
|
if (priceParams && priceParams > 0) {
|
|
this.price = priceParams
|
|
this.proPrice = priceParams
|
|
this.type = typeParams
|
|
this.isUrgent = isUrgentParams
|
|
this.transmitPId = pId
|
|
} else {
|
|
this.msgType = 'error'
|
|
this.msgTxt = '数据有误,请稍后重试'
|
|
this.$refs.msg.open()
|
|
setTimeout(() => {
|
|
uni.navigateBack()
|
|
}, 1500);
|
|
}
|
|
if (this.type == 'ALL') {
|
|
this.isShowUrgent = true
|
|
this.isUrgent = false
|
|
} else {
|
|
this.isShowUrgent = false
|
|
}
|
|
console.log('是否加急:', this.isUrgent);
|
|
//获取项目联系人
|
|
this.doGetContactList()
|
|
//获取套餐包
|
|
this.doGetPackage()
|
|
//获取优惠卷
|
|
this.doGetCoupons()
|
|
//获取客服ID
|
|
this.doGetCsaNo(false)
|
|
//获取可选语言
|
|
this.doGetProLangList()
|
|
//获取加急等费用
|
|
this.doGetPrice()
|
|
},
|
|
methods: {
|
|
// 导入的方法
|
|
isEmpty,
|
|
// 关闭dialog
|
|
closeCommendDialog() {
|
|
this.$refs.commendDialog.close()
|
|
},
|
|
closeCreateContact() {
|
|
this.$refs.crateContactDialog.close()
|
|
},
|
|
closeLangDialog() {
|
|
this.$refs.selectLangDialog.close()
|
|
},
|
|
//关闭dialog End
|
|
//获取产权联系人
|
|
doGetContactList() {
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
const _self = this
|
|
ProApi.doGetContactList()
|
|
.then(res => {
|
|
uni.hideLoading()
|
|
_self.contactList = res
|
|
_self.selectContact = res[0]
|
|
})
|
|
.catch(err => {
|
|
uni.hideLoading()
|
|
})
|
|
},
|
|
//获取套餐包
|
|
doGetPackage() {
|
|
const _self = this
|
|
const data = {
|
|
page: 1,
|
|
rows: 100,
|
|
packageType: _self.type,
|
|
keyong: 1,
|
|
}
|
|
ProApi.doGetPackageList(data)
|
|
.then(res => {
|
|
_self.packageList = res.rows
|
|
if (_self.transmitPId != '' && _self.transmitPId != 'undefined') {
|
|
res.rows.map(item => {
|
|
if (item.packageInfoId == _self.transmitPId) {
|
|
_self.selectPackage = item
|
|
_self.showPackage = false
|
|
_self.tempPackage = {}
|
|
_self.canSelCoupons = false
|
|
_self.selectCoupons = {}
|
|
_self.tempCoupons = {}
|
|
_self.isUrgent = false //取消加急
|
|
_self.isUrgentDisable = true //加急不能选择
|
|
_self.price = 0
|
|
}
|
|
})
|
|
}
|
|
})
|
|
.catch(err => {
|
|
_self.packageList = []
|
|
})
|
|
},
|
|
//获取优惠卷
|
|
doGetCoupons() {
|
|
const _self = this
|
|
const data = {
|
|
page: 1,
|
|
rows: 100,
|
|
isEffective: 1,
|
|
isUsed: 0
|
|
}
|
|
ProApi.doGetCouponseList(data)
|
|
.then(res => {
|
|
_self.couponsList = res.rows
|
|
})
|
|
.catch(err => {
|
|
_self.couponsList = []
|
|
})
|
|
},
|
|
//获取客服NO,用于创建联系人
|
|
doGetCsaNo(isShow) {
|
|
const _self = this
|
|
UserApi.doGetCsaNo()
|
|
.then(res => {
|
|
_self.csaNo = res.csaNo
|
|
if (isShow) {
|
|
//TODO 显示创建联系人弹窗
|
|
}
|
|
})
|
|
.catch(err => {
|
|
_self.msgTxt = '获取客服失败,请稍后重试'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
})
|
|
},
|
|
//获取可选语言
|
|
doGetProLangList() {
|
|
const _self = this
|
|
ProApi.doGetProLangList()
|
|
.then(res => {
|
|
_self.langList = res
|
|
_self.selectLang = res[0]
|
|
})
|
|
.catch(err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
//获取单价
|
|
doGetPrice() {
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
const _self = this
|
|
ProApi.doGetPrice()
|
|
.then(res => {
|
|
console.log(res)
|
|
_self.urgent = res.additional.urgent //加急办理
|
|
})
|
|
.catch(err => {
|
|
_self.msgTxt = '数据有误,请稍后重试'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
setTimeout(() => {
|
|
uni.navigateBack()
|
|
}, 1500)
|
|
})
|
|
},
|
|
//项目名称输入
|
|
inputProjectName(e) {
|
|
this.projectName = e.detail.value
|
|
},
|
|
//选中推荐的系统名称
|
|
doSelectProjectName(e) {
|
|
this.projectName = e.currentTarget.dataset.value
|
|
this.projectNameList = []
|
|
this.$refs.commendDialog.close()
|
|
},
|
|
//显示推荐项目名称
|
|
doCommendProjectName() {
|
|
this.$refs.commendDialog.open()
|
|
},
|
|
//获取推荐的项目名称
|
|
doCreateFullName() {
|
|
const _self = this
|
|
uni.showLoading({
|
|
title: '生成中...',
|
|
})
|
|
const data = {
|
|
prompt: _self.projectName
|
|
}
|
|
ProApi.doGetCommendProjectName(data)
|
|
.then(res => {
|
|
uni.hideLoading()
|
|
console.log(res)
|
|
if (res && res.length > 0) {
|
|
_self.projectNameList = res
|
|
} else {
|
|
_self.msgTxt = '未查询到相关推荐的系统名称,请重新输入'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
}
|
|
}, err => {
|
|
uni.hideLoading()
|
|
_self.msgTxt = '未查询到相关推荐的系统名称,请重新输入'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
})
|
|
},
|
|
//选中项目联系人
|
|
doChangeContact(e) {
|
|
this.selectContact = this.contactList[e.detail.value]
|
|
},
|
|
//显示新建联系人弹窗
|
|
doCreateContact() {
|
|
this.$refs.createContactDialog.open()
|
|
},
|
|
//监听输入版本
|
|
inputVersion(e) {
|
|
this.version = e.detail.value
|
|
},
|
|
//显示系统语言弹窗
|
|
doShowLang() {
|
|
this.$refs.selectLangDialog.open()
|
|
},
|
|
//切换系统语言
|
|
changeLang(e) {
|
|
this.tempLang = e.detail.value
|
|
},
|
|
//确定选中系统语言
|
|
doConfirmLang() {
|
|
const _self = this
|
|
if (_self.tempLang != '') {
|
|
_self.selectLang = _self.tempLang
|
|
_self.tempLang = ''
|
|
}
|
|
_self.$refs.selectLangDialog.close()
|
|
},
|
|
//时间切换
|
|
bindDateChange(e) {
|
|
this.completeDate = e.detail.value
|
|
},
|
|
//清除完成时间
|
|
clearTime() {
|
|
console.log('清除时间');
|
|
this.completeDate = ''
|
|
},
|
|
//显示套餐包弹窗
|
|
doShowPackage() {
|
|
const _self = this
|
|
if (_self.packageList.length > 0) {
|
|
_self.tempPackage = _self.selectPackage
|
|
_self.$refs.selPackageDialog.open()
|
|
} else {
|
|
_self.msgTxt = '您暂时没有可以使用的套餐包'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
}
|
|
},
|
|
//关闭套餐包弹窗
|
|
closePackage() {
|
|
this.$refs.selPackageDialog.close()
|
|
},
|
|
//点击选择套餐包
|
|
choosePackage(e) {
|
|
this.tempPackage = e.currentTarget.dataset.value
|
|
},
|
|
//点击radio
|
|
radioSelPackage(e) {
|
|
this.tempPackage = this.packageList[e.detail.value]
|
|
},
|
|
//确定选中的套餐包
|
|
doConfirmPackage() {
|
|
this.selectPackage = this.tempPackage
|
|
this.tempPackage = {}
|
|
this.canSelCoupons = false
|
|
this.selectCoupons = {}
|
|
this.tempCoupons = {}
|
|
this.isUrgent = false //取消加急
|
|
this.isUrgentDisable = true //加急不能选择
|
|
this.countPrice()
|
|
this.$refs.selPackageDialog.close()
|
|
},
|
|
//请空选中的套餐包或优惠卷
|
|
clearSelectPackageOrCoupons() {
|
|
this.selectCoupons = {}
|
|
this.selectPackage = {}
|
|
this.tempCoupons = {}
|
|
this.tempPackage = {}
|
|
this.canSelCoupons = true
|
|
this.canSelPackage = true
|
|
this.isUrgent = false //取消加急
|
|
this.isUrgentDisable = false //加急可以选择
|
|
this.countPrice()
|
|
},
|
|
//显示优惠卷弹窗
|
|
doShowCoupons() {
|
|
this.$refs.selCouponsDialog.open()
|
|
},
|
|
//关闭优惠卷弹窗
|
|
closeCoupons() {
|
|
this.$refs.selCouponsDialog.close()
|
|
},
|
|
//确定选中的优惠卷
|
|
doConfirmCoupons() {
|
|
const _self = this
|
|
_self.selectCoupons = _self.tempCoupons
|
|
_self.tempCoupons = {}
|
|
_self.canSelPackage = false
|
|
_self.selectPackage = {}
|
|
_self.tempPackage = {}
|
|
_self.countPrice()
|
|
this.$refs.selCouponsDialog.close()
|
|
},
|
|
//切换优惠卷
|
|
chooseCoupons(e) {
|
|
this.tempCoupons = e.currentTarget.dataset.value
|
|
},
|
|
//radio点击
|
|
radioSelCoupons(e) {
|
|
this.tempCoupons = this.couponsList[e.detail.value]
|
|
},
|
|
//是否加急
|
|
doUrgent() {
|
|
const _self = this
|
|
_self.isUrgent = !_self.isUrgent
|
|
_self.countPrice()
|
|
},
|
|
//计算价格
|
|
countPrice() {
|
|
const _self = this;
|
|
const trPrice = Number(_self.proPrice);
|
|
let newPrice;
|
|
|
|
if (!objIsEmpty(_self.selectPackage)) {
|
|
newPrice = 0;
|
|
} else {
|
|
const isAllType = _self.type === 'ALL';
|
|
const hasCoupon = !objIsEmpty(_self.selectCoupons);
|
|
const isUrgent = _self.isUrgent;
|
|
|
|
const couponAmount = hasCoupon ? Number(_self.selectCoupons.coupon.amount) : 0;
|
|
const urgentFee = isAllType && isUrgent ? Number(_self.urgent) : 0;
|
|
|
|
newPrice = trPrice + urgentFee - couponAmount;
|
|
}
|
|
_self.price = Math.max(0, newPrice);
|
|
},
|
|
//校验参数
|
|
doCheckProjectParams() {
|
|
const _self = this
|
|
if (_self.projectName == '') {
|
|
_self.msgTxt = '请输入项目名称'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
return false
|
|
}
|
|
if (Object.keys(_self.selectContact).length <= 0) {
|
|
_self.msgTxt = '请选中产权联系人'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
return false
|
|
}
|
|
return true
|
|
},
|
|
//提交新建项目信息
|
|
doCreateProject() {
|
|
//校验参数
|
|
const _self = this
|
|
const isLegal = _self.doCheckProjectParams()
|
|
if (isLegal) {
|
|
uni.showLoading({
|
|
title: '创建中...',
|
|
})
|
|
//构建参数
|
|
var list = []
|
|
if (_self.isUrgent != '') {
|
|
list = [_self.isUrgent]
|
|
}
|
|
const data = {
|
|
applyContactCsaNo: _self.selectContact.csaNo, // 联系人客服编号
|
|
applyContactId: _self.selectContact.projContactId, //联系人ID
|
|
applyContactName: _self.selectContact.name, //联系人姓名
|
|
applyContactPhone: _self.selectContact.phone, //联系人手机
|
|
projDevCompleteDate: _self.completeDate, //开发完成日期
|
|
projName: _self.projectName, //项目简称
|
|
projVersion: _self.version, //项目版本
|
|
backendCodeLang: _self.selectLang,
|
|
projChargeType: _self.type, //项目收费类型 ALL,FREE,MATERIAL,MATERIAL_AGENT,MATERIAL_AGENT_URGENT
|
|
listProjChargeAdditional: list,
|
|
packageOrderId: _self.selectPackage.packageOrderId ? _self.selectPackage.packageOrderId :
|
|
'', //套餐包ID
|
|
couponId: _self.selectCoupons.couponId ? _self.selectCoupons.couponId : '', //优惠卷ID
|
|
}
|
|
ProApi.doCreateProject(data)
|
|
.then(res => {
|
|
console.log(res)
|
|
uni.hideLoading()
|
|
_self.msgType = 'success'
|
|
_self.msgTxt = '项目创建流程圆满完成,系统正在生成配套材料,请您耐心等候。'
|
|
_self.$refs.msg.open()
|
|
setTimeout(() => {
|
|
uni.navigateBack()
|
|
}, 1500);
|
|
})
|
|
.catch(err => {
|
|
uni.hideLoading()
|
|
console.log(err)
|
|
_self.msgTxt = err.msg ? err.msg : '网络错误,请稍后重试'
|
|
_self.msgType = 'error'
|
|
_self.$refs.msg.open()
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.custom-checkbox {
|
|
font-size: 14px;
|
|
margin-left: 14px;
|
|
}
|
|
|
|
.custom-wx-checkbox .wx-checkbox-input.wx-checkbox-input-checked {
|
|
color: #fff !important;
|
|
background-color: #FFA900;
|
|
border: 1px solid #FFA900;
|
|
}
|
|
|
|
.custom-wx-checkbox .wx-checkbox-input {
|
|
-webkit-appearance: none;
|
|
appearance: none;
|
|
margin-bottom: 3px;
|
|
outline: 0;
|
|
text-indent: 0;
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
background-color: transparent;
|
|
position: relative;
|
|
border: 1rpx solid #FFA900;
|
|
box-sizing: border-box;
|
|
text-align: center;
|
|
}
|
|
|
|
/*钩大小*/
|
|
.custom-wx-checkbox .wx-checkbox-input.wx-checkbox-input-checked:before {
|
|
font-size: 32rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.create-container {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
}
|
|
|
|
.container-box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: flex-start;
|
|
padding: 15px;
|
|
}
|
|
|
|
.create-title {
|
|
height: 80rpx;
|
|
background-color: blanchedalmond;
|
|
}
|
|
|
|
.commend-text-area {
|
|
border: 1px solid #f2f2f2;
|
|
padding: 10px;
|
|
height: 50px;
|
|
align-self: center;
|
|
width: 85vw;
|
|
margin-top: 20rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.info-box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.info-title {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.info-value {
|
|
margin-top: 20rpx;
|
|
border: 1rpx solid #f2f2f2;
|
|
font-size: 14px;
|
|
line-height: 16px;
|
|
background-color: white;
|
|
height: 65rpx;
|
|
width: auto;
|
|
padding: 15px;
|
|
}
|
|
|
|
.info-btn {
|
|
align-self: flex-end;
|
|
background-color: #FFA900;
|
|
margin-top: 20rpx;
|
|
padding: 5rpx 40rpx;
|
|
color: white;
|
|
border-radius: 10rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.content-box {
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
.section {
|
|
border: 1px solid #f4f4f4;
|
|
border-radius: 5rpx;
|
|
padding: 15rpx;
|
|
margin-bottom: 15rpx;
|
|
background-color: white;
|
|
}
|
|
|
|
.item {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 10rpx;
|
|
padding: 20rpx 10rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.label {
|
|
color: black;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.desc {
|
|
flex: 1;
|
|
color: #999;
|
|
text-align: left;
|
|
padding-left: 20rpx;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
padding-right: 10px;
|
|
align-items: center;
|
|
}
|
|
|
|
.select-time {
|
|
color: #000000;
|
|
flex: 1;
|
|
font-size: 14px;
|
|
text-align: left;
|
|
padding-left: 40rpx;
|
|
}
|
|
|
|
.clear-icon {
|
|
width: 20px;
|
|
height: 20px;
|
|
margin-right: 20rpx;
|
|
}
|
|
|
|
.desc .icon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
|
|
.value {
|
|
color: #9A9A9A;
|
|
padding-right: 10px;
|
|
flex: 1;
|
|
text-align: right;
|
|
padding-right: 10px;
|
|
font-size: 14px;
|
|
}
|
|
|
|
|
|
.value-hint {
|
|
color: #9A9A9A;
|
|
}
|
|
|
|
.v-select {
|
|
color: #000000;
|
|
}
|
|
|
|
|
|
.language-sel {
|
|
font-size: 14px;
|
|
flex: 1;
|
|
text-align: center;
|
|
}
|
|
|
|
|
|
.link {
|
|
color: #007AFF;
|
|
}
|
|
|
|
.flex-1 {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex: 1;
|
|
}
|
|
|
|
.selection-box {
|
|
position: relative;
|
|
flex: 1;
|
|
}
|
|
|
|
.language-options {
|
|
position: absolute;
|
|
top: 100%;
|
|
left: -20rpx;
|
|
padding: 10rpx 20rpx;
|
|
border: 1px solid #f2f2f2;
|
|
border-top: none;
|
|
background-color: white;
|
|
box-shadow: 0rpx 0rpx 10rpx 10rpx #f2f2f2;
|
|
}
|
|
|
|
.option {
|
|
padding: 15rpx;
|
|
cursor: pointer;
|
|
border-bottom: 1rpx solid #f2f2f2;
|
|
}
|
|
|
|
.option:hover {
|
|
background-color: #f0f0f0;
|
|
}
|
|
|
|
.weui-half-screen-dialog__ft {
|
|
padding: 0rpx 0rpx 40rpx;
|
|
}
|
|
|
|
.bottom-box {
|
|
position: fixed;
|
|
left: 0;
|
|
bottom: 0;
|
|
text-align: center;
|
|
width: 100vw;
|
|
line-height: 100rpx;
|
|
border-radius: 20rpx;
|
|
background-color: white;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.bottom-box .btn {
|
|
background-color: #37AD46;
|
|
color: white;
|
|
text-align: center;
|
|
height: 40px;
|
|
width: 94vw;
|
|
line-height: 40px;
|
|
border-radius: 20rpx;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.bottom-box .money {
|
|
color: #532A00;
|
|
font-size: 20px;
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.price {
|
|
color: rgb(250, 0, 0);
|
|
}
|
|
|
|
.form-box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: flex-start;
|
|
font-size: 14px;
|
|
width: 100vw;
|
|
}
|
|
|
|
.form-item {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
width: 80vw;
|
|
padding: 10px;
|
|
}
|
|
|
|
.form-item-title {
|
|
flex: .3;
|
|
font-size: 14px;
|
|
color: black;
|
|
font-weight: 500;
|
|
text-align: left;
|
|
}
|
|
|
|
.form-item-title:not(.no-after)::before {
|
|
content: "*";
|
|
color: red;
|
|
font-size: 14px;
|
|
margin-left: 1px;
|
|
text-align: center;
|
|
}
|
|
|
|
.form-item-content {
|
|
flex: 1;
|
|
text-align: right;
|
|
}
|
|
|
|
.project-box {
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
margin-top: 10rpx;
|
|
}
|
|
|
|
.project-item {
|
|
font-size: 24rpx;
|
|
background-color: #ffaa0034;
|
|
text-align: center;
|
|
color: #804002;
|
|
text-align: center;
|
|
margin: 10rpx;
|
|
padding: 5rpx 20rpx;
|
|
border-radius: 4rpx;
|
|
}
|
|
|
|
.confirm-btn {
|
|
font-size: 28rpx;
|
|
height: 48rpx;
|
|
line-height: 48rpx;
|
|
border-radius: 10rpx;
|
|
padding: 10rpx;
|
|
text-align: center;
|
|
width: 85vw !important;
|
|
background-color: rgba(57, 154, 35, 1);
|
|
color: rgba(255, 255, 255, 1);
|
|
align-self: center;
|
|
}
|
|
|
|
.confirm-btn:active {
|
|
background-color: rgba(57, 154, 35, 0.7);
|
|
color: rgba(255, 255, 255, 1);
|
|
}
|
|
|
|
|
|
|
|
.coupons-list-box {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
min-height: 400rpx;
|
|
margin-top: 30rpx;
|
|
}
|
|
|
|
.tickets {
|
|
display: flex;
|
|
padding: 5px;
|
|
width: 88vw;
|
|
box-sizing: border-box;
|
|
height: 210rpx;
|
|
}
|
|
|
|
.l-tickets {
|
|
width: 60vw;
|
|
position: relative;
|
|
padding: 10px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
background: radial-gradient(circle at right top, transparent 16rpx, #ffaa0017 0) right top / 100% 50% no-repeat,
|
|
radial-gradient(circle at right bottom, transparent 16rpx, #ffaa0017 0) right bottom / 100% 50% no-repeat;
|
|
}
|
|
|
|
|
|
.l-tickets::after {
|
|
content: '';
|
|
position: absolute;
|
|
height: 100%;
|
|
width: 8rpx;
|
|
top: 0;
|
|
left: -8rpx;
|
|
background: radial-gradient(circle at left center, transparent 8rpx, #ffaa0017 0) left center / 8rpx 20rpx;
|
|
}
|
|
|
|
|
|
|
|
.r-tickets {
|
|
flex: 1;
|
|
position: relative;
|
|
background: radial-gradient(circle at left top, transparent 16rpx, #ffaa0017 0, #ffaa0017 100%) right top / 100% 50% no-repeat,
|
|
radial-gradient(circle at left bottom, transparent 16rpx, #ffaa0017 0, #ffaa0017 100%) right bottom / 100% 50% no-repeat;
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
align-items: center;
|
|
font-size: 14px;
|
|
font-weight: 500;
|
|
color: #5D3900;
|
|
}
|
|
|
|
.r-tickets::after {
|
|
content: '';
|
|
position: absolute;
|
|
height: 100%;
|
|
width: 8rpx;
|
|
top: 0;
|
|
right: -8rpx;
|
|
background: radial-gradient(circle at right center, transparent 8rpx, #ffaa0017 0) right center / 8rpx 20rpx;
|
|
}
|
|
|
|
.r-tickets::before {
|
|
content: '';
|
|
width: 1rpx;
|
|
background: linear-gradient(to top, #fff 0%, #fff 50%, transparent 50%) top left / 1rpx 20rpx repeat-y;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 16rpx;
|
|
bottom: 16rpx;
|
|
}
|
|
|
|
.ticket-container:nth-last-of-type(n+1) {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
|
|
.ticket-title {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
font-size: 14px;
|
|
color: #5D3900;
|
|
font-weight: 400;
|
|
}
|
|
|
|
.ticket-content {
|
|
font-size: 18px;
|
|
color: #5D3900;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.ticket-desc {
|
|
font-size: 12px;
|
|
color: #5D3900;
|
|
margin-top: 10px;
|
|
font-weight: 400;
|
|
}
|
|
|
|
|
|
.coupons-item {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
background-color: #ffaa0017;
|
|
border-radius: 10px;
|
|
width: 85vw;
|
|
padding: 10px 5px;
|
|
}
|
|
|
|
.coupons-item:nth-last-of-type(n+1) {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.coupons-item-content {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
flex: 1;
|
|
}
|
|
|
|
.coupons-desc {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
margin-left: 7px;
|
|
}
|
|
|
|
.coupons-desc .title {
|
|
font-size: 16px;
|
|
color: red;
|
|
}
|
|
|
|
.coupons-desc .dd {
|
|
font-size: 12px;
|
|
color: red;
|
|
}
|
|
|
|
.counpons-check {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.counpons-check .txt {
|
|
font-size: 16px;
|
|
color: red;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.coupons-icon {
|
|
background-image: url('data:image/png;base64,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');
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
}
|
|
</style> |