352 lines
10 KiB
JavaScript
352 lines
10 KiB
JavaScript
import ProjectService from '../../../net/api/projectApi'
|
|
import UserService from '../../../net/api/userApi'
|
|
const utils = require("../../../utils/util")
|
|
const {
|
|
isValidPhone,
|
|
isValidEmail
|
|
} = require('../../../utils/validator')
|
|
|
|
Page({
|
|
data: {
|
|
date: utils.formatDate(new Date()),
|
|
completeDate: utils.formatDate(new Date()), //开发完成时间
|
|
version: "v1.0", //系统版本
|
|
type: 'ALL', //默认全托管 上级页面传递type参数 all全托管 material写材料
|
|
languageList: ['JAVA'],
|
|
isShowLanguage: false, //是否显示语言选择
|
|
isShowContact: false, //是否显示联系人
|
|
currentLanguage: 'JAVA', //当前选中的语言
|
|
price: 0,
|
|
packageList: [], //套餐包
|
|
couponsList: [], //优惠卷
|
|
contactList: [], //联系人
|
|
selectContact: {}, //当前选中的联系人
|
|
showCreateContact: false, //显示创建联系人
|
|
contactPhone: '', //联系人电话
|
|
contactName: '', //联系人姓名
|
|
contactEmail: '', //联系人邮箱
|
|
csaNo: '', //客服NO
|
|
showError: false,
|
|
errorHint: '',
|
|
showSuccess: false,
|
|
successHint: '',
|
|
showCommendProject: false, //显示推荐项目名称弹窗
|
|
projectName: '',
|
|
projectNameList: [],
|
|
isUrgent: false, //是否加急
|
|
},
|
|
onLoad(options) {
|
|
wx.setNavigationBarTitle({
|
|
title: '创建软著',
|
|
})
|
|
const typeParams = options.type //类型
|
|
const priceParams = options.price //价格
|
|
const isUrgentParams = options.isUrgent
|
|
if (priceParams && priceParams > 0) {
|
|
this.setData({
|
|
price: priceParams,
|
|
type: typeParams,
|
|
isUrgent: isUrgentParams
|
|
})
|
|
} else {
|
|
wx.showToast({
|
|
title: '数据有误,请重试',
|
|
icon: 'error'
|
|
})
|
|
wx.navigateBack()
|
|
}
|
|
//获取项目联系人
|
|
this.doGetContactList()
|
|
//获取套餐包
|
|
this.doGetPackage()
|
|
//获取优惠卷
|
|
this.doGetCoupons()
|
|
//获取客服ID
|
|
this.doGetCsaNo(false)
|
|
},
|
|
//系统版本
|
|
inputVersion(e) {
|
|
console.log(e.detail.value)
|
|
this.setData({
|
|
version: e.detail.value
|
|
})
|
|
},
|
|
//开发完成时间
|
|
bindDateChange(e) {
|
|
console.log(e)
|
|
this.setData({
|
|
completeDate: e.detail.value
|
|
})
|
|
},
|
|
toggleContact() {
|
|
this.setData({
|
|
isShowContact: !this.data.isShowContact
|
|
})
|
|
},
|
|
toggleOptions() {
|
|
this.setData({
|
|
isShowLanguage: !this.data.isShowLanguage
|
|
});
|
|
},
|
|
selectOption(e) {
|
|
const selectedValue = e.currentTarget.dataset.value;
|
|
this.setData({
|
|
currentLanguage: selectedValue,
|
|
isShowLanguage: false
|
|
});
|
|
},
|
|
inputContactName(e) {
|
|
this.setData({
|
|
contactName: e.detail.value
|
|
})
|
|
},
|
|
inputContactPhone(e) {
|
|
console.log(e)
|
|
this.setData({
|
|
contactPhone: e.detail.value
|
|
})
|
|
},
|
|
inputContactEmail(e) {
|
|
this.setData({
|
|
contactEmail: e.detail.value
|
|
})
|
|
},
|
|
//监听项目名称
|
|
inputProjectName(e) {
|
|
this.setData({
|
|
projectName: e.detail.value
|
|
})
|
|
},
|
|
//选中联系人
|
|
doChangeContact(e) {
|
|
console.log(e)
|
|
this.setData({
|
|
selectContact: this.data.contactList[e.detail.value]
|
|
})
|
|
},
|
|
//获取产权联系人
|
|
doGetContactList() {
|
|
wx.showLoading({
|
|
title: '加载中...',
|
|
})
|
|
const _self = this
|
|
ProjectService.doGetContactList()
|
|
.then(res => {
|
|
wx.hideLoading()
|
|
console.log(res)
|
|
_self.setData({
|
|
contactList: res,
|
|
selectContact: res[0]
|
|
})
|
|
}, err => {
|
|
wx.hideLoading()
|
|
})
|
|
},
|
|
//获取套餐包
|
|
doGetPackage() {
|
|
ProjectService.doGetPackageList()
|
|
.then(res => {
|
|
|
|
}, err => {
|
|
|
|
})
|
|
},
|
|
//获取优惠卷
|
|
doGetCoupons() {
|
|
ProjectService.doGetCouponseList()
|
|
.then(res => {
|
|
|
|
}, err => {
|
|
|
|
})
|
|
},
|
|
//获取客服NO
|
|
doGetCsaNo(isShow) {
|
|
const _self = this
|
|
UserService.doGetCsaNo()
|
|
.then(res => {
|
|
console.log(res)
|
|
_self.setData({
|
|
csaNo: res.csaNo
|
|
})
|
|
if (isShow) {
|
|
_self.setData({
|
|
isShowContact: true
|
|
})
|
|
}
|
|
}, err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
//推荐项目名称
|
|
doCommendProjectName() {
|
|
const _self = this
|
|
_self.setData({
|
|
showCommendProject: true
|
|
})
|
|
},
|
|
//生成项目全称列表
|
|
doCreateFullName() {
|
|
const _self = this
|
|
wx.showLoading({
|
|
title: '生成中...',
|
|
})
|
|
const data = {
|
|
prompt: _self.data.projectName
|
|
}
|
|
ProjectService.doGetCommendProjectName(data)
|
|
.then(res => {
|
|
wx.hideLoading()
|
|
console.log(res)
|
|
if (res && res.length > 0) {
|
|
_self.setData({
|
|
projectNameList: res
|
|
})
|
|
} else {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '未查询到相关推荐的系统名称,请重新输入'
|
|
})
|
|
}
|
|
}, err => {
|
|
wx.hideLoading()
|
|
console.log(err)
|
|
})
|
|
},
|
|
//监听项目名称输入
|
|
inputCommendProjectName(e) {
|
|
const _self = this
|
|
_self.setData({
|
|
projectName: e.detail.value
|
|
})
|
|
},
|
|
//选择推荐的项目名称
|
|
doSelectProjectName(e) {
|
|
const _self = this
|
|
console.log(e)
|
|
_self.setData({
|
|
projectName: e.currentTarget.dataset.value,
|
|
showCommendProject: false,
|
|
projectNameList: []
|
|
})
|
|
},
|
|
//显示创建联系人
|
|
doCreateContact() {
|
|
const _self = this
|
|
if (_self.data.csaNo == '') {
|
|
_self.doGetCsaNo(true)
|
|
} else {
|
|
_self.setData({
|
|
showCreateContact: true
|
|
})
|
|
}
|
|
},
|
|
//保存联系人
|
|
doSaveContact() {
|
|
//校验参数
|
|
const _self = this
|
|
if (_self.data.contactName == '') {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '请输入联系人姓名'
|
|
})
|
|
return
|
|
}
|
|
if (_self.data.contactPhone == '' || !isValidPhone(_self.data.contactPhone)) {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '请输入合法的联系电话'
|
|
})
|
|
return
|
|
}
|
|
if (_self.data.contactEmail != '') {
|
|
if (!isValidEmail(_self.data.contactEmail)) {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '请输入合法的邮箱'
|
|
})
|
|
return
|
|
}
|
|
}
|
|
wx.showLoading({
|
|
title: '创建中...',
|
|
})
|
|
const data = {
|
|
"company": "",
|
|
"csaNo": _self.data.csaNo,
|
|
"name": _self.data.contactName,
|
|
"phone": _self.data.contactPhone
|
|
}
|
|
UserService.doCreateContact(data)
|
|
.then(res => {
|
|
wx.hideLoading()
|
|
_self.setData({
|
|
showSuccess: true,
|
|
successHint: '新建成功',
|
|
isShowContact: false,
|
|
contactEmail: '',
|
|
contactPhone: '',
|
|
contactName: ''
|
|
})
|
|
//获取一遍联系人
|
|
_self.doGetContactList()
|
|
}, err => {
|
|
wx.hideLoading()
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: err.msg ? err.msg : '新建失败,请稍后重试',
|
|
isShowContact: false
|
|
})
|
|
})
|
|
},
|
|
//创建项目
|
|
doCreateProject() {
|
|
//校验参数
|
|
const _self = this
|
|
const isLegal = _self.doCheckProjectParams()
|
|
if (isLegal) {
|
|
wx.showLoading({
|
|
title: '创建中...',
|
|
})
|
|
//构建参数
|
|
const data = {
|
|
applyContactCsaNo: _self.data.selectContact.csaNo, // 联系人客服编号
|
|
applyContactId: _self.data.selectContact.projContactId, //联系人ID
|
|
applyContactName: _self.data.selectContact.name, //联系人姓名
|
|
applyContactPhone: _self.data.selectContact.phone, //联系人手机
|
|
projDevCompleteDate: _self.data.completeDate, //开发完成日期
|
|
projSubName: _self.data.projectName, //项目简称
|
|
projVersion: _self.data.version, //项目版本
|
|
backendCodeLang: _self.data.currentLanguage,
|
|
projChargeType: 'ALL', //项目收费类型 ALL,FREE,MATERIAL,MATERIAL_AGENT,MATERIAL_AGENT_URGENT
|
|
}
|
|
ProjectService.doCreateProject(data)
|
|
.then(res => {
|
|
console.log(res)
|
|
wx.hideLoading()
|
|
}, err => {
|
|
wx.hideLoading()
|
|
console.log(err)
|
|
})
|
|
}
|
|
},
|
|
//校验参数
|
|
doCheckProjectParams() {
|
|
const _self = this
|
|
if (_self.data.projectName == '') {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '请输入项目名称'
|
|
})
|
|
return false
|
|
}
|
|
if (Object.keys(_self.data.selectContact).length <= 0) {
|
|
_self.setData({
|
|
showError: true,
|
|
errorHint: '请选择产权联系人'
|
|
})
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
}) |