ts_aimz/pages/copyright/createProjectInfo/createProjectInfo.js
2025-04-03 10:44:12 +08:00

482 lines
15 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: [], //套餐包
tempPackage: {}, //临时选中的优惠卷,没有点击确定按钮前
selectPackage: {}, //选中的套餐包
couponsList: [], //优惠卷
selectCoupons: {}, //选中的优惠卷
tempCoupons: {}, //临时选中的优惠卷,没有点击确定按钮
contactList: [], //联系人
selectContact: {}, //当前选中的联系人
showCreateContact: false, //显示创建联系人
contactPhone: '', //联系人电话
contactName: '', //联系人姓名
contactEmail: '', //联系人邮箱
csaNo: '', //客服NO
showError: false,
errorHint: '',
showSuccess: false,
successHint: '',
showCommendProject: false, //显示推荐项目名称弹窗
projectName: '',
projectNameList: [],
isUrgent: false, //是否加急
showCoupons: false, //显示优惠卷
showPackage: false, //显示套餐包
canSelCoupons: true, //是否可以使用优惠卷
canSelPackage: true, //是否可以使用套餐包
},
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
})
},
//选中优惠卷
selectCoupons(e) {
this.setData({
tempCoupons: e.currentTarget.dataset.value
})
},
//确定使用选中的优惠卷
confirmSelCoupons() {
this.setData({
selectCoupons: this.data.tempCoupons,
showCoupons: false,
tempCoupons: {},
canSelPackage: false,
selectPackage: {},
tempPackage: {}
})
},
//监听项目名称
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() {
const _self = this
const data = {
page: 1,
rows: 100,
packageType: _self.data.type,
keyong: 1,
}
ProjectService.doGetPackageList(data)
.then(res => {
console.log('套餐包')
console.log(res)
_self.setData({
packageList: res.rows
})
}, err => {
console.log(err)
_self.setData({
packageList: []
})
})
},
//获取优惠卷
doGetCoupons() {
const _self = this
const data = {
page: 1,
rows: 100,
isEffective: 1,
isUsed: 0
}
ProjectService.doGetCouponseList(data)
.then(res => {
console.log('优惠卷')
console.log(res)
_self.setData({
couponsList: res.rows
})
}, err => {
console.log(err)
_self.setData({
couponsList: []
})
})
},
//显示优惠卷
doShowCoupons() {
if (this.data.couponsList.length <= 0) {
this.setData({
showError: true,
errorHint: '您没有可以使用的优惠卷'
})
} else {
this.setData({
tempCoupons: this.data.selectCoupons,
showCoupons: !this.data.showCoupons
})
}
},
//显示套餐包
doShowPackage() {
const _self = this
if (_self.data.packageList.length > 0) {
_self.setData({
tempPackage: _self.data.selectPackage,
showPackage: true
})
} else {
_self.setData({
errorHint: '您暂时没有可以使用的套餐包',
showError: true
})
}
},
//确定套餐包
confirmSelectPackage() {
this.setData({
selectPackage: this.data.tempPackage,
showPackage: false,
tempPackage: {},
canSelCoupons: false,
selectCoupons: {},
tempCoupons: {}
})
},
//取消选中的套餐包或优惠卷
clearSelectPackageOrCoupons() {
this.setData({
selectCoupons: {},
selectPackage: {},
tempCoupons: {},
tempPackage: {},
canSelCoupons: true,
canSelPackage: true
})
},
//点击选择套餐包
selectPackage(e) {
console.log(e)
this.setData({
tempPackage: e.currentTarget.dataset.value
})
},
//获取客服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: '创建中...',
})
//构建参数
console.log(_self.data.isUrgent)
var list = []
if (_self.data.isUrgent != '') {
list = [_self.data.isUrgent]
}
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, //开发完成日期
projName: _self.data.projectName, //项目简称
projVersion: _self.data.version, //项目版本
backendCodeLang: _self.data.currentLanguage,
projChargeType: _self.data.type, //项目收费类型 ALL,FREE,MATERIAL,MATERIAL_AGENT,MATERIAL_AGENT_URGENT
listProjChargeAdditional: list,
packageOrderId: _self.data.selectPackage.packageOrderId ? _self.data.selectPackage.packageOrderId : '', //套餐包ID
couponId: _self.data.selectCoupons.couponId ? _self.data.selectCoupons.couponId : '', //优惠卷ID
}
ProjectService.doCreateProject(data)
.then(res => {
console.log(res)
wx.hideLoading()
_self.setData({
showSuccess: true,
successHint: '项目创建流程圆满完成,系统正在生成配套材料,请您耐心等候。'
})
setTimeout(() => {
wx.navigateBack()
}, 1500);
}, err => {
wx.hideLoading()
console.log(err)
_self.setData({
errorHint: err.msg ? err.msg : '网络错误,请稍后重试',
showError: true
})
})
}
},
//校验参数
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
}
})