|
@@ -0,0 +1,444 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-button size="mini" :type="disabled || data.status === '已无效'?'':'primary'" @click="onShow" :disabled="disabled || data.status === '已无效'" >转化项目</el-button>
|
|
|
+ <el-drawer
|
|
|
+ title="新建项目商机"
|
|
|
+ :visible.sync="dialogFormVisible"
|
|
|
+ size="700px"
|
|
|
+ direction="rtl"
|
|
|
+ append-to-body
|
|
|
+ :show-close="false"
|
|
|
+ @close="onClose">
|
|
|
+ <div class="drawer__panel">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-form :model="form" :rules="rules" ref="form" label-width="125px" label-position="right" size="mini">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目名称:" prop="projectname">
|
|
|
+ <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目类型:" prop="projecttype">
|
|
|
+ <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="mini" style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="(item,index) in projectType"
|
|
|
+ :key="index"
|
|
|
+ :label="item.value"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目等级:" prop="grade">
|
|
|
+ <el-select v-model="form.grade" placeholder="请选择项目等级" size="mini" style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="item in projectGrade"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.value"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="省市县:" prop="province">
|
|
|
+ <el-cascader
|
|
|
+ style="width:100%"
|
|
|
+ v-model="value"
|
|
|
+ :options="basicData.data().areaData"
|
|
|
+ @change="cascaderChange" clearable>
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="详细地址:" prop="address">
|
|
|
+ <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目规模:" prop="scale">
|
|
|
+ <el-input v-model="form.scale" placeholder="请输入建筑面积(㎡)/吨位(t)"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="项目预算(万元):" prop="budgetary">
|
|
|
+ <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="总投资额(百万):" prop="budgetary">
|
|
|
+ <el-input v-model="form.totalinvestment" placeholder="总投资额"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="造价(百万):" prop="budgetary">
|
|
|
+ <el-input v-model="form.costofconstruction" placeholder="造价"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="预计开工时间:" prop="begdate_due">
|
|
|
+ <el-date-picker
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="form.begdate_due"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="预计完工时间:" prop="enddate_due">
|
|
|
+ <el-date-picker
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="form.enddate_due"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="预计签约时间:" prop="signdate_due">
|
|
|
+ <el-date-picker
|
|
|
+ style="width: 100%"
|
|
|
+ v-model="form.signdate_due"
|
|
|
+ type="month"
|
|
|
+ placeholder="选择月"
|
|
|
+ :picker-options="pickerOptions"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="预计签约金额(元):" prop="signamount_due">
|
|
|
+ <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额" disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="fixed__btn__panel">
|
|
|
+ <el-button size="small" @click="onClose" class="normal-btn-width inline-16">取 消</el-button>
|
|
|
+ <duplicateCheck :data="form"></duplicateCheck>
|
|
|
+ <el-button size="small" type="primary" @click="onSave" class="normal-btn-width">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-drawer>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import duplicateCheck from "@/HDrpManagement/projectChange/components/duplicateCheck";
|
|
|
+export default {
|
|
|
+ props:["disabled","data"],
|
|
|
+ name: "changeProject",
|
|
|
+ components:{duplicateCheck},
|
|
|
+ data(){
|
|
|
+ var begdateTime = (rule,value,callback) =>{
|
|
|
+ console.log(value,this.form.enddate_due)
|
|
|
+ if (this.form.enddate_due !== ''){
|
|
|
+ if (value > this.form.enddate_due){
|
|
|
+ callback(new Error('预计开工时间不能晚于预计完工时间'))
|
|
|
+ }else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var enddateTime = (rule,value,callback) =>{
|
|
|
+ if (this.form.begdate_due !== ''){
|
|
|
+ if (value < this.form.begdate_due){
|
|
|
+ callback(new Error('预计完工时间不能早于预计开工时间'))
|
|
|
+ }else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ pickerOptions: {
|
|
|
+ disabledDate(time) {
|
|
|
+ return time.getTime() < Date.now();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ dialogFormVisible:false,
|
|
|
+ form:{
|
|
|
+ sat_orderclueid: '',
|
|
|
+ projectname:"",
|
|
|
+ projectnum:"",
|
|
|
+ address:"",//可选
|
|
|
+ grade:"",//可选
|
|
|
+ budgetary:"",//可选
|
|
|
+ remarks:"",//可选
|
|
|
+ projecttype:"",//可选
|
|
|
+ sa_projstagetempid:"",//可选
|
|
|
+ signdate_due:"",//可选
|
|
|
+ scale:"",//可选
|
|
|
+ signamount_due:"",//可选
|
|
|
+ province:"",
|
|
|
+ city:"",
|
|
|
+ county:"",
|
|
|
+ totalinvestment:'', //总投资额
|
|
|
+ costofconstruction:'', //造价
|
|
|
+ begdate_due:'', //预计开工时间
|
|
|
+ enddate_due:'' //预计完工时间
|
|
|
+ },
|
|
|
+ value:'',
|
|
|
+ projectGrade:[],
|
|
|
+ projectType:[],
|
|
|
+ rules:{
|
|
|
+ projectname:[
|
|
|
+ { required: true, message: '输入项目名称', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ /*projectnum:[
|
|
|
+ { required: true, message: '输入项目编号', trigger: 'blur'}
|
|
|
+ ],*/
|
|
|
+ projecttype:[
|
|
|
+ { required: true, message: '请选择项目类型', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ sys_enterpriseid:[
|
|
|
+ { required: true, message: '请选择企业', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ /*sa_projstagetempid:[
|
|
|
+ { required: true, message: '请选择当前项目模板', trigger: 'blur'}
|
|
|
+ ],*/
|
|
|
+ province:[
|
|
|
+ { required: true, message: '请选择项目地址', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ begdate_due:[
|
|
|
+ { required: false, validator: begdateTime, trigger: 'change' }
|
|
|
+ ],
|
|
|
+ enddate_due:[
|
|
|
+ { required: false, validator: enddateTime, trigger: 'change' }
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.$store.dispatch('optiontypeselect','projectgrade').then(res =>{
|
|
|
+ console.log(res)
|
|
|
+ this.projectGrade = res.data
|
|
|
+ })
|
|
|
+ this.$store.dispatch('optiontypeselect','projecttype').then(res =>{
|
|
|
+ console.log(res)
|
|
|
+ this.projectType = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ onShow(){
|
|
|
+ this.dialogFormVisible = true
|
|
|
+ console.log(this.data)
|
|
|
+ this.form = Object.assign({},this.form,this.data)
|
|
|
+ this.value = [this.form.province,this.form.city,this.form.county]
|
|
|
+ },
|
|
|
+ /*省市县*/
|
|
|
+ cascaderChange (val) {
|
|
|
+ /*console.log(val)
|
|
|
+ this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
|
|
|
+ console.log(this.form)*/
|
|
|
+ if (val.length === 1)
|
|
|
+ return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
|
|
|
+
|
|
|
+ this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
|
|
|
+
|
|
|
+ },
|
|
|
+ /*自动查重判断*/
|
|
|
+ duplicateCheck(){
|
|
|
+ this.$refs.form.validate(async (valid) => {
|
|
|
+ if (!valid) return false
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": 20221208184202,
|
|
|
+ "content": {
|
|
|
+ "projectname":this.form.projectname,
|
|
|
+ "address":this.form.address,
|
|
|
+ "sa_projectid":this.form.sa_projectid
|
|
|
+ },
|
|
|
+ })
|
|
|
+ console.log(res,"查重结果")
|
|
|
+ if (res.data.length !== 0){
|
|
|
+ console.log("重复")
|
|
|
+ }
|
|
|
+ this.checkResults = res.data.length
|
|
|
+ this.onSave()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSave(){
|
|
|
+ if (this.checkResults === ''){
|
|
|
+ this.duplicateCheck()
|
|
|
+ }else {
|
|
|
+ if (this.checkResults !== 0){
|
|
|
+ this.$confirm('该项目疑似重复,是否确认创建项目?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.onSubmit()
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消创建'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ this.onSubmit()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onSubmit(){
|
|
|
+ console.log(this.form)
|
|
|
+ if (this.form.signdate_due !== ''){
|
|
|
+ const data = new Date(this.form.signdate_due)
|
|
|
+ console.log(data.getFullYear())
|
|
|
+ console.log(data.getMonth()+1)
|
|
|
+ if (data.getMonth() +1 < 10){
|
|
|
+ this.form.signdate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
|
|
|
+ }else {
|
|
|
+ this.form.signdate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.form.signdate_due = ''
|
|
|
+ }
|
|
|
+ if (this.form.begdate_due !== ''){
|
|
|
+ const data = new Date(this.form.begdate_due)
|
|
|
+ console.log(data.getFullYear())
|
|
|
+ console.log(data.getMonth()+1)
|
|
|
+ if (data.getMonth() +1 < 10){
|
|
|
+ this.form.begdate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
|
|
|
+ }else {
|
|
|
+ this.form.begdate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.form.begdate_due = ''
|
|
|
+ }
|
|
|
+ if (this.form.enddate_due !== ''){
|
|
|
+ const data = new Date(this.form.enddate_due)
|
|
|
+ console.log(data.getFullYear())
|
|
|
+ console.log(data.getMonth()+1)
|
|
|
+ if (data.getMonth() +1 < 10){
|
|
|
+ this.form.enddate_due = data.getFullYear() + '-0' + (data.getMonth() + 1)
|
|
|
+ }else {
|
|
|
+ this.form.enddate_due = data.getFullYear() + '-' + (data.getMonth() + 1)
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ this.form.enddate_due = ''
|
|
|
+ }
|
|
|
+ this.form.sat_orderclueid = this.$route.query.id
|
|
|
+ console.log(this.form)
|
|
|
+ this.$refs['form'].validate(async (valid) => {
|
|
|
+ if (!valid) return false
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": "20221124154902",
|
|
|
+ "content": this.form
|
|
|
+ })
|
|
|
+ this.tool.showMessage(res,()=>{
|
|
|
+ if (this.checkResults === 0){
|
|
|
+ this.$emit('onChangeProject')
|
|
|
+ this.$refs['form'].resetFields();
|
|
|
+ this.value = ''
|
|
|
+ this.form={
|
|
|
+ sat_orderclueid: '',
|
|
|
+ projectname:"",
|
|
|
+ projectnum:"",
|
|
|
+ address:"",//可选
|
|
|
+ grade:"",//可选
|
|
|
+ budgetary:"",//可选
|
|
|
+ remarks:"",//可选
|
|
|
+ projecttype:"",//可选
|
|
|
+ sa_projstagetempid:"",//可选
|
|
|
+ signdate_due:"",//可选
|
|
|
+ scale:"",//可选
|
|
|
+ signamount_due:"",//可选
|
|
|
+ province:"",
|
|
|
+ city:"",
|
|
|
+ county:"",
|
|
|
+ totalinvestment:'', //总投资额
|
|
|
+ costofconstruction:'', //造价
|
|
|
+ begdate_due:'', //预计开工时间
|
|
|
+ enddate_due:'' //预计完工时间
|
|
|
+ }
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ this.checkResults = ''
|
|
|
+ }else {
|
|
|
+ this.setTag(res.data.sa_projectid)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async setTag(id){
|
|
|
+ const res = await this.$api.requested({
|
|
|
+ "id": 20220929090901,
|
|
|
+ "content": {
|
|
|
+ "ownertable":"sa_project",
|
|
|
+ "ownerid":id,
|
|
|
+ "datatag":[
|
|
|
+ "疑似重复",
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$emit('onChangeProject')
|
|
|
+ this.$refs['form'].resetFields();
|
|
|
+ this.value = ''
|
|
|
+ this.form={
|
|
|
+ sat_orderclueid: '',
|
|
|
+ projectname:"",
|
|
|
+ projectnum:"",
|
|
|
+ address:"",//可选
|
|
|
+ grade:"",//可选
|
|
|
+ budgetary:"",//可选
|
|
|
+ remarks:"",//可选
|
|
|
+ projecttype:"",//可选
|
|
|
+ sa_projstagetempid:"",//可选
|
|
|
+ signdate_due:"",//可选
|
|
|
+ scale:"",//可选
|
|
|
+ signamount_due:"",//可选
|
|
|
+ province:"",
|
|
|
+ city:"",
|
|
|
+ county:"",
|
|
|
+ totalinvestment:'', //总投资额
|
|
|
+ costofconstruction:'', //造价
|
|
|
+ begdate_due:'', //预计开工时间
|
|
|
+ enddate_due:'' //预计完工时间
|
|
|
+ }
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ this.checkResults = ''
|
|
|
+ },
|
|
|
+ onClose(){
|
|
|
+ this.$refs['form'].resetFields()
|
|
|
+ this.value = ''
|
|
|
+ this.form={
|
|
|
+ sat_orderclueid: '',
|
|
|
+ projectname:"",
|
|
|
+ projectnum:"",
|
|
|
+ address:"",//可选
|
|
|
+ grade:"",//可选
|
|
|
+ budgetary:"",//可选
|
|
|
+ remarks:"",//可选
|
|
|
+ projecttype:"",//可选
|
|
|
+ sa_projstagetempid:"",//可选
|
|
|
+ signdate_due:"",//可选
|
|
|
+ scale:"",//可选
|
|
|
+ signamount_due:"",//可选
|
|
|
+ province:"",
|
|
|
+ city:"",
|
|
|
+ county:"",
|
|
|
+ totalinvestment:'', //总投资额
|
|
|
+ costofconstruction:'', //造价
|
|
|
+ begdate_due:'', //预计开工时间
|
|
|
+ enddate_due:'' //预计完工时间
|
|
|
+ }
|
|
|
+ this.dialogFormVisible = false
|
|
|
+ },
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped>
|
|
|
+
|
|
|
+</style>
|