ts_aimz/pages/copyright/createProjectInfo/createProjectInfo.js
2025-03-28 18:36:17 +08:00

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
}
})