浏览代码

2022-10-22

codeMan 3 年之前
父节点
当前提交
f07f192a2f

+ 1 - 2
src/Form/projectChange/add.vue

@@ -119,11 +119,10 @@
 </template>
 
 <script>
-import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
 export default {
   name: "add",
   inject:['enterpriseList','projectType','projectLead','projectPanl'],
-  components:{TimeSelect},
+  components:{},
   data(){
     return {
       dialogFormVisible:false,

+ 1 - 2
src/Form/projectChange/edit.vue

@@ -119,11 +119,10 @@
 </template>
 
 <script>
-import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
 export default {
   name: "add",
   inject:['enterpriseList','projectType','projectLead','projectPanl'],
-  components:{TimeSelect},
+  components:{},
   props:['data','btnType'],
   data(){
     return {

+ 231 - 0
src/Form/projectChange/projectSet/add.vue

@@ -0,0 +1,231 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 增</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        新增账户类型
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="sys_enterpriseid">
+              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" size="small" @change="getProjectAddres()">
+                <el-option
+                  v-for="item in enterpriseList()"
+                  :key="item.sys_enterpriseid"
+                  :label="item.enterprisename"
+                  :value="item.sys_enterpriseid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目编号" prop="projectnum">
+              <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目预算" prop="budgetary">
+              <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :span="12">
+            <el-form-item label="项目规模" prop="scale">
+              <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="预计签约金额" prop="signamount_due">
+              <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="详细地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前项目模板" prop="sa_projstagetempid">
+              <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="small">
+                <el-option
+                  v-for="item in projectPanl()"
+                  :key="item.sa_projstagetempid"
+                  :label="item.stagetempname"
+                  :value="item.sa_projstagetempid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目地址" prop="sa_project_addressid">
+              <el-select v-model="form.sa_project_addressid" placeholder="请先选择企业" size="small">
+                <el-option
+                  v-for="(item,index) in projectAddress"
+                  :key="index"
+                  :label="item.address"
+                  :value="item.contactsid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目等级" prop="grade">
+              <el-select v-model="form.grade" placeholder="请选择项目等级" size="small">
+                <el-option
+                  v-for="item in projectLead()"
+                  :key="item.rowindex"
+                  :label="item.value"
+                  :value="item.rowindex">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="small">
+                <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="signdate_due">
+              <el-date-picker
+                v-model="form.signdate_due"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{},
+  data(){
+    return {
+      dialogFormVisible:false,
+      projectAddress:[],
+      form:{
+        "sa_projectid":0,
+        "sys_enterpriseid":"",
+        "projectname":"",
+        "projectnum":"",
+        "address":"",//可选
+        "grade":"",//可选
+        "budgetary":"",//可选
+        "remarks":"",//可选
+        "projecttype":"",//可选
+        "sa_projstagetempid":"",//可选
+        "signdate_due":"",//可选
+        "scale":"",//可选
+        "signamount_due":"",//可选
+        "sa_project_addressid":""//选择地址
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],
+        sa_project_addressid:[
+          { required: true, message: '请选择项目地址', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'blur'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        grade:[
+          { required: true, message: '请选择项目等级', trigger: 'blur'}
+        ],
+        sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    onSubmit(){
+      console.log(this.form)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221020144202",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.form.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.form.sa_project_addressid = ''
+      this.projectAddress = res.data
+      console.log(res);
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.signdate_due = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.signdate_due = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 244 - 0
src/Form/projectChange/projectSet/edit.vue

@@ -0,0 +1,244 @@
+<template>
+  <div>
+    <el-button size="mini" :type="btnType?btnType:'text'" @click="editBtn">编 辑</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        编辑项目商机
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="sys_enterpriseid">
+              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" size="small" @change="getProjectAddres()">
+                <el-option
+                  v-for="item in enterpriseList()"
+                  :key="item.sys_enterpriseid"
+                  :label="item.enterprisename"
+                  :value="item.sys_enterpriseid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目编号" prop="projectnum">
+              <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目预算" prop="budgetary">
+              <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :span="12">
+            <el-form-item label="项目规模" prop="scale">
+              <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="预计签约金额" prop="signamount_due">
+              <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="详细地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前项目模板" prop="sa_projstagetempid">
+              <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="small">
+                <el-option
+                  v-for="item in projectPanl()"
+                  :key="item.sa_projstagetempid"
+                  :label="item.stagetempname"
+                  :value="item.sa_projstagetempid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目地址" prop="sa_project_addressid">
+              <el-select v-model="form.sa_project_addressid" placeholder="请先选择企业" size="small">
+                <el-option
+                  v-for="(item,index) in projectAddress"
+                  :key="index"
+                  :label="item.address"
+                  :value="item.contactsid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目等级" prop="grade">
+              <el-select v-model="form.grade" placeholder="请选择项目等级" size="small">
+                <el-option
+                  v-for="item in projectLead()"
+                  :key="item.rowindex"
+                  :label="item.value"
+                  :value="item.rowindex">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="small">
+                <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="signdate_due">
+              <el-date-picker
+                v-model="form.signdate_due"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{},
+  props:['data','btnType'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      projectAddress:[],
+      addChange:false,
+      form:{
+        "sa_projectid":0,
+        "sys_enterpriseid":"",
+        "projectname":"",
+        "projectnum":"",
+        "address":"",//可选
+        "grade":"",//可选
+        "budgetary":"",//可选
+        "remarks":"",//可选
+        "projecttype":"",//可选
+        "sa_projstagetempid":"",//可选
+        "signdate_due":"",//可选
+        "scale":"",//可选
+        "signamount_due":"",//可选
+        "sa_project_addressid":""//选择地址
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],
+        sa_project_addressid:[
+          { required: true, message: '请选择项目地址', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'blur'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        grade:[
+          { required: true, message: '请选择项目等级', trigger: 'blur'}
+        ],
+        sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialogFormVisible = true
+      if (this.data.sys_enterpriseid) {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+        this.getProjectAddres()
+        this.addChange = true
+      } else {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+      }
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221020144202",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      if (this.addChange) this.form.sa_project_addressid = ''
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.form.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.projectAddress = res.data
+      console.log(this.projectAddress);
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.signdate_due = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.signdate_due = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 125 - 0
src/Form/projectChange/quotation/add.vue

@@ -0,0 +1,125 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 增</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        新增报价单
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="折扣率" prop="discountrate">
+              <el-input v-model="form.discountrate" placeholder="请输入折扣率"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="有效日期" prop="invaliddate">
+              <el-date-picker
+                v-model="form.invaliddate"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="备注" prop="remarks">
+              <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['detailData'],
+  components:{},
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sa_quotedpriceid":0,     //sat_notice_classid<=0时 为新增
+        "sys_enterpriseid": "",
+        "sa_projectid": "",
+        "discountrate": "",
+        "remarks": "",
+        "invaliddate": "",
+        "projectname": "",
+        "address": ""
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        invaliddate:[
+          { required: true, message: '请选择报价有效期', trigger: 'blur'}
+        ],
+        discountrate:[
+          { required: true, message: '整单折扣率,保留2位小数', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        this.form.sys_enterpriseid = this.detailData().sys_enterpriseid
+        this.form.sa_projectid = parseInt(this.$route.query.id)
+        const res = await this.$api.requested({
+          "id": "20221020164803",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.invaliddate = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.invaliddate = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 244 - 0
src/Form/projectChange/quotation/edit.vue

@@ -0,0 +1,244 @@
+<template>
+  <div>
+    <el-button size="mini" :type="btnType?btnType:'text'" @click="editBtn">编 辑</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        编辑项目商机
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="sys_enterpriseid">
+              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" size="small" @change="getProjectAddres()">
+                <el-option
+                  v-for="item in enterpriseList()"
+                  :key="item.sys_enterpriseid"
+                  :label="item.enterprisename"
+                  :value="item.sys_enterpriseid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目编号" prop="projectnum">
+              <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目预算" prop="budgetary">
+              <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :span="12">
+            <el-form-item label="项目规模" prop="scale">
+              <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="预计签约金额" prop="signamount_due">
+              <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="详细地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前项目模板" prop="sa_projstagetempid">
+              <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="small">
+                <el-option
+                  v-for="item in projectPanl()"
+                  :key="item.sa_projstagetempid"
+                  :label="item.stagetempname"
+                  :value="item.sa_projstagetempid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目地址" prop="sa_project_addressid">
+              <el-select v-model="form.sa_project_addressid" placeholder="请先选择企业" size="small">
+                <el-option
+                  v-for="(item,index) in projectAddress"
+                  :key="index"
+                  :label="item.address"
+                  :value="item.contactsid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目等级" prop="grade">
+              <el-select v-model="form.grade" placeholder="请选择项目等级" size="small">
+                <el-option
+                  v-for="item in projectLead()"
+                  :key="item.rowindex"
+                  :label="item.value"
+                  :value="item.rowindex">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="small">
+                <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="signdate_due">
+              <el-date-picker
+                v-model="form.signdate_due"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{},
+  props:['data','btnType'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      projectAddress:[],
+      addChange:false,
+      form:{
+        "sa_projectid":0,
+        "sys_enterpriseid":"",
+        "projectname":"",
+        "projectnum":"",
+        "address":"",//可选
+        "grade":"",//可选
+        "budgetary":"",//可选
+        "remarks":"",//可选
+        "projecttype":"",//可选
+        "sa_projstagetempid":"",//可选
+        "signdate_due":"",//可选
+        "scale":"",//可选
+        "signamount_due":"",//可选
+        "sa_project_addressid":""//选择地址
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],
+        sa_project_addressid:[
+          { required: true, message: '请选择项目地址', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'blur'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        grade:[
+          { required: true, message: '请选择项目等级', trigger: 'blur'}
+        ],
+        sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialogFormVisible = true
+      if (this.data.sys_enterpriseid) {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+        this.getProjectAddres()
+        this.addChange = true
+      } else {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+      }
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221020144202",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      if (this.addChange) this.form.sa_project_addressid = ''
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.form.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.projectAddress = res.data
+      console.log(this.projectAddress);
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.signdate_due = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.signdate_due = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 231 - 0
src/Form/projectChange/rival/add.vue

@@ -0,0 +1,231 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 增</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        新增账户类型
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="sys_enterpriseid">
+              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" size="small" @change="getProjectAddres()">
+                <el-option
+                  v-for="item in enterpriseList()"
+                  :key="item.sys_enterpriseid"
+                  :label="item.enterprisename"
+                  :value="item.sys_enterpriseid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目编号" prop="projectnum">
+              <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目预算" prop="budgetary">
+              <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :span="12">
+            <el-form-item label="项目规模" prop="scale">
+              <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="预计签约金额" prop="signamount_due">
+              <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="详细地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前项目模板" prop="sa_projstagetempid">
+              <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="small">
+                <el-option
+                  v-for="item in projectPanl()"
+                  :key="item.sa_projstagetempid"
+                  :label="item.stagetempname"
+                  :value="item.sa_projstagetempid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目地址" prop="sa_project_addressid">
+              <el-select v-model="form.sa_project_addressid" placeholder="请先选择企业" size="small">
+                <el-option
+                  v-for="(item,index) in projectAddress"
+                  :key="index"
+                  :label="item.address"
+                  :value="item.contactsid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目等级" prop="grade">
+              <el-select v-model="form.grade" placeholder="请选择项目等级" size="small">
+                <el-option
+                  v-for="item in projectLead()"
+                  :key="item.rowindex"
+                  :label="item.value"
+                  :value="item.rowindex">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="small">
+                <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="signdate_due">
+              <el-date-picker
+                v-model="form.signdate_due"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{},
+  data(){
+    return {
+      dialogFormVisible:false,
+      projectAddress:[],
+      form:{
+        "sa_projectid":0,
+        "sys_enterpriseid":"",
+        "projectname":"",
+        "projectnum":"",
+        "address":"",//可选
+        "grade":"",//可选
+        "budgetary":"",//可选
+        "remarks":"",//可选
+        "projecttype":"",//可选
+        "sa_projstagetempid":"",//可选
+        "signdate_due":"",//可选
+        "scale":"",//可选
+        "signamount_due":"",//可选
+        "sa_project_addressid":""//选择地址
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],
+        sa_project_addressid:[
+          { required: true, message: '请选择项目地址', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'blur'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        grade:[
+          { required: true, message: '请选择项目等级', trigger: 'blur'}
+        ],
+        sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    onSubmit(){
+      console.log(this.form)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221020144202",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.form.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.form.sa_project_addressid = ''
+      this.projectAddress = res.data
+      console.log(res);
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.signdate_due = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.signdate_due = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 244 - 0
src/Form/projectChange/rival/edit.vue

@@ -0,0 +1,244 @@
+<template>
+  <div>
+    <el-button size="mini" :type="btnType?btnType:'text'" @click="editBtn">编 辑</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="50%">
+      <div slot="title" style="font-size: 15px">
+        编辑项目商机
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="企业名称" prop="sys_enterpriseid">
+              <el-select v-model="form.sys_enterpriseid" placeholder="请选择企业" size="small" @change="getProjectAddres()">
+                <el-option
+                  v-for="item in enterpriseList()"
+                  :key="item.sys_enterpriseid"
+                  :label="item.enterprisename"
+                  :value="item.sys_enterpriseid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目名称" prop="projectname">
+              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目编号" prop="projectnum">
+              <el-input v-model="form.projectnum" placeholder="请输入项目编号"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目预算" prop="budgetary">
+              <el-input v-model="form.budgetary" placeholder="项目预算"></el-input>
+            </el-form-item>
+          </el-col>
+          
+          <el-col :span="12">
+            <el-form-item label="项目规模" prop="scale">
+              <el-input v-model="form.scale" placeholder="请输入项目规模"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="预计签约金额" prop="signamount_due">
+              <el-input v-model="form.signamount_due" placeholder="请输入预计签约金额"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="详细地址" prop="address">
+              <el-input v-model="form.address" placeholder="请输入详细地址"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="当前项目模板" prop="sa_projstagetempid">
+              <el-select v-model="form.sa_projstagetempid" placeholder="请选择当前项目模板" size="small">
+                <el-option
+                  v-for="item in projectPanl()"
+                  :key="item.sa_projstagetempid"
+                  :label="item.stagetempname"
+                  :value="item.sa_projstagetempid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目地址" prop="sa_project_addressid">
+              <el-select v-model="form.sa_project_addressid" placeholder="请先选择企业" size="small">
+                <el-option
+                  v-for="(item,index) in projectAddress"
+                  :key="index"
+                  :label="item.address"
+                  :value="item.contactsid">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目等级" prop="grade">
+              <el-select v-model="form.grade" placeholder="请选择项目等级" size="small">
+                <el-option
+                  v-for="item in projectLead()"
+                  :key="item.rowindex"
+                  :label="item.value"
+                  :value="item.rowindex">
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-select v-model="form.projecttype" placeholder="请选择项目类型" size="small">
+                <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="signdate_due">
+              <el-date-picker
+                v-model="form.signdate_due"
+                type="date"
+                placeholder="选择日期"
+                @change="timeChange">
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-form>
+      </el-row>
+      <div class="dialog-footer">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{},
+  props:['data','btnType'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      projectAddress:[],
+      addChange:false,
+      form:{
+        "sa_projectid":0,
+        "sys_enterpriseid":"",
+        "projectname":"",
+        "projectnum":"",
+        "address":"",//可选
+        "grade":"",//可选
+        "budgetary":"",//可选
+        "remarks":"",//可选
+        "projecttype":"",//可选
+        "sa_projstagetempid":"",//可选
+        "signdate_due":"",//可选
+        "scale":"",//可选
+        "signamount_due":"",//可选
+        "sa_project_addressid":""//选择地址
+      },
+      rules:{
+        projectname:[
+          { required: true, message: '输入项目名称', trigger: 'blur'},
+        ],
+        projectnum:[
+          { required: true, message: '输入项目编号', trigger: 'blur'}
+        ],
+        sa_project_addressid:[
+          { required: true, message: '请选择项目地址', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请选择项目类型', trigger: 'blur'}
+        ],
+        sys_enterpriseid:[
+          { required: true, message: '请选择企业', trigger: 'blur'},
+        ],
+        grade:[
+          { required: true, message: '请选择项目等级', trigger: 'blur'}
+        ],
+        sa_projstagetempid:[
+          { required: true, message: '请选择当前项目模板', trigger: 'blur'}
+        ],
+      }
+    }
+  },
+  methods:{
+    editBtn () {
+      this.dialogFormVisible = true
+      if (this.data.sys_enterpriseid) {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+        this.getProjectAddres()
+        this.addChange = true
+      } else {
+        this.form = Object.assign({},this.form,this.data)
+        this.form.grade = parseInt(this.form.grade)
+      }
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221020144202",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      if (this.addChange) this.form.sa_project_addressid = ''
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.form.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.projectAddress = res.data
+      console.log(this.projectAddress);
+    },
+    timeChange(e) {
+      if(!e) {
+        this.form.signdate_due = ''
+      } 
+      let result = this.changeTimeFormat(e.getTime())
+ 
+      this.form.signdate_due = result
+    },
+    changeTimeFormat(time) {
+      var date = new Date(time);
+      var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+      var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+      return date.getFullYear() + "-" + month + "-" + currentDate
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  height: 28px !important;
+  width: 100%;
+}
+/deep/.el-input__inner {
+  height: 28px !important;
+}
+</style>

+ 1 - 1
src/HDrpManagement/privateCustomer/modules/detail.vue

@@ -12,7 +12,7 @@
     @pageChange="pageChange"
     @onEditSuccess="queryMainData($route.query.id)">
     <!-- 使用此插槽可不传[tags] -->
-    <tagPanl slot="tags" :data="tagObj" :id="mainData.sa_customersid" @onSuccess="queryMainData"/>
+    <tagPanl slot="tags" :data="tagObj" ownertable="sa_customers" :id="mainData.sa_customersid" @onSuccess="queryMainData"/>
     <div slot="customOperation">
       <!-- 此区域提供了自定义操作按钮 -->
     </div>

+ 70 - 31
src/HDrpManagement/projectChange/index.vue

@@ -1,17 +1,33 @@
 <template>
   <div>
+    <div  class="my-tabs" style="padding:0 16px;margin-top:16px">
+      <el-tabs v-model="editableTabsValue" type="card" @tab-click="onChange">
+        <el-tab-pane
+            v-for="(item, index) in editableTabs"
+            :key="item.name"
+            :label="item.title"
+            :name="item.name"
+        >
+        </el-tab-pane>
+      </el-tabs>
+    </div>
     <basicLayout 
       ref="basicLayout" 
       formPath="projectChange" 
       tableName="projectTable" 
       idName="sa_projectid" 
       :apiId="{query:20221020143502,del:20221020144302}" 
-      :options="options"
-      queryKey="type">
-      <div slot="custom"></div>
+      :options="options">
+      <div slot="custom">
+        <time-select @clearSelect="clearTime" @timeChange="timeChange"></time-select>
+      </div>
       <template v-slot:tbList="scope">
-        <div>
-          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        <div 
+          v-if="scope.data.column.columnname == 'grade'"
+        >{{projectLead&&projectLead.find(item => item.rowindex==scope.data.column.data[scope.data.column.columnname]).value}}</div>
+        <div v-else-if="scope.data.column.data[scope.data.column.columnname] && scope.data.column.columnname != 'operation'">{{scope.data.column.data[[scope.data.column.columnname]]}}</div>
+        <div v-else>
+          --
         </div>
       </template>
       <template v-slot:tbOpreation="scope">
@@ -21,16 +37,15 @@
           class="inline-16" 
           @click="$router.push({path:'/projectChangeDetail',query:{id:scope.data.data.sa_projectid,rowindex:scope.data.data.rowindex}})">详 情
         </el-button>
-
         <putPeople 
           @onSuccess="$refs.basicLayout.listData()" 
-          v-if="!scope.data.data.reportby" class="inline-16" 
+          v-if="!scope.data.data.reportby &&  tool.checkAuth($route.name,'put')" class="inline-16" 
           :data="putPeople" 
           :rowData="scope.data.data"
         />
 
         <Check 
-          v-if="!scope.data.data.reportcheckby && scope.data.data.reportby == userInfo.name" 
+          v-if="!scope.data.data.reportcheckby && scope.data.data.reportby == userInfo.name && tool.checkAuth($route.name,'check')" 
           @checkSuccess="$refs.basicLayout.listData()" 
           :rowData="scope.data.data"
         />
@@ -41,6 +56,7 @@
           nameKey="sa_projectids" 
           @deleteSuccess="$refs.basicLayout.listData()"
           class="inline-16"
+          v-if="tool.checkAuth($route.name,'delete')"
         />
       </template>
     </basicLayout>
@@ -51,8 +67,10 @@
 import Del from './components/del'
 import putPeople from './components/putPeople'
 import Check from './components/check'
+
+import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
 export default {
-  components:{Del,putPeople,Check},
+  components:{Del,putPeople,Check,TimeSelect},
   name: "index",
   provide () {
     return {
@@ -64,6 +82,7 @@ export default {
   },
   data() {
     return {
+      editableTabsValue:'0',
       /* 企业列表 */
       enterpriseList:'',
       /* 企业列表 */
@@ -72,28 +91,23 @@ export default {
       projectPanl:'',
       putPeople:'',
       userInfo:'',
-      options:[
-        {
-          label:'全部',
-          value:0
-        },
-        {
-          label:'我负责的',
-          value:1
-        },
-        {
-          label:'我参与的',
-          value:2
-        },
-        {
-          label:'我下属负责的',
-          value:3
-        },
-        {
-          label:'我下属参与的',
-          value:4
-        },
-      ]
+      options:[],
+      editableTabs: [{
+        title: '全部',
+        name: "0",
+      }, {
+        title: '我负责的',
+        name: "1",
+      }, {
+        title: '我参与的',
+        name: "2",
+      }, {
+        title: '我下属负责的',
+        name: "3",
+      }, {
+        title: '我下属参与的',
+        name: "4",
+      }],
     }
   },
   created () {
@@ -125,6 +139,8 @@ export default {
       /* 获取项目等级 */
       let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
       this.projectLead = res2.data
+      console.log(this.projectLead);
+      
     },
     /** 获取公司数据 */
     async getEnterprise () {
@@ -179,9 +195,32 @@ export default {
       this.userInfo = res.data
       console.log(this.userInfo);
       
+    },
+    queryData(id){
+      console.log("执行")
+      this.$refs['basicLayout'].param.content.type = id
+      this.$refs['basicLayout'].param.content.isExport = false
+      this.$refs['basicLayout'].listData()
+    },
+    onChange (val) {
+      console.log(val)
+      this.$refs['basicLayout'].param.content.type = val.name
+      this.$refs['basicLayout'].param.content.isExport = 0
+      this.$refs['basicLayout'].listData()
+    },
+    clearTime () {
+      this.$refs['basicLayout'].param.content.where.startdate = ''
+      this.$refs['basicLayout'].param.content.where.enddate = ''
+      this.$refs['basicLayout'].listData()
+    },
+    timeChange (time) {
+      this.$refs['basicLayout'].param.content.where.startdate = time[0]
+      this.$refs['basicLayout'].param.content.where.enddate = time[1]
+      this.$refs['basicLayout'].listData()
     }
   },
   mounted () {
+    this.queryData(1)
   }
 }
 </script>

+ 43 - 23
src/HDrpManagement/projectChange/modules/detail.vue

@@ -9,31 +9,32 @@
     :turnPageId="20221020143502" 
     idname="sa_projectid"
     tags=""
+    :tabs="['详细信息','阶段任务','产品配置单','报价单','竞争对手']"
     @pageChange="pageChange"
     @onEditSuccess="queryMainData($route.query.id)">
     <!-- 使用此插槽可不传[tags] -->
-    <!-- <tagPanl slot="tags" :data="tagObj" :id="mainData.sa_customersid" @onSuccess="queryMainData"/> -->
+    <tagPanl slot="tags" :data="tagObj" ownertable="sa_project" :id="mainData.sa_projectid" @onSuccess="queryMainData"/>
     <div slot="customOperation">
       <!-- 此区域提供了自定义操作按钮 -->
     </div>
-    <!-- <div slot="slot0" class="container normal-panel">
-      <el-button size="small" type="primary" @click="createAgentAccount" class="normal-margin">创建经销商主账号</el-button>
-      <tableLayout :layout="tablecols" :data="mainData.hrs" :custom="false" height="300px"></tableLayout>
-    </div>
-    <div slot="slot1" class="container normal-panel">
-      <salescope :data="mainData"></salescope>
-    </div>
     <div slot="slot2" class="container normal-panel">
-      <SaleClass :data="mainData"></SaleClass>
+      <ProjectSet />
     </div>
     <div slot="slot3" class="container normal-panel">
-      <accountMoney :mainData="mainData"></accountMoney>
-    </div> -->
+      <quotation />
+    </div>
+    <div slot="slot4" class="container normal-panel">
+      <Rival />
+    </div>
   </basicDetails>
 </template>
 
 <script>
+import Quotation from './modules/quotation/index'
+import ProjectSet from './modules/projectSet/index'
+import Rival from './modules/rival/index'
 export default {
+  components:{Quotation,ProjectSet,Rival},
   data () {
     return {
       mainData:{},
@@ -44,6 +45,8 @@ export default {
       projectType:'',
       projectLead:'',
       projectPanl:'',
+      projectAddress:'',
+      tagObj:''
     }
   },
   provide () {
@@ -51,11 +54,10 @@ export default {
       enterpriseList:() => this.enterpriseList,
       projectType:() => this.projectType,
       projectLead:() => this.projectLead,
-      projectPanl:() => this.projectPanl
+      projectPanl:() => this.projectPanl,
+      detailData:() => this.mainData
     }
   },
-  components:{
-  },
   methods:{
     async queryMainData (id) {
       const res = await this.$api.requested({
@@ -67,7 +69,9 @@ export default {
       })
       this.mainData = res.data
       console.log(this.mainData);
-      this.changeDataStructure()
+      /* 获取标签数据 */
+      this.tagObj = await this.$store.dispatch('queryTagList',{table:'sa_project',id:this.mainData.sa_projectid})
+      this.getProjectAddres()
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex) {
@@ -92,9 +96,6 @@ export default {
       /* 获取项目类型 */
       let res = await this.$store.dispatch('optiontypeselect','projecttype')
       this.projectType = res.data
-      /* 获取项目等级 */
-      let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
-      this.projectLead = res2.data
     },
     /** 获取公司数据 */
     async getEnterprise () {
@@ -124,6 +125,26 @@ export default {
       })
       this.projectPanl = res.data
     },
+    /* 获取项目地址 */
+    async getProjectAddres () {
+      let res = await this.$api.requested({
+        "id": "20221018153302",
+        "content": {
+            "sys_enterpriseid": this.mainData.sys_enterpriseid,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+      this.projectAddress = res.data
+      /* 获取项目等级 */
+      let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
+      this.projectLead = res2.data
+      this.changeDataStructure()
+      console.log(res);
+    },
     changeDataStructure () {
       this.mainAreaData = [
         {
@@ -140,12 +161,10 @@ export default {
         },
         {
           label:'项目等级',
-          value: this.mainData.grade
-          // value: this.projectLead.find(item => item.index == this.mainData.grade).value
+          value: this.projectLead.find(item => item.rowindex == this.mainData.grade).value
         },
         {
           label:'项目类型',
-          // value: this.customerLead.find(item => item.rowindex == this.mainData.grade).value
           value:this.mainData.projecttype
         },
         {
@@ -166,7 +185,8 @@ export default {
         },
         {
           label:'项目地址',
-          value: this.mainData.sa_project_addressid
+          // value: this.mainData.sa_project_addressid
+          value: this.projectAddress.find(item => item.contactsid == this.mainData.sa_project_addressid).address
         },
         {
           label:'项目详细地址',
@@ -214,7 +234,7 @@ export default {
   },
   mounted () {
   },
-  created () {
+  async created () {
     this.queryMainData(this.$route.query.id)
     this.getProjectPanl()
     this.getEnterprise()

+ 56 - 0
src/HDrpManagement/projectChange/modules/modules/projectSet/index.vue

@@ -0,0 +1,56 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      formPath="projectChange/projectSet" 
+      tableName="projectSetTable" 
+      idName="sa_projectid" 
+      :apiId="{query:20221021145702,del:20221021145602}"
+      :options="options"
+      @listCreate="list">
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname == 'itemclass'">
+        </div>
+        <div v-else>
+          {{scope.data.column.data[scope.data.column.columnname] || scope.data.column.columnname == 'operation' ? scope.data.column.data[[scope.data.column.columnname]] : '--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <el-button size="mini" type="text" class="inline-16" @click="$router.push({path:'/PublicCustomerDetail',query:{id:scope.data.data.sa_customersid,rowindex:scope.data.data.rowindex}})">详 情</el-button>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      options:[],
+    }
+  },
+  provide () {
+    return {
+
+    }
+  },
+  components:{},
+  methods:{
+    list (vm) {  
+      vm.content.sa_projectid = this.$route.query.id
+    }
+  },
+  created() {
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style scoped>
+/* /deep/.el-table__cell .cell {
+  display: flex;
+  justify-content: s;
+} */
+</style>

+ 50 - 0
src/HDrpManagement/projectChange/modules/modules/quotation/index.vue

@@ -0,0 +1,50 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      formPath="projectChange/quotation" 
+      tableName="quotationTable" 
+      idName="sa_quotedpriceid" 
+      :apiId="{query:20221020165103,del:20221020165503}"
+      :options="options">
+      <template v-slot:tbList="scope">
+        <div>
+          {{scope.data.column.data[scope.data.column.columnname] || scope.data.column.columnname == 'operation' ? scope.data.column.data[[scope.data.column.columnname]] : '--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <el-button size="mini" type="text" class="inline-16" @click="$router.push({path:'/PublicCustomerDetail',query:{id:scope.data.data.sa_customersid,rowindex:scope.data.data.rowindex}})">详 情</el-button>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      options:[],
+    }
+  },
+  provide () {
+    return {
+
+    }
+  },
+  components:{},
+  methods:{
+  
+  },
+  created() {
+
+  }
+}
+
+</script>
+<style scoped>
+/* /deep/.el-table__cell .cell {
+  display: flex;
+  justify-content: s;
+} */
+</style>

+ 50 - 0
src/HDrpManagement/projectChange/modules/modules/rival/index.vue

@@ -0,0 +1,50 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      formPath="projectChange/rival" 
+      tableName="rivalTable" 
+      idName="sa_competitorid" 
+      :apiId="{query:20221018164302,del:20221018164202}"
+      :options="options">
+      <template v-slot:tbList="scope">
+        <div>
+          {{scope.data.column.data[scope.data.column.columnname] || scope.data.column.columnname == 'operation' ? scope.data.column.data[[scope.data.column.columnname]] : '--'}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <el-button size="mini" type="text" class="inline-16" @click="$router.push({path:'/PublicCustomerDetail',query:{id:scope.data.data.sa_customersid,rowindex:scope.data.data.rowindex}})">详 情</el-button>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      options:[],
+    }
+  },
+  provide () {
+    return {
+
+    }
+  },
+  components:{},
+  methods:{
+  
+  },
+  created() {
+
+  }
+}
+
+</script>
+<style scoped>
+/* /deep/.el-table__cell .cell {
+  display: flex;
+  justify-content: s;
+} */
+</style>

+ 1 - 1
src/HDrpManagement/publicManage/index.vue

@@ -16,7 +16,7 @@ vue
         <div v-else>{{scope.data.column.data[[scope.data.column.columnname]]}}</div>
       </template>
       <template v-slot:tbOpreation="scope">
-        <team :rowData="scope.data.data" :data="people"/>
+        <team class="inline-16" :rowData="scope.data.data" :data="people"/>
         <delete-btn @deleteSuccess="$refs.basicLayout.listData()" :id="scope.data.data.sa_customerpoolid" nameId="20221009100602" nameKey="sa_customerpoolids" />
       </template>
     </basicLayout>

+ 1 - 1
src/SManagement/submitedit_one/components/TimeSelect.vue

@@ -7,7 +7,7 @@
       start-placeholder="开始日期"
       end-placeholder="结束日期"
       @change="timeChange"
-      size="small">
+      size="mini">
     </el-date-picker>
   </div>
 </template>

+ 1 - 0
src/components/normal-basic-layout/index.vue

@@ -187,6 +187,7 @@ export default {
     this.routerName = this.$route.meta.title
     this.layout = this.tool.tabelCol(this.$route.name)[this.tableName].tablecols
     this.tableLayout = this.layout
+    this.$emit('listCreate',this.param)
   },
 }
 

+ 28 - 13
src/components/tagPanl/tagPanl.vue

@@ -35,13 +35,14 @@
 /*
   data:标签数据
   id:表id
+  ownertable:数据表名
   <tagPanl slot="tags" :data="tagObj" :id="mainData.sa_customersid" @onSuccess="queryMainData"/>
 
 */
 import { log } from '@antv/g2plot/lib/utils';
 export default {
   name: '',
-  props:['data','id'],
+  props:['data','id','ownertable'],
   data() {
     return {
       dialogFormVisible:false,
@@ -94,9 +95,9 @@ export default {
       let res = await this.$api.requested({
         "id": 20220929090901,
         "content": {
-            "ownertable":"sa_customers",
-            "ownerid":this.id,
-            "datatag":this.tagData.datatag.map(item => item.tag)
+            "ownertable": this.ownertable,
+            "ownerid": this.id,
+            "datatag": this.tagData.datatag.map(item => item.tag)
         }
       })
       console.log(res);
@@ -123,14 +124,20 @@ export default {
 
 <style scoped>
   .edit {
-    width: 54px;
-    height: 20px;
-    line-height: 20px;
-    background: #FFF3E7;
-    border-radius: 2px 2px 2px 2px;
-    display: flex;
-    justify-content: space-around;
+    font-size: 12px;
     cursor: pointer;
+    transition: all 0.2s ease-in;
+    height: 24px;
+    padding: 0 8px;
+    line-height: 22px;
+    background: #FFF3E7;
+    border-color: #d7e3fd;
+    display: inline-block;
+    border-width: 1px;
+    border-style: solid;
+    border-radius: 4px;
+    box-sizing: border-box;
+    white-space: nowrap;
   }
   .edit .text {
     color: #FA8C16;
@@ -156,11 +163,19 @@ export default {
   }
   .tag-box .tag .tag-item {
     margin: 0 10px 10px 0;
-    border: 1px solid #cccccc;
-    padding: 2px 12px;
     font-size: 12px;
     cursor: pointer;
     transition: all 0.2s ease-in;
+    height: 24px;
+    padding: 0 8px;
+    line-height: 22px;
+    border-color: #d7e3fd;
+    display: inline-block;
+    border-width: 1px;
+    border-style: solid;
+    border-radius: 4px;
+    box-sizing: border-box;
+    white-space: nowrap;
   }
 </style>
 

+ 15 - 0
src/store/index.js

@@ -100,6 +100,7 @@ export default new Vuex.Store({
       const res = await api.requested(obj)
     },
 
+
     // 存储部门列表数据
     setDeplistData ({commit}, param) {
       commit('setDeplist',param)
@@ -129,6 +130,20 @@ export default new Vuex.Store({
       })
       commit('setUsershortcuts',arr)
     },
+    // 查询标签数据
+    async queryTagList ({commit}, param) {
+      return new Promise(async (reslove,reject)=>{
+        let obj = {
+          "id": 20220929085401,
+          "content": {
+              "ownertable":param.table,
+              "ownerid":param.id
+          }
+        }
+        const res = await api.requested(obj)
+        reslove(res.data)
+      })
+    },
 
     // 设置权限状态
     pageOnlyRead ({commit}, bool) {