codeMan před 2 roky
rodič
revize
1b45452cfa

+ 92 - 0
src/Form/projectManage/add.vue

@@ -0,0 +1,92 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="dialogFormVisible = true">新 增</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        新增账户类型
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="110px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="项目模板名称" prop="stagetempname">
+              <el-input v-model="form.stagetempname" placeholder="项目模板名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-input v-model="form.projecttype" placeholder="项目类型"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remarks">
+              <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item>
+              <div style="display:flex">
+                <el-checkbox :true-label="1" :false-label="0" v-model="form.isused" checked="checked">启用</el-checkbox>
+                <el-checkbox :true-label="1" :false-label="0" v-model="form.locked">锁定</el-checkbox>
+              </div>
+            </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",
+  data(){
+    return {
+      dialogFormVisible:false,
+      isordercheck:true,
+      isusedcheck:false,
+      form:{
+        "sa_projstagetempid": 0,
+        "stagetempname":"",
+        "remarks":"",
+        "projecttype":"",
+        "isused":1,
+        "locked":0
+      },
+      rules:{
+        stagetempname:[
+          { required: true, message: '请输入模板名称', trigger: 'blur'},
+        ],
+        projecttype:[
+          { 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": "20221019085704",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 95 - 0
src/Form/projectManage/edit.vue

@@ -0,0 +1,95 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="editBtn">编辑</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        新增账户类型
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="110px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="项目模板名称" prop="stagetempname">
+              <el-input v-model="form.stagetempname" placeholder="项目模板名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="项目类型" prop="projecttype">
+              <el-input v-model="form.projecttype" placeholder="项目类型"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="备注" prop="remarks">
+              <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item>
+              <div style="display:flex">
+                <el-checkbox :true-label="1" :false-label="0" v-model="form.isused" checked="checked">启用</el-checkbox>
+                <el-checkbox :true-label="1" :false-label="0" v-model="form.locked">锁定</el-checkbox>
+              </div>
+            </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'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sa_projstagetempid": 0,
+        "stagetempname":"",
+        "remarks":"",
+        "projecttype":"",
+        "isused":1,
+        "locked":0
+      },
+      rules:{
+        stagetempname:[
+          { required: true, message: '请输入模板名称', trigger: 'blur'},
+        ],
+        projecttype:[
+          { required: true, message: '请输入项目类型', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  methods:{
+    editBtn () {
+      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": "20221019085704",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 0 - 4
src/HDrpManagement/Creditbilladj/modules/details.vue

@@ -61,10 +61,6 @@ export default {
         }
       })
       this.mainData = res.data
-      console.log(this.mainData);
-      
-      this.$refs['details'].param.content.containssub = 1
-      this.$refs['details'].param.content.sa_saleareaids = [this.mainData.sa_saleareaid]
       this.changeDataStructure()
     },
     // 监听切换数据,上一页,下一页

+ 2 - 5
src/HDrpManagement/privateCustomer/modules/detail.vue

@@ -79,10 +79,9 @@ export default {
         }
       })
       this.mainData = res.data
+      this.$refs.details.param.content.isExport = false
       console.log(this.mainData);
       this.getDataTag(this.mainData.sa_customersid)
-      this.$refs['details'].param.content.containssub = 1
-      this.$refs['details'].param.content.sa_saleareaids = [this.mainData.sa_saleareaid]
       this.changeDataStructure()
     },
     /* 获取数据标签 */
@@ -95,12 +94,10 @@ export default {
         }
       })
       this.tagObj = res.data
-      console.log(this.tag);
-      
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex) {
-      this.$router.replace({path:'/creditbilladjDetail',query:{id:id,rowindex:rowindex}})
+      this.$router.replace({path:'/PrivateCustomerDetail',query:{id:id,rowindex:rowindex}})
       this.queryMainData(id)
     },
     changeDataStructure () {

+ 51 - 0
src/HDrpManagement/projectManage/index.vue

@@ -0,0 +1,51 @@
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      formPath="projectManage" 
+      tableName="projectPanelTable" 
+      idName="sa_projstagetempid" 
+      :apiId="{query:20221019085604,del:20221019085804}" 
+      :options="options">
+      <div slot="custom"></div>
+      <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname === 'isorder'">
+          <span v-if="scope.data.column.data[scope.data.column.columnname] === 1">是</span>
+          <span v-else>否</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'isused'">
+          <span v-if="scope.data.column.data[scope.data.column.columnname] === 1">是</span>
+          <span v-else>否</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname === 'locked'">
+          <span v-if="scope.data.column.data[scope.data.column.columnname] === 1">是</span>
+          <span v-else>否</span>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <stage-detail class="inline-16" :data="scope.data.data"/>
+        <delete-btn v-if="tool.checkAuth($route.name,'delete')" :id="scope.data.data.sa_projstagetempid" @deleteSuccess="$refs.basicLayout.listData()" nameId="20221019085804" nameKey="sa_projstagetempids"/>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import stageDetail from './modules/stageDetail/index'
+export default {
+  components:{stageDetail},
+  name: "index",
+  data() {
+    return {
+      options:[]
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 87 - 0
src/HDrpManagement/projectManage/modules/stageDetail/add.vue

@@ -0,0 +1,87 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="addBtn">新 增</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        新增项目阶段
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="阶段名称" prop="stagename">
+              <el-input v-model="form.stagename" placeholder="请输入阶段名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="阶段排序" prop="sequence">
+              <el-input v-model="form.sequence" placeholder="请输入阶段排序"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="阶段说明" prop="remarks">
+              <el-input 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",
+  props:['data'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      currentData:'',
+      form:{
+        "sa_projstagetempid": 0,
+        "sa_projstagetemp_stageid": 0,
+        "stagename": "",
+        "remarks": "",
+        "sequence": ""
+      },
+      rules:{
+        stagename:[
+          { required: true, message: '请输入阶段名称', trigger: 'blur'},
+        ],
+        sequence:[
+          { required: true, message: '请输入排序', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    addBtn () {
+      this.dialogFormVisible = true
+      this.currentData = this.data
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        this.form.sa_projstagetempid = this.currentData.sa_projstagetempid
+        const res = await this.$api.requested({
+          "id": "20221019090104",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 85 - 0
src/HDrpManagement/projectManage/modules/stageDetail/edit.vue

@@ -0,0 +1,85 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="addBtn">编辑</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        编辑项目阶段
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="阶段名称" prop="stagename">
+              <el-input v-model="form.stagename" placeholder="请输入阶段名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="阶段排序" prop="sequence">
+              <el-input v-model="form.sequence" placeholder="请输入阶段排序"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="阶段说明" prop="remarks">
+              <el-input 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",
+  props:['data'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sa_projstagetempid": 0,
+        "sa_projstagetemp_stageid": 0,
+        "stagename": "",
+        "remarks": "",
+        "sequence": ""
+      },
+      rules:{
+        stagename:[
+          { required: true, message: '请输入阶段名称', trigger: 'blur'},
+        ],
+        sequence:[
+          { required: true, message: '请输入排序', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    addBtn () {
+      this.dialogFormVisible = true
+      this.form = Object.assign({},this.form,this.data)
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221019090104",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 119 - 0
src/HDrpManagement/projectManage/modules/stageDetail/index.vue

@@ -0,0 +1,119 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="detailBtn">明细</el-button>
+    <el-dialog title="新 增" :visible.sync="dialogFormVisible" width="65%">
+      <div slot="title" style="font-size: 15px">
+        项目阶段明细
+      </div>
+      <el-input placeholder="请输入搜索内容" v-model="params.content.where.condition" @keyup.native.enter="getStageDetail(params.content.pageNumber = 1)" @clear="getStageDetail(params.content.pageNumber = 1)" style="width:350px" size="mini" class="input-with-select" clearable>
+        <add slot="append" :data="data" @onSuccess="getStageDetail" v-if="tool.checkAuth($route.name,'insert')"/>
+      </el-input>
+       <tableLayout style="margin-top:16px" v-if="stageDetail" :layout="tablecols" :data="stageDetail" :custom="true" height="50vh">
+         <template v-slot:customcol="scope">
+           <div v-if="scope.column.columnname == 'mutextags'">
+             <span v-if="scope.column.data[scope.column.columnname].length > 0">
+               <span v-for="(item,index) in scope.column.data[scope.column.columnname]" :key="index">
+                 {{item.tag}}
+               </span>
+             </span>
+             <span v-else>--</span>
+           </div>
+           <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
+         </template>
+         <template v-slot:opreation="scope">
+          <task class="inline-16" :data="scope.data"/>
+          <edit v-if="tool.checkAuth($route.name,'update')" class="inline-16" :data="scope.data" @onSuccess="getStageDetail()"/>
+          <delete-btn v-if="tool.checkAuth($route.name,'delete')" :id="scope.data.sa_projstagetemp_stageid" @deleteSuccess="getStageDetail()" nameId="20221019090204" nameKey="sa_projstagetemp_stageids"/>
+         </template>
+       </tableLayout>
+      <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 add from './add'
+import edit from './edit'
+import task from './modules/task/index'
+export default {
+  name: "detail",
+  props:['data'],
+  components:{add,task,edit},
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sa_projstagetempid": 0,
+        "sa_projstagetemp_stageid": 0,
+        "stagename": "",
+        "remarks": "",
+        "sequence": "",
+      },
+      params: {
+        "id":"20221019090004",
+        "content": {
+            "nocache":true,
+            "pageNumber": 1,
+            "pageSize": 999999,
+            "sa_projstagetempid":0,
+            "where":{
+                "stagename":"",
+                "remarks":"",
+                "projecttype":"",
+                "condition":""
+
+            }
+        }
+      },
+      tablecols:'',
+      stageDetail:'',
+      currentData:'',
+      rules:{
+        accountno:[
+          { required: true, message: '输入账户编号', trigger: 'blur'},
+        ],
+        accountname:[
+          { required: true, message: '输入账户名称', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name).projectStageTable.tablecols
+  },
+  methods:{
+    detailBtn () {
+      this.dialogFormVisible = true
+      this.currentData = this.data
+      this.getStageDetail()
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221019090104",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    async getStageDetail () {
+      this.params.content.sa_projstagetempid = this.currentData.sa_projstagetempid
+      let res = await this.$api.requested(this.params)
+      this.stageDetail = res.data
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 98 - 0
src/HDrpManagement/projectManage/modules/stageDetail/modules/task/add.vue

@@ -0,0 +1,98 @@
+<template>
+  <div>
+    <el-button size="mini" type="primary" @click="addBtn">新 增</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        新增任务
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="任务名称" prop="workname">
+              <el-input v-model="form.workname" placeholder="请输任务名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="任务排序" prop="sequence">
+              <el-input v-model="form.sequence" placeholder="请输任务排序"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="分值比重" prop="score">
+              <el-input v-model="form.score" placeholder="请输分值比重"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <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",
+  props:['data'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      currentData:'',
+      form:{
+        "sa_projstagetemp_stageid": 0,
+        "sa_projstagetempid":0,
+        "sa_projstagetemp_workid":0,
+        "workname":"",
+        "remarks":"",
+        "sequence":"",
+        "score":""
+      },
+      rules:{
+        workname:[
+          { required: true, message: '请输入任务名', trigger: 'blur'},
+        ],
+        sequence:[
+          { required: true, message: '请输入排序', trigger: 'blur'},
+        ],
+        score:[
+          { required: true, message: '请输入分值比重', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    addBtn () {
+      this.dialogFormVisible = true
+      this.currentData = this.data
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        this.form.sa_projstagetemp_stageid = this.currentData.sa_projstagetemp_stageid
+        this.form.sa_projstagetempid = this.currentData.sa_projstagetempid
+        const res = await this.$api.requested({
+          "id": "20221019090504",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 95 - 0
src/HDrpManagement/projectManage/modules/stageDetail/modules/task/edit.vue

@@ -0,0 +1,95 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="addBtn">编辑</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="500px">
+      <div slot="title" style="font-size: 15px">
+        编辑任务
+      </div>
+      <el-row :gutter="20">
+        <el-form :model="form" :rules="rules" ref="form" label-width="90px" label-position="left" size="mini">
+          <el-col :span="24">
+            <el-form-item label="任务名称" prop="workname">
+              <el-input v-model="form.workname" placeholder="请输任务名称"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="任务排序" prop="sequence">
+              <el-input v-model="form.sequence" placeholder="请输任务排序"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <el-form-item label="分值比重" prop="score">
+              <el-input v-model="form.score" placeholder="请输分值比重"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="24">
+            <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",
+  props:['data'],
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+        "sa_projstagetemp_stageid": 0,
+        "sa_projstagetempid":0,
+        "sa_projstagetemp_workid":0,
+        "workname":"",
+        "remarks":"",
+        "sequence":"",
+        "score":""
+      },
+      rules:{
+        workname:[
+          { required: true, message: '请输入任务名', trigger: 'blur'},
+        ],
+        sequence:[
+          { required: true, message: '请输入排序', trigger: 'blur'},
+        ],
+        score:[
+          { required: true, message: '请输入分值比重', trigger: 'blur'},
+        ],
+      }
+    }
+  },
+  methods:{
+    addBtn () {
+      this.dialogFormVisible = true
+      this.form = Object.assign({},this.form,this.data)
+    },
+    onSubmit(){
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221019090504",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 132 - 0
src/HDrpManagement/projectManage/modules/stageDetail/modules/task/index.vue

@@ -0,0 +1,132 @@
+<template>
+  <div>
+    <el-button size="mini" type="text" @click="detailBtn">明细</el-button>
+    <el-dialog title="新 增" append-to-body :visible.sync="dialogFormVisible" width="65%">
+      <div slot="title" style="font-size: 15px">
+        阶段任务明细
+      </div>
+      <el-input placeholder="请输入搜索内容" v-model="params.content.where.condition" @keyup.native.enter="getStageDetail(params.content.pageNumber = 1)" @clear="getStageDetail(params.content.pageNumber = 1)" style="width:350px" size="mini" class="input-with-select" clearable>
+        <add slot="append" :data="data" @onSuccess="getStageDetail" v-if="tool.checkAuth($route.name,'insert')"/>
+      </el-input>
+       <tableLayout style="margin-top:16px" v-if="stageDetail" :layout="tablecols" :data="stageDetail" :custom="true" height="50vh">
+         <template v-slot:customcol="scope">
+           <div v-if="scope.column.columnname == 'mutextags'">
+             <span v-if="scope.column.data[scope.column.columnname].length > 0">
+               <span v-for="(item,index) in scope.column.data[scope.column.columnname]" :key="index">
+                 {{item.tag}}
+               </span>
+             </span>
+             <span v-else>--</span>
+           </div>
+           <div v-else>{{scope.column.data[scope.column.columnname]}}</div>
+         </template>
+         <template v-slot:opreation="scope">
+          <edit class="inline-16" @onSuccess="getStageDetail()" :data="scope.data"/>
+          <delete-btn :id="scope.data.sa_projstagetemp_workid" @deleteSuccess="getStageDetail()" nameId="20221019090604" nameKey="sa_projstagetemp_workids"/>
+         </template>
+       </tableLayout>
+      <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 add from './add'
+import edit from './edit'
+import { log } from '@antv/g2plot/lib/utils'
+export default {
+  name: "detail",
+  props:['data'],
+  components:{add,edit},
+  data(){
+    return {
+      dialogFormVisible:false,
+      form:{
+       
+      },
+      params: {
+        "id":20221019090404,
+        "content": {
+            "pageNumber": 1,
+            "pageSize": 99999,
+            "sa_projstagetempid":0,
+            "sa_projstagetemp_stageid":0,
+            "where":{
+                "stagename":"",
+                "workname":"",
+                "remarks":"",
+                "projecttype":"",
+                "condition":""
+            }
+        }
+      },
+      tablecols:'',
+      stageDetail:'',
+      currentData:'',
+      rules:{
+        accountno:[
+          { required: true, message: '输入账户编号', trigger: 'blur'},
+        ],
+        accountname:[
+          { required: true, message: '输入账户名称', trigger: 'blur'}
+        ]
+      }
+    }
+  },
+  created () {
+    this.tablecols = this.tool.tabelCol(this.$route.name).projectStageTaskTable.tablecols
+  },
+  methods:{
+    detailBtn () {
+      this.dialogFormVisible = true
+      this.currentData = this.data
+      this.getStageDetail()
+    },
+    onSubmit(){
+      console.log(this.form)
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        const res = await this.$api.requested({
+          "id": "20221008134703",
+          "version":1,
+          "content": this.form
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.$refs['form'].resetFields();
+          this.dialogFormVisible = false
+        })
+      })
+    },
+    async deleteRow (data) {
+      console.log(data);
+      let res = await this.$api.requested({
+        "id": 20221013104601,
+        "content": {
+          "sys_systemtagid": this.data.sys_systemtagid,
+          "tags":[data.tag]
+        }
+      })
+      console.log(res);
+      this.tool.showMessage(res,() => {
+        this.getStageDetail()
+      })
+    },
+    async getStageDetail () {
+      this.params.content.sa_projstagetempid = this.currentData.sa_projstagetempid
+      this.params.content.sa_projstagetemp_stageid = this.currentData.sa_projstagetemp_stageid
+      let res = await this.$api.requested(this.params)
+      this.stageDetail = res.data
+      console.log(this.stageDetail);
+      
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

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

@@ -25,7 +25,7 @@
         </div>
       </template>
       <template v-slot:tbOpreation="scope">
-        <status-change class="inline-16" @onSuccess="$refs.basicLayout.listData()" :data="scope.data.data" />
+        <status-change class="inline-16" @deleteSuccess="$refs.basicLayout.listData()" :data="scope.data.data" />
         <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>

+ 21 - 12
src/HDrpManagement/publicCustomer/modules/detail.vue

@@ -8,10 +8,11 @@
     :mainAreaData="mainAreaData" 
     :turnPageId="20221011133602" 
     idname="sa_customersid"
-    :tags="[]"
+    tags=""
     @pageChange="pageChange"
     @onEditSuccess="queryMainData($route.query.id)">
     <div slot="tags">
+    <tagPanl slot="tags" :data="tagObj" :id="mainData.sa_customersid" @onSuccess="queryMainData"/>
       <!-- 使用此插槽可不传[tags] -->
       <!-- :tabs="['经销商团队','代理区域','营销类别','账户余额']" -->
     </div>
@@ -35,9 +36,6 @@
 </template>
 
 <script>
-// import salescope from './modules/salescope/list'
-// import SaleClass from './modules/saleclass/index'
-// import accountMoney from './modules/accountMoney/index'
 export default {
   data () {
     return {
@@ -46,7 +44,8 @@ export default {
       customerType:'',
       customerLead:'',
       arealist:[],
-      publicList:[]
+      publicList:[],
+      tagObj:{},
     }
   },
   provide () {
@@ -58,9 +57,7 @@ export default {
     }
   },
   components:{
-    // salescope,
-    // SaleClass,
-    // accountMoney
+
   },
   methods:{
     /* 获取系统选项数据 */
@@ -95,6 +92,19 @@ export default {
     })
       this.publicList = res.data
     },
+    /* 获取数据标签 */
+    async getDataTag (id) {
+      let res = await this.$api.requested({
+        "id": 20220929085401,
+        "content": {
+            "ownertable":"sa_customers",
+            "ownerid":id
+        }
+      })
+      this.tagObj = res.data
+      console.log(this.tagObj);
+      
+    },
     async queryMainData (id) {
       const res = await this.$api.requested({
         "id": "20221011133502",
@@ -103,16 +113,15 @@ export default {
             "sa_customersid":this.$route.query.id
         }
       })
+      this.$refs.details.param.content.isExport = false
       this.mainData = res.data
       console.log(this.mainData);
-      
-      this.$refs['details'].param.content.containssub = 1
-      this.$refs['details'].param.content.sa_saleareaids = [this.mainData.sa_saleareaid]
+      this.getDataTag(this.mainData.sa_customersid)
       this.changeDataStructure()
     },
     // 监听切换数据,上一页,下一页
     pageChange (id,rowindex) {
-      this.$router.replace({path:'/creditbilladjDetail',query:{id:id,rowindex:rowindex}})
+      this.$router.replace({path:'/PublicCustomerDetail',query:{id:id,rowindex:rowindex}})
       this.queryMainData(id)
     },
     changeDataStructure () {

+ 1 - 0
src/HDrpManagement/saleclass/components/edit.vue

@@ -93,6 +93,7 @@ export default {
           })
           this.tool.showMessage(res,() => {
             this.$emit('addSuccess')
+            this.$refs.ruleForm.resetFields()
             this.dialogVisible = false
           })
         }

+ 2 - 2
src/HDrpManagement/unit/components/list.vue

@@ -3,7 +3,7 @@
     <el-row style="display:flex;justify-content:space-between">
       <el-col :span="11">
         <p class="normal-title normal-margin">计量单位</p>
-        <slot name="unitAdd"/>
+        <slot name="unitAdd" :data="unitList"/>
         <tableLayout v-if="unitList" :layout="tablecols1" :data="unitList" :custom="false" height="70vh">
           <template v-slot:opreation="scope">
               <div style="display:flex">
@@ -15,7 +15,7 @@
       </el-col>
       <el-col :span="11">
         <p class="normal-title normal-margin">计量单位组</p>
-        <slot name="unitGroupAdd"/>
+        <slot name="unitGroupAdd" :data="unitList"/>
         <tableLayout v-if="unitGroupList" :layout="tablecols2" :data="unitGroupList" :custom="false" height="70vh">
           <template v-slot:opreation="scope">
               <div style="display:flex">

+ 8 - 24
src/HDrpManagement/unit/index.vue

@@ -24,13 +24,14 @@
         />
       </template>
       <!--单位计量组-->
-      <unit-group-add 
-        type="add" 
-        slot="unitGroupAdd" 
-        @unitAddSuccess="unitGroupAddSuccess" 
-        :allUnit="unitList" 
-        v-if="tool.checkAuth($route.name,'insert')" 
-      />
+      <template v-slot:unitGroupAdd="scope">
+        <unit-group-add 
+          type="add" 
+          @unitAddSuccess="unitGroupAddSuccess" 
+          :allUnit="scope.data" 
+          v-if="tool.checkAuth($route.name,'insert')" 
+        />
+      </template>
       <template v-slot:unitGroupEdit="scope">
         <unit-group-add 
           type="edit" 
@@ -60,7 +61,6 @@ export default {
   name: '',
   data() {
     return {
-      unitList:''
     };
   },
   components:{list,Del,unitAdd,unitGroupAdd},
@@ -69,7 +69,6 @@ export default {
   watch:{
   },
   created() {
-    this.getUnit()
   },
   methods: {
     /* 计量单位增加成功 */
@@ -88,21 +87,6 @@ export default {
     unitGroupDelSuccess() {
       this.$refs.list.getUnitGroup()
     },
-    /* 获取单位列表 */
-    async getUnit() {
-      let res = await this.$api.requested({
-        "id": "20220922084803",
-        "version":1,
-        "content": {
-          "nocache":true,
-          "where":{
-              "condition":""
-          }
-        }
-      })
-      this.unitList = res.data
-      console.log(res)
-    },
   },
 };
 </script>

+ 1 - 1
src/components/delete_btn/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div style="display:inline;margin:0 16px">
+  <div class="inline-16">
     <el-popconfirm title="确定删除当前产品吗?" @confirm="deleteRow()">
       <el-button slot="reference" size="small" type="text">删 除</el-button>
     </el-popconfirm>

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

@@ -67,7 +67,6 @@ export default {
       param:{
         "id": '',
         "content": {
-          "isExport":false,
           "pageNumber": 1,
           "pageSize": 1,
           "where": {

+ 20 - 11
src/components/tagPanl/tagPanl.vue

@@ -9,10 +9,10 @@
         <i class="el-icon-edit" style="color:#FA8C16;font-size:12px"></i><span class="text">添加</span>
       </div>
     </div>
-    <el-dialog title="标签" :visible.sync="dialogFormVisible" width="30%">
+    <el-dialog title="标签" :visible.sync="dialogFormVisible" width="30%" v-if="tagData">
       <div class="header">
         <div class="left">请选择添加的标签</div>
-        <div class="right" v-if="tagData">已选{{`${tagData.datatag.length}/${tagData.option.length}`}}</div>
+        <div class="right">已选{{`${tagData.datatag.length}/${tagData.option.length}`}}</div>
       </div>
       <div class="tag" v-if="data">
         <div 
@@ -72,17 +72,25 @@ export default {
   },
   methods: {
     addTag () {
+      if(this.data.option.length == 0) return this.$message({
+        message:'暂无标签可加',
+        title:'提示',
+        type:'warning'
+      })
       this.tagData = JSON.parse(JSON.stringify(this.data))
       this.tagData.datatag = this.data.datatag.map(item => {
+        let temp = this.data.option.find(item2 => item2.tag == item)
         return {
-          tag:item,
-          mutextag:this.data.option.find(item2 => item2.tag == item).mutextag
+          mutextag:temp.mutextag,
+          rowindex:temp.rowindex,
+          sys_systemtagdetailid:temp.sys_systemtagdetailid,
+          sys_systemtagid:temp.sys_systemtagid,
+          tag:temp.tag,
         }
       })
       this.dialogFormVisible = true
     },
     async onSubmit () {
-      console.log(this.data);
       let res = await this.$api.requested({
         "id": 20220929090901,
         "content": {
@@ -100,13 +108,14 @@ export default {
     },
     tagClick (data) {
       for(let i=0;i<this.tagData.datatag.length;i++) {
-          let res = this.tagData.datatag[i].mutextag.find(item => item == data.tag)
-          if(res) {
-            return
-          }
+        let res = this.tagData.datatag[i].mutextag.find(item => item == data.tag)
+        if(res) {
+          return
         }
-      this.tagData.datatag.some(item => item.tag == data.tag) ? 
-        this.tagData.datatag.splice(this.tagData.datatag.indexOf(data),1) : this.tagData.datatag.push(data)
+      }
+      let temp = this.tagData.datatag.find(item => item.tag == data.tag)
+      temp ? 
+        this.tagData.datatag.splice(this.tagData.datatag.indexOf(temp),1) : this.tagData.datatag.push(data)
     }
   },
 };

+ 10 - 1
src/router/HDrpManagement.js

@@ -163,7 +163,16 @@ const HDrpManagement = [
       keeproute: true,
     },
     component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/publicManage/index')
+  },{
+    path: '/competitor',
+    name:'projectstage',
+    meta: {
+      title: '项目阶段管理',
+      ast_nav: true,
+      keeproute: true,
+    },
+    component: () => import(/* webpackChunkName: "about" */ '@/HDrpManagement/projectManage/index')
   }
-
+  
 ];
 export default HDrpManagement;