Browse Source

2022-10-21

codeMan 2 years ago
parent
commit
537034429d

+ 232 - 0
src/Form/projectChange/add.vue

@@ -0,0 +1,232 @@
+<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>
+import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{TimeSelect},
+  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>

+ 245 - 0
src/Form/projectChange/edit.vue

@@ -0,0 +1,245 @@
+<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>
+import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
+export default {
+  name: "add",
+  inject:['enterpriseList','projectType','projectLead','projectPanl'],
+  components:{TimeSelect},
+  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>

+ 27 - 0
src/HDrpManagement/projectChange/components/check.vue

@@ -0,0 +1,27 @@
+<template>
+  <div class="inline-16">
+    <el-popconfirm title="确定通过审核吗?" @confirm="CheckRow()">
+      <el-button slot="reference" size="small" type="text">审 核</el-button>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ['rowData'],
+  methods: {
+    async CheckRow() {
+      let res = await this.$api.requested({
+        "id": 20221021092402,
+        "content": {
+            "sa_projectid":this.rowData.sa_projectid
+        },
+      })
+      this.tool.showMessage(res,() => {
+        this.$emit('checkSuccess')
+      })
+    },
+  }
+}
+
+</script>

+ 33 - 0
src/HDrpManagement/projectChange/components/del.vue

@@ -0,0 +1,33 @@
+<template>
+  <div class="inline-16">
+    <el-popconfirm title="确定作废当前商机吗?" @confirm="deleteRow()">
+      <el-button slot="reference" size="small" type="text">作 废</el-button>
+    </el-popconfirm>
+  </div>
+</template>
+
+<script>
+/* 
+id:数据id
+nameId:接口id
+nameKey:接口字段
+ */
+export default {
+  props: ['id','nameId','nameKey'],
+  methods: {
+    async deleteRow() {
+      let res = await this.$api.requested({
+        "id":this.nameId,
+        "version":1,
+        "content": {
+            [this.nameKey]:[this.id]
+        }
+      })
+      this.tool.showMessage(res,() => {
+        this.$emit('deleteSuccess')
+      })
+    },
+  }
+}
+
+</script>

+ 75 - 0
src/HDrpManagement/projectChange/components/putPeople.vue

