Browse Source

Merge branch 'mergeBranch' of http://124.70.211.186:3000/zhangqi/yos_web into mergeBranch

zhangqi 2 years ago
parent
commit
bd5f1a4032

+ 1 - 1
src/Form/QuotedPrice/add.vue

@@ -241,7 +241,7 @@ export default {
 
       this.projectList()
     },*/
-    async projectList(){
+    projectList(){
       this.visible = true
     },
     /*收件单位*/

+ 114 - 0
src/HDrpManagement/competitor/detail/modules/competeProjects/components/contacts.vue

@@ -0,0 +1,114 @@
+<template>
+  <div>
+    <el-dialog
+        title="新 增"
+        :visible.sync="dialogProjectVisible"
+        width="35%"
+        append-to-body
+    >
+      <div slot="title" style="font-size: 15px">
+        选择项目
+      </div>
+      <layout_table
+          :layout="tablecols"
+          :data="list"
+          :opwidth="200"
+          :custom="false"
+          :height="320"
+          :checkbox="true"
+          @onRow="onRow">
+      </layout_table>
+      <div style="margin-top:16px;text-align:right">
+        <el-pagination
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+      <div class="dialog-footer">
+        <el-button size="small" @click="onColes" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" class="normal-btn-width btn-warning"  @click="onSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import layout_table from '../components/table'
+export default {
+  name: "contacts",
+  props:["visible","data"],
+  components:{layout_table},
+  data(){
+    return{
+      dialogProjectVisible:false,
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      row:"",
+      params:{
+        "id": "20221022165503",
+        "content": {
+          "sys_enterpriseid": "",
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": "",
+            "workaddress":0
+          }
+        }
+      }
+    }
+  },
+  mounted() {
+    this.dialogProjectVisible = true
+    this.listData()
+  },
+  methods:{
+    async listData(){
+      this.params.content.sys_enterpriseid = this.data.sys_enterpriseid
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+    onColes(){
+      this.dialogProjectVisible = false
+      this.$emit("onContact")
+    },
+    onRow(row){
+      console.log("**********************---------------------")
+      console.log(row)
+      this.row = row
+    },
+    onSubmit(){
+      console.log("**********************---------------------")
+      this.dialogProjectVisible = false
+      this.$emit("onContact",this.row)
+      console.log(this.row)
+    }
+  },
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).competitorContactsTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 116 - 0
src/HDrpManagement/competitor/detail/modules/competeProjects/components/project.vue

@@ -0,0 +1,116 @@
+<template>
+  <div>
+    <el-dialog
+        title="新 增"
+        :visible.sync="dialogProjectVisible"
+        width="35%"
+        append-to-body
+    >
+      <div slot="title" style="font-size: 15px">
+        选择项目
+      </div>
+      <layout_table
+          :layout="tablecols"
+          :data="list"
+          :opwidth="200"
+          :custom="false"
+          :height="320"
+          :checkbox="true"
+          @onRow="onRow">
+      </layout_table>
+      <div style="margin-top:16px;text-align:right">
+        <el-pagination
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+      <div class="dialog-footer">
+        <el-button size="small" @click="onColes" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="warning" class="normal-btn-width btn-warning"  @click="onSubmit">确 定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import layout_table from '../components/table'
+export default {
+  name: "project",
+  props:["visible"],
+  data(){
+    return {
+      dialogProjectVisible:false,
+      bill_id:"",
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      row:"",
+      params:{
+        "id": 20221020143502,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 10,
+          "type":0, //  1:我负责的;2:我参与的;3:我下属负责的;4:我下属参与的
+          "where": {
+            "condition": ""
+          }
+        },
+      }
+    }
+  },
+  components:{layout_table},
+  mounted() {
+    console.log(this.visible)
+    this.dialogProjectVisible = true
+    this.listData()
+  },
+  methods:{
+    async listData(){
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
+    },
+    onColes(){
+      this.dialogProjectVisible = false
+      this.$emit("onProject")
+    },
+    onRow(row){
+      console.log("**********************---------------------")
+      console.log(row)
+      this.row = row
+    },
+    onSubmit(){
+      console.log("**********************---------------------")
+      this.dialogProjectVisible = false
+      this.$emit("onProject",this.row)
+      console.log(this.row)
+    }
+
+  },
+
+  created() {
+    this.tablecols = this.tool.tabelCol(this.$route.name).projectsTable.tablecols
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 87 - 0
src/HDrpManagement/competitor/detail/modules/competeProjects/components/table.vue

@@ -0,0 +1,87 @@
+<template>
+  <div>
+    <el-table ref="tables"
+              :row-class-name="tableClassName"
+              v-loading="loading" highlight-current-row
+              :data="data"
+              :header-cell-style="{background:'#EEEEEE',color:'#333'}" size="mini"
+              :height="height" @row-click="rowClick" style="width:100%"
+               border
+              @select="select"
+      >
+      <el-table-column
+          type="selection"
+          width="55" @handleSelectionChange="handleSelectionChange"  v-if="checkbox">
+      </el-table-column>
+      <el-table-column :show-overflow-tooltip="col.title == '来源' || col.title == '地址' || col.title == '备注'" v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="col.width">
+        <template slot-scope="scope">
+          <!-- 自定义表格显示内容 -->
+          <slot v-if="custom" name="customcol" :column="{data:scope.row,columnname:col.columnname}"></slot>
+          <!-- 否则就是默认 -->
+          <span v-else>{{scope.row[col.columnname]}}</span>
+          <!-- 操作结构内容 -->
+          <slot v-if="col.columnname === 'operation'" name="opreation" :data="scope.row"></slot>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import {mapGetters} from "vuex"
+export default {
+  /*
+    layout:表结构数据;
+    data:表渲染数据;
+    custom:是否启用自定义结构;
+    opwidth:操作列宽度
+  */
+  props:['layout','data','custom','height','checkbox','onRow'],
+  data () {
+    return {
+      list:[],
+      bill_id:""
+    }
+  },
+  computed:{
+    ...mapGetters({
+      loading:'loading'
+    })
+  },
+  methods:{
+    rowClick (row) {
+      this.$emit('rowClick',row)
+    },
+    tableClassName ({row,rowIndex}) {
+      row.index = rowIndex
+    },
+    select(selection, row){
+      console.log(row)
+      this.bill_id = row.id;
+      this.$emit("onRow",row)
+      // 清除 所有勾选项
+      this.$refs.tables.clearSelection()
+      // 当表格数据都没有被勾选的时候 就返回
+      // 主要用于将当前勾选的表格状态清除
+      if(selection.length === 0) return
+      this.$refs.tables.toggleRowSelection(row, true);
+    },
+    handleSelectionChange(val) {
+      if (val.length >= 2){
+        this.$refs.tables.clearSelection();
+      }
+      this.$emit('checkboxCallBack',val)
+    },
+    isCheck(row,rowIndex) {
+
+    }
+  },
+  mounted () {
+    // this.listData()
+  }
+}
+
+</script>
+<style>
+
+</style>

+ 1 - 1
src/HDrpManagement/competitor/detail/modules/competeProjects/list.vue

@@ -81,7 +81,7 @@ export default {
       console.log(res)
       this.list = res.data
       this.total = res.total
-      this.currentPage = res.pageTotal
+      /*this.currentPage = res.pageTotal*/
     },
     handleSizeChange(val) {
       // console.log(`每页 ${val} 条`);

+ 90 - 80
src/HDrpManagement/competitor/detail/modules/competeProjects/modules/add.vue

@@ -10,68 +10,84 @@
         >
       <div class="drawer__panel">
         <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 :model="form" :rules="rules" ref="form" label-width="100px" 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-input v-model="form.projectname" placeholder="请选择项目" @focus="projectList"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
+              <el-form-item label="项目编号" >
+                <el-input v-model="project.projectnum" placeholder="项目编号" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
               <el-form-item label="项目地址" >
-                <el-input v-model="form.address" placeholder="请输入项目地址"></el-input>
+                <el-input v-model="project.address" placeholder="项目详细地址" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
               <el-form-item label="项目等级" >
-                <el-select v-model="form.grade" placeholder="请选择" style="width: 100%">
-                  <el-option
-                      v-for="item in gradeList"
-                      :key="item.value"
-                      :label="item.value"
-                      :value="item.value">
-                  </el-option>
-                </el-select>
+                <el-input v-model="project.grade" placeholder="项目等级" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
               <el-form-item label="项目类型" >
-                <el-select v-model="form.projecttype" placeholder="请选择" style="width: 100%">
-                  <el-option
-                      v-for="item in typeList"
-                      :key="item.value"
-                      :label="item.value"
-                      :value="item.value">
-                  </el-option>
-                </el-select>
+                <el-input v-model="project.projecttype" placeholder="项目类型" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目规模" >
+                <el-input v-model="project.scale" placeholder="项目规模" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目状态" >
+                <el-input v-model="project.status" placeholder="项目状态" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目预算" >
+                <el-input v-model="project.budgetary" placeholder="项目预算" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="预计签约金额" >
+                <el-input v-model="project.signamount_due" placeholder="预计签约金额" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="预计签约时间" >
+                <el-input v-model="project.signdate_due" placeholder="预计签约时间" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
-              <el-form-item label="项目联系人" >
-                <el-input v-model="form.name" placeholder="请输入项目联系人"></el-input>
+            <el-col :span="12">
+              <el-form-item label="联系人" prop="name">
+                <el-input v-model="form.name" placeholder="请选择联系人" @focus="contactsList"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
-              <el-form-item label="联系人手机号" >
-                <el-input v-model="form.phonenumber" placeholder="请输入联系人手机号"></el-input>
+            <el-col :span="12">
+              <el-form-item label="手机号" >
+                <el-input v-model="contacts.phonenumber" placeholder="联系人手机号" disabled></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="24">
               <el-form-item label="是否主要威胁" >
                 <el-radio v-model="form.important" label="1">是</el-radio>
                 <el-radio v-model="form.important" label="0">否</el-radio>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
               <el-form-item label="优势信息" >
                 <el-input type="textarea" autosize v-model="form.advantage" placeholder="请输入优势信息"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
               <el-form-item label="劣势信息" >
                 <el-input type="textarea" autosize v-model="form.inferiority" placeholder="请输入劣势信息"></el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="20">
+            <el-col :span="12">
               <el-form-item label="备注" >
                 <el-input type="textarea" autosize v-model="form.remarks" placeholder="请输入备注信息"></el-input>
               </el-form-item>
@@ -94,16 +110,23 @@
         <el-button size="small" type="warning" @click="onSubmit" class="normal-btn-width btn-warning">确 定</el-button>
       </div>
     </el-dialog>-->
+    <project :visible="visible" v-if="visible" @onProject="onProject"></project>
+    <contact :visible="visibleContacts" v-if="visibleContacts" @onContact="onContact" :data="data"></contact>
   </div>
 </template>
 
 <script>
+import project from '../components/project'
+import contact from '../components/contacts'
 export default {
   name: "add",
   props:["data"],
+  components:{project,contact},
   data(){
     return {
       drawer:false,
+      visible:false,
+      visibleContacts:false,
       form:{
         sa_project_competeid: 0,
         sa_projectid: 0, //工程项目表ID
@@ -112,20 +135,18 @@ export default {
         important: 0, //主要威胁 0/1
         advantage: "",
         inferiority: "" ,
-        sys_enterpriseid:"",
+        remarks:"",
         projectname:"",
-        address:"",
-        projecttype:"",
-        grade:"",
-        name:"",
-        phonenumber:"",
-        remarks:""
+        name:""
       },
-      gradeList:[],
-      typeList:[],
+      project:{},
+      contacts:{},
       rules:{
         projectname: [
-          { required: true, message: '项目名称不能为空', trigger: 'blur' },
+          { required: true, message: '项目名称不能为空', trigger: 'change' },
+        ],
+        name: [
+          { required: true, message: '联系人不能为空', trigger: 'change' },
         ],
       }
     }
@@ -133,59 +154,48 @@ export default {
   methods:{
     onshow(){
       console.log(this.data)
-      this.querygrade()
-      this.queryType()
       this.drawer = true
     },
     onSubmit(){
       this.form.sa_competitorid = this.data.sa_competitorid
-      this.form.sys_enterpriseid = this.data.sys_enterpriseid
+      console.log(this.form)
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({
           "id": 20221019165802,
-          "content": this.form,
+          "content": this.form
         })
         this.tool.showMessage(res,()=>{
           this.$emit('insertSuccess')
-          this.dialogFormVisible = false
+          this.drawer = false
           this.$refs['form'].resetFields()
         })
       })
     },
-    /*项目等级*/
-    async querygrade(){
-      const res = await this.$api.requested({
-        "classname": "sysmanage.develop.optiontype.optiontype",
-        "method": "optiontypeselect",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 20,
-          "typename": "projectgrade",
-          "parameter": {
-            "siteid": "YOSTEST2"
-          }
-        }
-      })
-      console.log(res)
-      this.gradeList = res.data
+    projectList(){
+      this.visible = true
     },
-    /*项目类型*/
-    async queryType(){
-      const res = await this.$api.requested({
-        "classname": "sysmanage.develop.optiontype.optiontype",
-        "method": "optiontypeselect",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 20,
-          "typename": "projecttype",
-          "parameter": {
-            "siteid": "YOSTEST2"
-          }
-        }
-      })
-      console.log(res)
-      this.typeList = res.data
+    contactsList(){
+      console.log("------------------------")
+      console.log(this.data)
+      this.visibleContacts = true
+    },
+    onProject(data){
+      this.visible = false
+      console.log("获取")
+      console.log(data)
+      this.form.sa_projectid = data.sa_projectid
+      this.form.projectname = data.projectname
+      this.project = data
+      console.log("项目详细信息")
+      console.log(this.project)
+    },
+    onContact(data){
+      this.visibleContacts = false
+      this.form.name = data.name
+      console.log(data)
+      this.contacts = data
+      this.form.contactsid = data.contactsid
     }
   },
   mounted() {

+ 147 - 118
src/HDrpManagement/competitor/detail/modules/competeProjects/modules/edit.vue

@@ -1,164 +1,193 @@
 <template>
   <div class="inline-16">
     <el-button size="small" type="text" @click="onshow">编 辑</el-button>
-    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="900px">
-      <div slot="title" style="font-size: 15px">
-        修改竞争项目
+    <el-drawer
+        title="关联项目商机"
+        :visible.sync="drawer"
+        size="40%"
+        direction="rtl"
+        append-to-body
+    >
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" :rules="rules" ref="form" label-width="100px" label-position="left" size="mini">
+            <el-col :span="12">
+              <el-form-item label="项目名称" prop="projectname">
+                <el-input v-model="form.projectname" placeholder="请选择项目" @focus="projectList"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目编号" >
+                <el-input v-model="form.projectnum"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目地址" >
+                <el-input v-model="form.address"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目等级" >
+                <el-input v-model="form.grade"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目类型" >
+                <el-input v-model="form.projecttype"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目规模" >
+                <el-input v-model="form.scale"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目状态" >
+                <el-input v-model="form.status"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="项目预算" >
+                <el-input v-model="form.budgetary"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="预计签约金额" >
+                <el-input v-model="form.signamount_due" disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="预计签约时间" >
+                <el-input v-model="form.signdate_due"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="联系人" prop="name">
+                <el-input v-model="form.name" placeholder="请选择联系人" @focus="contactsList"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="手机号" >
+                <el-input v-model="form.phonenumber"  disabled></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="是否主要威胁" >
+                <el-radio v-model="form.important" label="1">是</el-radio>
+                <el-radio v-model="form.important" label="0">否</el-radio>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="优势信息" >
+                <el-input type="textarea" autosize v-model="form.advantage" placeholder="请输入优势信息"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="劣势信息" >
+                <el-input type="textarea" autosize v-model="form.inferiority" placeholder="请输入劣势信息"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="备注" >
+                <el-input type="textarea" autosize v-model="form.remarks" placeholder="请输入备注信息"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
       </div>
-      <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="projectname">
-              <el-input v-model="form.projectname" placeholder="请输入项目名称"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="项目地址" >
-              <el-input v-model="form.address" placeholder="请输入项目地址"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="项目等级" >
-              <el-select v-model="form.grade" placeholder="请选择" style="width: 100%">
-                <el-option
-                    v-for="item in gradeList"
-                    :key="item.value"
-                    :label="item.value"
-                    :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="项目类型" >
-              <el-select v-model="form.projecttype" placeholder="请选择" style="width: 100%">
-                <el-option
-                    v-for="item in typeList"
-                    :key="item.value"
-                    :label="item.value"
-                    :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="项目联系人" >
-              <el-input v-model="form.name" placeholder="请输入项目联系人"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="联系人手机号" >
-              <el-input v-model="form.phonenumber" placeholder="请输入联系人手机号"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="是否主要威胁" >
-              <el-radio v-model="form.important" label="1" >是</el-radio>
-              <el-radio v-model="form.important" label="0" >否</el-radio>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="优势信息" >
-              <el-input type="textarea" autosize v-model="form.advantage" placeholder="请输入优势信息"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="劣势信息" >
-              <el-input type="textarea" autosize v-model="form.inferiority" placeholder="请输入劣势信息"></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="20">
-            <el-form-item label="备注" >
-              <el-input type="textarea" autosize 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 class="fixed__btn__panel">
+        <el-button size="small" @click="drawer = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
       </div>
-    </el-dialog>
+    </el-drawer>
+    <project :visible="visible" v-if="visible" @onProject="onProject"></project>
+    <contact :visible="visibleContacts" v-if="visibleContacts" @onContact="onContact" :data="data"></contact>
   </div>
 </template>
 
 <script>
+import project from '../components/project'
+import contact from '../components/contacts'
 export default {
   name: "edit",
   props:["data"],
+  components:{project,contact},
   data(){
     return {
+      drawer:false,
+      visible:false,
       dialogFormVisible:false,
+      visibleContacts:false,
       form:{},
-      gradeList:[],
-      typeList:[],
       rules:{
         projectname: [
           { required: true, message: '项目名称不能为空', trigger: 'blur' },
         ],
-      }
+        name: [
+          { required: true, message: '联系人不能为空', trigger: 'change' },
+        ],
+      },
+      project:{},
+      contacts:{},
     }
   },
   methods:{
     onshow(){
-      console.log(this.data)
-      this.querygrade()
-      this.queryType()
       this.form = this.data
+      console.log("输出表单数据")
+      console.log(this.form)
       if (this.form.important === 0){
         this.form.important = '0'
       }else if (this.form.important === 1){
         this.form.important = '1'
       }
-      this.dialogFormVisible = true
+      this.drawer = true
     },
     onSubmit(){
+      this.form.sa_competitorid = this.data.sa_competitorid
+      if (this.form.important === "0"){
+        this.form.important = 0
+      }else if (this.form.important === "1"){
+        this.form.important = 1
+      }
+      console.log(this.form)
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({
           "id": 20221019165802,
-          "content": this.form,
+          "content": this.form
         })
         this.tool.showMessage(res,()=>{
-          this.$emit('updateSuccess')
-          this.dialogFormVisible = false
+          this.$emit('insertSuccess')
+          this.drawer = false
           this.$refs['form'].resetFields()
         })
       })
     },
-    /*项目等级*/
-    async querygrade(){
-      const res = await this.$api.requested({
-        "classname": "sysmanage.develop.optiontype.optiontype",
-        "method": "optiontypeselect",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 20,
-          "typename": "projectgrade",
-          "parameter": {
-            "siteid": "YOSTEST2"
-          }
-        }
-      })
-      console.log(res)
-      this.gradeList = res.data
+    projectList(){
+      this.visible = true
     },
-    /*项目类型*/
-    async queryType(){
-      const res = await this.$api.requested({
-        "classname": "sysmanage.develop.optiontype.optiontype",
-        "method": "optiontypeselect",
-        "content": {
-          "pageNumber": 1,
-          "pageSize": 20,
-          "typename": "projecttype",
-          "parameter": {
-            "siteid": "YOSTEST2"
-          }
-        }
-      })
-      console.log(res)
-      this.typeList = res.data
+    contactsList(){
+      console.log("------------------------")
+      console.log(this.data)
+      this.visibleContacts = true
+    },
+    onProject(data){
+      this.visible = false
+      console.log("获取")
+      console.log(data)
+      this.form.sa_projectid = data.sa_projectid
+      this.form.projectname = data.projectname
+      this.project = data
+      console.log("项目详细信息")
+      console.log(this.project)
+    },
+    onContact(data){
+      this.visibleContacts = false
+      this.form.name = data.name
+      console.log(data)
+      this.contacts = data
+      this.form.contactsid = data.contactsid
     }
   }
 }

+ 3 - 6
src/HDrpManagement/competitor/detail/modules/competeProjects/modules/toVoid.vue

@@ -1,14 +1,11 @@
 <template>
   <div class="inline-16">
-    <el-popconfirm
-        title="确定要作废该项目嘛?"
-        @confirm="toVoidRow()">
-      <el-button slot="reference" size="small" type="text">作 废</el-button>
-    </el-popconfirm>
+    <el-button slot="reference" size="small" type="text" @click="dialogToVoidVisible = true">作 废</el-button>
     <el-dialog
         :visible.sync="dialogToVoidVisible"
-        width="900px"
+        width="25%"
         @close="dialogToVoidVisible = false"
+        append-to-body
     >
       <div slot="title" style="font-size: 15px">
         作废竞争项目

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

@@ -86,7 +86,7 @@
       <quotation />
     </div>
     <div slot="slot5" class="container normal-panel">
-      <Rival />
+      <Rival v-if="mainData" :data="mainData" />
     </div>
   </basicDetails>
 </template>

+ 55 - 25
src/HDrpManagement/projectChange/modules/modules/rival/index.vue

@@ -1,39 +1,50 @@
 
 <template>
   <div>
-    <basicLayout 
-      ref="basicLayout" 
-      formPath="projectChange/rival" 
-      tableName="rivalTable" 
-      idName="sa_competitorid" 
-      :apiId="{query:20221027165402,del:''}"
-      :options="options"
-      @listCreate="list">
-      <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>
+    <tableLayout :layout="tablecols" :data="list" :opwidth="200" :custom="true"  height="calc(100vh - 340px)" >
+      <template v-slot:customcol="scope">
+        <p >{{scope.column.data[scope.column.columnname]}}</p>
       </template>
-      <template v-slot:tbOpreation="scope">
-        <!-- <delete-btn 
-          ref="del" 
-          :id="scope.data.data.sa_competitorid" 
-          @deleteCreate="$refs.del.param.content.deletereason='无'" 
-          @deleteSuccess="$refs.basicLayout.listData()" 
-          nameId="20221018164202" 
-          nameKey="sa_competitorids" 
-        ></delete-btn> -->
-        <!-- <el-button size="mini" type="text" class="inline-16" @click="$router.push({path:'/rivalDetail',query:{id:scope.data.data.sa_competitorid,rowindex:scope.data.data.rowindex}})">详 情</el-button> -->
+      <template v-slot:opreation="scope">
+
       </template>
-    </basicLayout>
+      <div style="margin-top:16px;text-align:right">
+        <el-pagination
+            background
+            small
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="currentPage"
+            :page-size="params.content.pageSize"
+            layout="total, prev, pager, next, jumper"
+            :total="total">
+        </el-pagination>
+      </div>
+    </tableLayout>
   </div>
 </template>
 
 <script>
 export default {
+  props:["data"],
   data () {
     return {
       options:[],
+      tablecols:[],
+      list:[],
+      total:0,
+      currentPage:0,
+      params:{
+        "id": 20221027165402,
+        "content": {
+          "sa_projectid":"",
+          "pageNumber": 1,
+          "pageSize": 20,
+          "where": {
+            "condition": ""
+          }
+        }
+      }
     }
   },
   provide () {
@@ -43,12 +54,31 @@ export default {
   },
   components:{},
   methods:{
-    list (param) {
+    /*list (param) {
       param.content.sa_projectid = this.$route.query.id
+    },*/
+    async listData(){
+      this.params.content.sa_projectid = this.data.sa_projectid
+      const res = await this.$api.requested(this.params)
+      this.list = res.data
+      this.total = res.total
+    },
+    handleSizeChange(val) {
+      // console.log(`每页 ${val} 条`);
+      this.params.content.pageSize = val
+      this.listData()
+    },
+    handleCurrentChange(val) {
+      // console.log(`当前页: ${val}`);
+      this.params.content.pageNumber = val
+      this.listData()
     },
   },
+  mounted() {
+    this.listData()
+  },
   created() {
-
+    this.tablecols = this.tool.tabelCol(this.$route.name).rivalTable.tablecols
   }
 }