@@ -0,0 +1,75 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="btn">报 备</el-button>
+    <el-dialog title="选择报备人" :visible.sync="dialogFormVisible" width="30%">
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="20">
+            <el-form-item label="选择报备人" prop="reportby">
+              <el-select v-model="form.reportby" placeholder="请选择报备人" size="small">
+                <el-option
+                  v-for="item in data"
+                  :key="item.userid"
+                  :label="item.name"
+                  :value="item.name">
+                </el-option>
+              </el-select>
+            </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",
+  props:['data','rowData'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        reportby:'',
+        sa_projectid:''
+      },
+      rules:{
+        reportby:[
+          { required: true, message: '请选择负责人', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    btn () {
+      this.dialogFormVisible = true
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        this.form.sa_projectid = this.rowData.sa_projectid
+        const res = await this.$api.requested({
+          "id": "20221021092302",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  width: 100%;
+}
+</style>

+ 191 - 0
src/HDrpManagement/projectChange/index.vue

@@ -0,0 +1,191 @@
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      formPath="projectChange" 
+      tableName="projectTable" 
+      idName="sa_projectid" 
+      :apiId="{query:20221020143502,del:20221020144302}" 
+      :options="options"
+      queryKey="type">
+      <div slot="custom"></div>
+      <template v-slot:tbList="scope">
+        <div>
+          {{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:'/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" 
+          :data="putPeople" 
+          :rowData="scope.data.data"
+        />
+
+        <Check 
+          v-if="!scope.data.data.reportcheckby && scope.data.data.reportby == userInfo.name" 
+          @checkSuccess="$refs.basicLayout.listData()" 
+          :rowData="scope.data.data"
+        />
+
+        <Del 
+          :id="scope.data.data.sa_projectid" 
+          :nameId="20221020144302" 
+          nameKey="sa_projectids" 
+          @deleteSuccess="$refs.basicLayout.listData()"
+          class="inline-16"
+        />
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import Del from './components/del'
+import putPeople from './components/putPeople'
+import Check from './components/check'
+export default {
+  components:{Del,putPeople,Check},
+  name: "index",
+  provide () {
+    return {
+      enterpriseList:() => this.enterpriseList,
+      projectType:() => this.projectType,
+      projectLead:() => this.projectLead,
+      projectPanl:() => this.projectPanl
+    }
+  },
+  data() {
+    return {
+      /* 企业列表 */
+      enterpriseList:'',
+      /* 企业列表 */
+      projectType:'',
+      projectLead:'',
+      projectPanl:'',
+      putPeople:'',
+      userInfo:'',
+      options:[
+        {
+          label:'全部',
+          value:0
+        },
+        {
+          label:'我负责的',
+          value:1
+        },
+        {
+          label:'我参与的',
+          value:2
+        },
+        {
+          label:'我下属负责的',
+          value:3
+        },
+        {
+          label:'我下属参与的',
+          value:4
+        },
+      ]
+    }
+  },
+  created () {
+    this.getProjectPanl()
+    this.getEnterprise()
+    this.getSysetms()
+    this.getPutPeople()
+    this.getUserInfo()
+  },
+  methods: {
+    /* 获取联系人:负责人列表 */
+    async getAccount () {
+      let res = await this.$api.requested({
+        "id": "20221018150602",
+        "content": {
+            "sys_enterpriseid": 1,
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+    },
+    async getSysetms () {
+      /* 获取项目类型 */
+      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 () {
+      let res = await this.$api.requested({
+        "id": 20221021095802,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 99999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.enterpriseList = res.data
+    },
+    /* 获取项目模板 */
+    async getProjectPanl () {
+      let res = await this.$api.requested({
+        "id": "20221019085604",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 99999999,
+            "where":{
+                "condition":""
+            }
+        }
+      })
+      this.projectPanl = res.data
+    },
+    /* 可报备人 */
+    async getPutPeople () {
+      let res = await this.$api.requested({
+        "id": 20221021093202,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 999999,
+          "where": {
+              "condition": ""
+          }
+        },
+      })
+      this.putPeople = res.data
+    },
+    /* 获取当前用户信息 */
+    async getUserInfo() {
+      let res = await this.$api.requested({
+        "classname": "common.usercenter.usercenter",
+        "method": "queryUserMsg",
+        "content": {
+        }
+      })
+      this.userInfo = res.data
+      console.log(this.userInfo);
+      
+    }
+  },
+  mounted () {
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 229 - 0
src/HDrpManagement/projectChange/modules/detail.vue

@@ -0,0 +1,229 @@
+
+<template>
+  <basicDetails 
+    ref="details"
+    :titleText="mainData.projectname"
+    formPath="projectChange"
+    :editData="mainData"
+    :mainAreaData="mainAreaData" 
+    :turnPageId="20221020143502" 
+    idname="sa_projectid"
+    tags=""
+    @pageChange="pageChange"
+    @onEditSuccess="queryMainData($route.query.id)">
+    <!-- 使用此插槽可不传[tags] -->
+    <!-- <tagPanl slot="tags" :data="tagObj" :id="mainData.sa_customersid" @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>
+    </div>
+    <div slot="slot3" class="container normal-panel">
+      <accountMoney :mainData="mainData"></accountMoney>
+    </div> -->
+  </basicDetails>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      mainData:{},
+      mainAreaData:'',
+      /* 企业列表 */
+      enterpriseList:'',
+      /* 企业列表 */
+      projectType:'',
+      projectLead:'',
+      projectPanl:'',
+    }
+  },
+  provide () {
+    return {
+      enterpriseList:() => this.enterpriseList,
+      projectType:() => this.projectType,
+      projectLead:() => this.projectLead,
+      projectPanl:() => this.projectPanl
+    }
+  },
+  components:{
+  },
+  methods:{
+    async queryMainData (id) {
+      const res = await this.$api.requested({
+        "id": "20221021103902",
+        "version":1,
+        "content": {
+            "sa_projectid":this.$route.query.id
+        }
+      })
+      this.mainData = res.data
+      console.log(this.mainData);
+      this.changeDataStructure()
+    },
+    // 监听切换数据,上一页,下一页
+    pageChange (id,rowindex) {
+      this.$router.replace({path:'/projectChangeDetail',query:{id:id,rowindex:rowindex}})
+      this.queryMainData(id)
+    },
+    /* 获取联系人:负责人列表 */
+    async getAccount () {
+      let res = await this.$api.requested({
+        "id": "20221018150602",
+        "content": {
+            "sys_enterpriseid": 1,
+            "pageNumber": 1,
+            "pageSize": 20,
+            "where": {
+                "condition": ""
+            }
+        }
+      })
+    },
+    async getSysetms () {
+      /* 获取项目类型 */
+      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 () {
+      let res = await this.$api.requested({
+        "id": 20221021095802,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 99999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.enterpriseList = res.data
+    },
+    /* 获取项目模板 */
+    async getProjectPanl () {
+      let res = await this.$api.requested({
+        "id": "20221019085604",
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 99999999,
+            "where":{
+                "condition":""
+            }
+        }
+      })
+      this.projectPanl = res.data
+    },
+    changeDataStructure () {
+      this.mainAreaData = [
+        {
+          label:'项目名称',
+          value: this.mainData.projectname
+        },
+        {
+          label:'项目编号',
+          value:this.mainData.projectnum
+        },
+        {
+          label:'项目规模',
+          value: this.mainData.scale
+        },
+        {
+          label:'项目等级',
+          value: this.mainData.grade
+          // value: this.projectLead.find(item => item.index == this.mainData.grade).value
+        },
+        {
+          label:'项目类型',
+          // value: this.customerLead.find(item => item.rowindex == this.mainData.grade).value
+          value:this.mainData.projecttype
+        },
+        {
+          label:'项目阶段',
+          value: this.mainData.stagename
+        },
+        {
+          label:'项目赢率',
+          value: this.mainData.winrate
+        },
+        {
+          label:'项目预算',
+          value: this.mainData.budgetary
+        },
+        {
+          label:'项目状态',
+          value: this.mainData.status
+        },
+        {
+          label:'项目地址',
+          value: this.mainData.sa_project_addressid
+        },
+        {
+          label:'项目详细地址',
+          value: this.mainData.address
+        },
+        {
+          label:'负责人',
+          value: this.mainData.name
+        },{
+          label:'预计签约金额',
+          value: this.mainData.signamount_due
+        },
+        {
+          label:'预计签约时间',
+          value: this.mainData.signdate_due
+        },
+        {
+          label:'创建时间',
+          value: this.mainData.createdate
+        },
+        {
+          label:'创建人',
+          value: this.mainData.createby
+        },{
+          label:'编辑时间',
+          value: this.mainData.changedate
+        },{
+          label:'跟进时间',
+          value: this.mainData.followdate
+        },{
+          label:'跟进人',
+          value: this.mainData.followby
+        },{
+          label:'创建人',
+          value: this.mainData.createby
+        },{
+          label:'创建人',
+          value: this.mainData.createby
+        },{
+          label:'创建人',
+          value: this.mainData.createby
+        },
+      ]
+    }
+  },
+  mounted () {
+  },
+  created () {
+    this.queryMainData(this.$route.query.id)
+    this.getProjectPanl()
+    this.getEnterprise()
+    this.getSysetms()
+    // 验证权限
+    this.tool.checkAuth(this.$route.name,'update')?'':this.$router.go(-1)
+  },
+}
+
+</script>
+<style>
+</style>

+ 76 - 0
src/HDrpManagement/publicManage/components/team.vue

@@ -0,0 +1,76 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="btn">团 队</el-button>
+    <el-dialog title="选择报备人" :visible.sync="dialogFormVisible" width="30%">
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="120px" label-position="left" size="mini">
+          <el-col :span="20">
+            <el-form-item label="团队成员" prop="userid">
+              <el-select v-model="form.userid" placeholder="请选择成员" size="small" multiple >
+                <el-option
+                  v-for="item in data"
+                  :key="item.userid"
+                  :label="item.name"
+                  :value="item.name">
+                </el-option>
+              </el-select>
+            </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",
+  props:['data','rowData'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "ownertable":"sa_customerpool",
+        "ownerid":'',
+        "userid":[]
+      },
+      rules:{
+        reportby:[
+          { required: true, message: '请选择负责人', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    btn () {
+      this.dialogFormVisible = true
+      this.form = Object.assign({},this.form,this.data)
+    },
+    onSubmit(){
+      console.log(this.form)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": 20220930103601,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+/deep/.el-select {
+  width: 100%;
+}
+</style>

+ 18 - 2
src/HDrpManagement/publicManage/index.vue

@@ -16,6 +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"/>
         <delete-btn @deleteSuccess="$refs.basicLayout.listData()" :id="scope.data.data.sa_customerpoolid" nameId="20221009100602" nameKey="sa_customerpoolids" />
       </template>
     </basicLayout>
@@ -23,21 +24,36 @@ vue
 </template>
 
 <script>
+import team from './components/team'
 export default {
   data () {
     return {
       options:[],
+      people:''
     }
   },
   provide () {
     return {
     }
   },
-  components:{},
+  components:{team},
   methods:{
-
+    async getPeople () {
+      let res = await this.$api.requested({
+        "id": 20221021093202,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 9999999,
+            "where": {
+                "condition": ""
+            }
+        },
+      })
+      this.people = res.data
+    }
   },
   created() {
+    this.getPeople()
   }
 }
 

+ 9 - 9
src/HDrpManagement/saleclass/components/edit.vue

@@ -12,11 +12,11 @@
           <el-input v-model="ruleForm.itemclassname" size="small" placeholder="请输入营销类别名"></el-input>
         </el-form-item>
         <el-form-item label="营销类别编号" prop="itemclassnum">
-          <el-input v-model="ruleForm.itemclassnum" size="small" placeholder="请输入营销类别编号"></el-input>
+          <el-input v-model="ruleForm.itemclassnum" :disabled="type!='add'" size="small" placeholder="请输入营销类别编号"></el-input>
         </el-form-item>
-        <el-form-item label="营销类别全称" prop="itemclassfullname">
+        <!-- <el-form-item label="营销类别全称" prop="itemclassfullname">
           <el-input v-model="ruleForm.itemclassfullname" size="small" placeholder="请输入营销类别全称"></el-input>
-        </el-form-item>
+        </el-form-item> -->
       </el-form>
       <span slot="footer" class="dialog-footer">
         <div>
@@ -39,7 +39,7 @@ export default {
       ruleForm: {
         "itemclassnum":'',
         "itemclassname":'',
-        "itemclassfullname":'',
+        // "itemclassfullname":'',
       },
       rules:{
         itemclassname: [
@@ -48,9 +48,9 @@ export default {
         itemclassnum: [
           { required: true, message: '请输入营销类别编号', trigger: 'blur' },
         ],
-        itemclassfullname: [
-          { required: true, message: '请输入营销类别全称', trigger: 'blur' },
-        ],
+        // itemclassfullname: [
+        //   { required: true, message: '请输入营销类别全称', trigger: 'blur' },
+        // ],
       }
     };
   },
@@ -62,7 +62,7 @@ export default {
       handler(val) {
         this.ruleForm.itemclassnum = val.itemclassnum
         this.ruleForm.itemclassname = val.itemclassname
-        this.ruleForm.itemclassfullname = val.itemclassfullname
+        // this.ruleForm.itemclassfullname = val.itemclassfullname
       }
     }
   },
@@ -87,7 +87,7 @@ export default {
                 "parentid":this.rowData.itemclassid === undefined ? 0 : this.rowData.itemclassid,
                 "itemclassnum":this.ruleForm.itemclassnum,
                 "itemclassname":this.ruleForm.itemclassname,
-                "itemclassfullname":this.ruleForm.itemclassfullname,
+                // "itemclassfullname":this.ruleForm.itemclassfullname,
                 "classtype":"营销"
             }
           })

+ 20 - 2
src/router/HDrpManagement.js

@@ -164,7 +164,7 @@ const HDrpManagement = [
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/publicManage/index')
   },{
-    path: '/competitor',
+    path: '/projectStage',
     name:'projectstage',
     meta: {
       title: '项目阶段管理',
@@ -172,7 +172,25 @@ const HDrpManagement = [
       keeproute: true,
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectManage/index')
-  }
+  },{
+    path: '/projectChange',
+    name:'project',
+    meta: {
+      title: '项目商机',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectChange/index')
+  },{
+    path: '/projectChangeDetail',
+    name:'project',
+    meta: {
+      title: '项目商机详情',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectChange/modules/detail')
+  },
   
 ];
 export default HDrpManagement;