qymljy 2 years ago
parent
commit
0c4c8547a8
25 changed files with 937 additions and 107 deletions
  1. 1 1
      src/HDrpManagement/projectChange/modules/modules/rival/modules/edit.vue
  2. 4 3
      src/HManagement/clueManage/m_activity/modules/details.vue
  3. 16 14
      src/HManagement/department/staff/detail/modules/main.vue
  4. 5 2
      src/HManagement/salesForecastTemplate/index.vue
  5. 34 6
      src/HManagement/salesForecastTemplate/modules/add.vue
  6. 291 0
      src/HManagement/salesForecastTemplate/modules/addCopy.vue
  7. 28 4
      src/HManagement/salesForecastTemplate/modules/edit.vue
  8. 285 0
      src/HManagement/salesForecastTemplate/modules/editCopy.vue
  9. 9 3
      src/HManagement/salesForecastTemplate/modules/forecastList.vue
  10. 4 4
      src/HManagement/salesForecastTemplate/modules/modelDetail.vue
  11. 8 12
      src/HManagement/siteManage/securityConfig/components/addressManage/add.vue
  12. 14 20
      src/HManagement/siteManage/securityConfig/components/addressManage/edit.vue
  13. 9 2
      src/HManagement/siteManage/securityConfig/components/addressManage/index.vue
  14. 8 3
      src/HManagement/siteManage/securityConfig/components/contacts/add.vue
  15. 6 5
      src/HManagement/siteManage/securityConfig/components/contacts/edit.vue
  16. 8 1
      src/HManagement/siteManage/securityConfig/components/contacts/index.vue
  17. 8 1
      src/HManagement/siteManage/securityConfig/components/financialInfo/add.vue
  18. 8 4
      src/HManagement/siteManage/securityConfig/components/financialInfo/edit.vue
  19. 8 1
      src/HManagement/siteManage/securityConfig/components/financialInfo/index.vue
  20. 11 12
      src/SManagement/sales_forecast/index.vue
  21. 136 0
      src/SManagement/sales_forecast/indexCopy.vue
  22. 3 3
      src/SManagement/sales_forecast/modules/modelDetail.vue
  23. 6 0
      src/SManagement/sales_forecast/modules/project.vue
  24. 13 2
      src/template/salesForecastUseProject/addProduct.vue
  25. 14 4
      src/template/salesForecastUseProject/index.vue

+ 1 - 1
src/HDrpManagement/projectChange/modules/modules/rival/modules/edit.vue

@@ -11,7 +11,7 @@
         @close="onClose">
       <div class="drawer__panel">
         <el-row :gutter="20">
-          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="82px">
+          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="90px">
             <el-col :span="24">
               <el-form-item  label="企业名称:" prop="enterprisename">
                 <el-popover

+ 4 - 3
src/HManagement/clueManage/m_activity/modules/details.vue

@@ -170,12 +170,13 @@ export default {
         ],
         systemInfo: [
           {label:'创建人',value:this.mainData.createby},
-          {label:'发布人',value:this.mainData.checkby},
-          {label:'最近编辑人',value:this.mainData.changeby},
           {label:'创建时间',value:this.mainData.createdate},
+          {label:'最近编辑人',value:this.mainData.changeby},
+          {label:'最近编辑时间',value:this.mainData.changedate},
+          {label:'发布人',value:this.mainData.checkby},
           {label:'发布时间',value:this.mainData.checkdate},
           /*{label:'最近跟进时间',value:this.mainData.followDate},*/
-          {label:'最近编辑时间',value:this.mainData.changedate},
+
         ]
       }
     },

+ 16 - 14
src/HManagement/department/staff/detail/modules/main.vue

@@ -1,32 +1,34 @@
 <template>
   <div>
     <div class="user-panel normal-margin">
-      <el-descriptions :column="4">
-          <div slot="title" class="flex-align-center flex-between">
+      <el-descriptions title="基本信息" border :column="2" labelClassName="my-label" contentClassName="my-content">
+<!--          <div slot="title" class="flex-align-center flex-between">
             <span>账号信息</span>
             <div class="flex-align-center flex-between">
               <slot name="createuser" :data="mainInfo"></slot>
               <slot name="linkact" :data="mainInfo"></slot>
             </div>
-          </div>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="账号名称">{{mainInfo.username?mainInfo.username:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="账号类型">{{mainInfo.usertypename?mainInfo.usertypename:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="角色">{{mainInfo.userrole?(mainInfo.userrole).toString():''}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="账号密码">
+          </div>-->
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="登录账号">{{mainInfo.accountno?mainInfo.accountno:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="账号名称">{{mainInfo.username?mainInfo.username:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="账号类型">{{mainInfo.usertypename?mainInfo.usertypename:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="授权角色">{{mainInfo.userrole?(mainInfo.userrole).toString():''}}</el-descriptions-item>
+<!--          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="账号密码">
             <div class="flex-align-center flex-between">
               *******
              <slot name="restpas"></slot>
             </div>
-          </el-descriptions-item>
+          </el-descriptions-item>-->
       </el-descriptions>
     </div>
     <div class="">
-      <el-descriptions title="系统信息" :column="4">
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="创建人">{{mainInfo.createby?mainInfo.createby:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="修改人">{{mainInfo.changeby?mainInfo.changeby:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="手机号">{{mainInfo.userphonenumber?mainInfo.userphonenumber:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="创建时间">{{mainInfo.createdate?mainInfo.createdate:'--'}}</el-descriptions-item>
-          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="修改时间">{{mainInfo.changedate?mainInfo.changedate:'--'}}</el-descriptions-item>
+      <el-descriptions title="系统信息" border :column="2" labelClassName="my-label" contentClassName="my-content">
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="创建人">{{mainInfo.createby?mainInfo.createby:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="创建时间">{{mainInfo.createdate?mainInfo.createdate:'--'}}</el-descriptions-item>
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="最近编辑人">{{mainInfo.changeby?mainInfo.changeby:'--'}}</el-descriptions-item>
+<!--          <el-descriptions-item label-class-name="my-label-layout" content-class-name="my-content" label="手机号">{{mainInfo.userphonenumber?mainInfo.userphonenumber:'&#45;&#45;'}}</el-descriptions-item>-->
+
+          <el-descriptions-item label-class-name="my-label" content-class-name="my-content" label="最近编辑时间">{{mainInfo.changedate?mainInfo.changedate:'--'}}</el-descriptions-item>
       </el-descriptions>
     </div>
   </div>

+ 5 - 2
src/HManagement/salesForecastTemplate/index.vue

@@ -39,9 +39,12 @@
           </div>
         </div>
         <div v-else-if="scope.data.column.columnname == 'taskdays'">
-          <div>
+          <div v-if="scope.data.column.data.begdate">
+            {{scope.data.column.data.enddate?scope.data.column.data.enddate.split(' ')[0]:'--'}}
+          </div>
+          <div v-else>
             <span v-for=" item in scope.data.column.data.taskdayschange" :key="item.index">
-              {{item}}天
+              每月{{item}}日
             </span>
           </div>
         </div>

+ 34 - 6
src/HManagement/salesForecastTemplate/modules/add.vue

@@ -42,7 +42,7 @@
                     <el-input v-model="item.periodpoint" placeholder="输入日期" @change="onDateChange" size="small">
                        <template slot="prepend">每月</template>
                     </el-input>&nbsp;
-                    <el-input v-model="item.taskday" @change="onDateChange" size="small" placeholder="请输入截止时间"></el-input>&emsp;
+                    <el-input v-model="item.taskday" @change="onDateChange" size="small" placeholder="输入日期"></el-input>&emsp;
                     <el-button size="small" type="text" @click="deleteperiod(index)">删 除</el-button>
                   </div>
                   <div class="flex-align-center">
@@ -68,7 +68,16 @@
                       :picker-options="pickerOptions"
                       @change="onDateChange">
                     </el-date-picker>&nbsp;
-                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>&emsp;
+<!--                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>&emsp;-->
+                    <el-date-picker
+                        style="width:150px;flex:1 0 auto"
+                        type="date"
+                        v-model="form.enddate"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期"
+                        :picker-options="pickerOptions"
+                        @change="onDateChange">
+                    </el-date-picker>
                   </div>
                 </div>
               </el-form-item>
@@ -84,7 +93,7 @@
         </el-row>
       </div>
       <div class="fixed__btn__panel">
-        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" @click="onClose" class="normal-btn-width">取 消</el-button>
         <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
       </div>
     </el-drawer>
@@ -99,7 +108,22 @@ export default {
       if (value.length === 0) {
         callback(new Error('请设置提报周期'));
       } else {
-        callback();
+        if (this.form.isrepeat){
+          let length = this.form.taskdays.length
+          for (let i=0;i<length;i++){
+            if (this.form.periodpoint[0] >this.form.taskdays[i]){
+              callback(new Error('截止时间不能早于开始时间'))
+              break
+            }
+          }
+          callback()
+        }else {
+          if (this.form.begdate > this.form.enddate){
+            callback(new Error('截止时间不能早于开始时间'));
+          }else {
+            callback();
+          }
+        }
       }
     }; 
     return {
@@ -224,8 +248,11 @@ export default {
           return e.taskday
         })
       } else {
-        this.form.taskdays = this.addDate.taskday === ''?[]:[this.addDate.taskday]
+        /*this.form.taskdays = this.addDate.taskday === ''?[]:[this.addDate.taskday]*/
+        this.form.taskdays = [0]
       }
+      console.log(this.form.taskdays.length)
+
       this.$refs['form'].validate(async (valid) => {})
     },
     onClose () {
@@ -242,7 +269,8 @@ export default {
         taskdays:[],
         sales:[],
         roles:[],
-      },
+      }
+      this.$refs.form.resetFields()
       this.sdList = []
       this.addDate = {
         periodpoint:'',

+ 291 - 0
src/HManagement/salesForecastTemplate/modules/addCopy.vue

@@ -0,0 +1,291 @@
+<template>
+  <div>
+    <el-button type="primary" size="small" @click="queryRoles(dialogFormVisible = true)">新 建</el-button>
+    <el-drawer append-to-body title="新建模板" :visible.sync="dialogFormVisible" size="800px" @close="onClose" :show-close="false">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" ref="form" :rules="rules" label-position="right" label-width="80px" size="small">
+            <el-col :span="24">
+              <el-form-item label="模板名称" prop="title">
+                <el-input type="text" v-model="form.title" placeholder="输入提报标题"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提报要求">
+                <el-input type="text" v-model="form.remarks" placeholder="输入提报要求"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提报类型" prop="isrepeat">
+                <el-radio-group v-model="form.isrepeat" @change="onRadioChange">
+                  <el-radio :label="1">月度提报</el-radio>
+                  <el-radio :label="0">单次提报</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-if="form.isrepeat">
+              <el-form-item label="设置周期" prop="periodpoint">
+                <div class="submit__date_List">
+                  <div class="list_title flex-align-center">
+                    <p>开始时间</p>
+                    <p>截止时间</p>
+                  </div>
+                  <div v-for="(item,index) in sdList" :key="index" class="flex-align-center mt-10">
+                    <!-- <el-date-picker
+                      style="width:150px;flex:1 0 auto"
+                      type="date"
+                      v-model="item.periodpoint"
+                      format="每月 d 日"
+                      placeholder="选择日期"
+                      @change="onDateChange">
+                    </el-date-picker>&nbsp; -->
+                    <el-input v-model="item.periodpoint" placeholder="输入日期" @change="onDateChange" size="small">
+                       <template slot="prepend">每月</template>
+                    </el-input>&nbsp;
+                    <el-input v-model="item.taskday" @change="onDateChange" size="small" placeholder="请输入截止时间"></el-input>&emsp;
+                    <el-button size="small" type="text" @click="deleteperiod(index)">删 除</el-button>
+                  </div>
+                  <div class="flex-align-center">
+                    <el-button size="small" type="text" @click="addperiod">添 加</el-button>
+                  </div>
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-else>
+              <el-form-item label="设置周期" prop="taskdays">
+                <div class="submit__date_List">
+                  <div class="list_title flex-align-center">
+                    <p>开始时间</p>
+                    <p>截止时间</p>
+                  </div>
+                  <div class="flex-align-center">
+                    <el-date-picker
+                      style="width:150px;flex:1 0 auto"
+                      type="date"
+                      v-model="form.begdate"
+                      value-format="yyyy-MM-dd"
+                      placeholder="选择日期"
+                      :picker-options="pickerOptions"
+                      @change="onDateChange">
+                    </el-date-picker>&nbsp;
+                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>&emsp;
+                  </div>
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="发布范围" prop="roles">
+                <el-select style="width:100%" v-model="form.roles" placeholder="请选择角色" multiple>
+                  <el-option v-for="item in rolelist" :key="item.roleid" :label="item.rolename" :value="item.roleid"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {   
+    var validatePass2 = (rule, value, callback) => {
+      console.log(value)
+      if (value.length === 0) {
+        callback(new Error('请设置提报周期'));
+      } else {
+        callback();
+      }
+    }; 
+    return {
+      error:false,
+      dialogFormVisible:false,
+      visible:false,
+      form:{
+        sa_salesforecastmodelid:0,
+        title:'',
+        remarks:'',
+        begdate:null,
+        enddate:null,
+        periodtype:'周',
+        periodpoint:[],
+        baseonproject:false,
+        isrepeat:1,
+        taskdays:[],
+        sales:[],
+        roles:[],
+      },
+      period:7,
+      act:0,
+      rolelist:[],
+      rules:{
+        title: [
+          { required: true, message: '请输入提报标题', trigger: 'blur' },
+        ],
+        roles: [
+          { required: true, message: '请选择角色', trigger: 'change' }
+        ],
+        periodpoint:[
+          { required: true, validator: validatePass2, trigger: 'change' }
+        ],
+        taskdays:[
+          { required: true, validator: validatePass2, trigger: 'change' }
+        ],
+        isrepeat:[
+          { required: true, message: '请选择提报类型', trigger: 'change' }
+        ]
+      },
+      pickerOptions:{
+        disabledDate(time) {
+          return time.getTime() < Date.now() - 8.64e7;
+        }
+      },
+      sdList:[],
+      nsdList:[],
+      addDate:{
+        periodpoint:'',
+        taskday:'',
+      },
+      value:''
+
+    }
+  },
+  methods:{
+    onSubmit () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        let data = Object.assign({},this.form)
+        data.roles = this.form.roles.map(e=>{
+          return {
+            "sa_salesforecastmodelroleid":0, 
+            "roleid": e
+          }
+        })
+
+        const res = await this.$api.requested({
+          "id": 20220906150103,
+          "version":1,
+          "content": data
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.dialogFormVisible = false
+          this.refrehsh()
+        })
+      });
+    },
+    async queryRoles () {
+      const res = await this.$api.requested({
+        "id":20221101131902,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 1000,
+          "where":{
+            "condition":"",
+            "usertype":"",
+            "issystem":""
+          }
+        }
+      })
+      this.rolelist = res.data
+      console.log(res,"权限数据")
+    },
+    addperiod () {
+      this.sdList = [...this.sdList,...[this.addDate]]
+      this.sdList = this.tool.deepClone(this.sdList)
+    },
+    deleteperiod (index) {
+      console.log(index)
+      this.sdList = this.sdList.filter((e,idx)=>{
+        if (idx !== index)  return e
+      })
+    },
+    onRadioChange () {
+      this.sdList = []
+      this.form.taskdays = []
+      this.form.taskdays = []
+      this.form.begdate = ''
+      this.addDate = {
+        periodpoint:'',
+        taskday:'',
+      }
+    },
+    onDateChange () {
+      if (this.form.isrepeat) {
+        this.form.periodpoint = this.sdList.map(e=>{
+          return e.periodpoint
+        })
+        this.form.taskdays = this.sdList.map(e=>{
+          return e.taskday
+        })
+      } else {
+        this.form.taskdays = this.addDate.taskday === ''?[]:[this.addDate.taskday]
+      }
+      this.$refs['form'].validate(async (valid) => {})
+    },
+    onClose () {
+      this.form = {
+        sa_salesforecastmodelid:0,
+        title:'',
+        remarks:'',
+        begdate:null,
+        enddate:null,
+        periodtype:'周',
+        periodpoint:[],
+        baseonproject:false,
+        isrepeat:1,
+        taskdays:[],
+        sales:[],
+        roles:[],
+      },
+      this.sdList = []
+      this.addDate = {
+        periodpoint:'',
+        taskday:'',
+      }
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+.my-error-panel .el-form-item__error{
+  text-indent: 10px;
+}
+</style>
+<style scoped>
+.periodTags{
+  border:1px solid #dcdfe6;
+  min-height:32px;
+  /* margin-bottom:18px; */
+  padding:0 10px;
+  margin-left:10px;
+  line-height:32px;
+  border-radius: 4px;
+  min-width: 400px;
+  cursor: pointer;
+}
+.act{
+  background: #dcdfe6;
+}
+.error{
+  border:1px solid red !important;;
+}
+.submit__date_List{
+  width: 400px;
+  padding: 10px;
+  background: #f1f2f3;
+
+}
+.list_title p{
+  text-align: left;
+  width: 50%;
+}
+</style>

+ 28 - 4
src/HManagement/salesForecastTemplate/modules/edit.vue

@@ -28,7 +28,7 @@
                 <div class="submit__date_List">
                   <div class="list_title flex-align-center">
                     <p style="width:150px;flex:1 0 auto">开始时间</p>
-                    <p>提报周期</p>
+                    <p>截止时间</p>
                   </div>
                   <div v-for="(item,index) in sdList" :key="index" class="flex-align-center mt-10">
                     <el-input v-model="item.periodpoint" placeholder="输入日期" @change="onDateChange" size="small">
@@ -48,7 +48,7 @@
                 <div class="submit__date_List">
                   <div class="list_title flex-align-center">
                     <p>开始时间</p>
-                    <p>提报周期</p>
+                    <p>截止时间</p>
                   </div>
                   <div class="flex-align-center">
                     <el-date-picker
@@ -60,7 +60,16 @@
                       :picker-options="pickerOptions"
                       @change="onDateChange">
                     </el-date-picker>&nbsp;
-                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>&emsp;
+<!--                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>-->
+                    <el-date-picker
+                        style="width:150px;flex:1 0 auto"
+                        type="date"
+                        v-model="form.enddate"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择日期"
+                        :picker-options="pickerOptions"
+                        @change="onDateChange">
+                    </el-date-picker>
                   </div>
                 </div>
               </el-form-item>
@@ -91,7 +100,22 @@ export default {
       if (value.length === 0) {
         callback(new Error('请设置提报周期'));
       } else {
-        callback();
+        if (this.form.isrepeat){
+          let length = this.form.taskdays.length
+          for (let i=0;i<length;i++){
+            if (this.form.periodpoint[0] >this.form.taskdays[i]){
+              callback(new Error('截止时间不能早于开始时间'))
+              break
+            }
+          }
+          callback()
+        }else {
+          if (this.form.begdate > this.form.enddate){
+            callback(new Error('截止时间不能早于开始时间'));
+          }else {
+            callback();
+          }
+        }
       }
     }; 
     return {

+ 285 - 0
src/HManagement/salesForecastTemplate/modules/editCopy.vue

@@ -0,0 +1,285 @@
+<template>
+  <div>
+    <el-button :type="data.status === '结束' ||  data.status === '发布'?'':'primary'" :disabled="data.status === '结束' ||  data.status === '发布' "  size="mini" @click="onShow(dialogFormVisible = true)">编 辑</el-button>
+    <el-drawer append-to-body title="编辑模板" :visible.sync="dialogFormVisible" size="800px" :show-close="false">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" ref="form" :rules="rules" label-position="right" label-width="80px" size="small">
+            <el-col :span="24">
+              <el-form-item label="模板名称" prop="title">
+                <el-input type="text" v-model="form.title" placeholder="输入提报标题"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提报要求" >
+                <el-input type="text" v-model="form.remarks" placeholder="输入提报要求"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提报类型" prop="isrepeat">
+                <el-radio-group v-model="form.isrepeat" @change="onRadioChange">
+                  <el-radio :label="1">月度提报</el-radio>
+                  <el-radio :label="0">单次提报</el-radio>
+                </el-radio-group>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-if="form.isrepeat">
+              <el-form-item label="设置周期" prop="periodpoint">
+                <div class="submit__date_List">
+                  <div class="list_title flex-align-center">
+                    <p style="width:150px;flex:1 0 auto">开始时间</p>
+                    <p>提报周期</p>
+                  </div>
+                  <div v-for="(item,index) in sdList" :key="index" class="flex-align-center mt-10">
+                    <el-input v-model="item.periodpoint" placeholder="输入日期" @change="onDateChange" size="small">
+                       <template slot="prepend">每月</template>
+                    </el-input>&nbsp;
+                    <el-input v-model="item.taskday" @change="onDateChange" size="small" placeholder="请输入周期天数"></el-input>&emsp;
+                    <el-button size="small" type="text" @click="deleteperiod(index)">删 除</el-button>
+                  </div>
+                  <div class="flex-align-center">
+                    <el-button size="small" type="text" @click="addperiod">添 加</el-button>
+                  </div>
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12" v-else>
+              <el-form-item label="设置周期" prop="taskdays">
+                <div class="submit__date_List">
+                  <div class="list_title flex-align-center">
+                    <p>开始时间</p>
+                    <p>提报周期</p>
+                  </div>
+                  <div class="flex-align-center">
+                    <el-date-picker
+                      style="width:150px;flex:1 0 auto"
+                      type="date"
+                      v-model="form.begdate"
+                      value-format="yyyy-MM-dd"
+                      placeholder="选择日期"
+                      :picker-options="pickerOptions"
+                      @change="onDateChange">
+                    </el-date-picker>&nbsp;
+                    <el-input v-model="addDate.taskday" @change="onDateChange" size="small" placeholder=""></el-input>&emsp;
+                  </div>
+                </div>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="发布范围" prop="roles">
+                <el-select style="width:100%" v-model="form.roles" placeholder="请选择角色" multiple>
+                  <el-option v-for="item in rolelist" :key="item.roleid" :label="item.rolename" :value="item.roleid"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-form>
+        </el-row>
+      </div>
+      <div class="fixed__btn__panel">
+        <el-button size="small" @click="dialogFormVisible = false" class="normal-btn-width">取 消</el-button>
+        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width">确 定</el-button>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+export default {
+  props:['data'],
+  data () {   
+    var validatePass2 = (rule, value, callback) => {
+      if (value.length === 0) {
+        callback(new Error('请设置提报周期'));
+      } else {
+        callback();
+      }
+    }; 
+    return {
+      error:false,
+      dialogFormVisible:false,
+      visible:false,
+      form:{
+        sa_salesforecastmodelid:0,
+        title:'',
+        remarks:'',
+        begdate:null,
+        enddate:null,
+        periodtype:'周',
+        periodpoint:[],
+        baseonproject:false,
+        isrepeat:1,
+        taskdays:[],
+        sales:[],
+        roles:[],
+      },
+      period:7,
+      act:0,
+      rolelist:[],
+      rules:{
+        title: [
+          { required: true, message: '请输入提报标题', trigger: 'blur' },
+        ],
+        roles: [
+          { required: true, message: '请选择角色', trigger: 'change' }
+        ],
+        periodpoint:[
+          { required: true, validator: validatePass2, trigger: 'change' }
+        ],
+        taskdays:[
+          { required: true, validator: validatePass2, trigger: 'change' }
+        ],
+        isrepeat:[
+          { required: true, message: '请选择提报类型', trigger: 'change' }
+        ]
+      },
+      pickerOptions:{
+        disabledDate(time) {
+          return time.getTime() < Date.now() - 24 * 3600 * 1000;
+        }
+      },
+      sdList:[],
+      nsdList:[],
+      addDate:{
+        periodpoint:'',
+        taskday:'',
+      },
+      value:''
+
+    }
+  },
+  methods:{
+    onShow () {
+      this.queryRoles()
+      if (this.data.isrepeat === 1) {
+        this.data.periodpointchange.forEach(e=>{
+          this.sdList.push({
+            periodpoint:e,
+            taskday:'',
+          })
+        })
+        this.sdList.forEach(e=>{
+          this.data.taskdayschange.forEach(t=>{
+            e.taskday = t
+          })
+        })
+      } else {
+        this.addDate.taskday = this.data.taskdayschange[0]
+      }
+      this.form = Object.assign({},this.form, this.data)
+      this.form.roles = this.form.roles.map(e=>{
+        return e.roleid
+      })
+      
+    },
+    onSubmit () {
+      this.$refs['form'].validate(async (valid) => {
+        if (!valid) return false
+        let data = Object.assign({},this.form)
+        data.roles = this.form.roles.map(e=>{
+          return {
+            "sa_salesforecastmodelroleid":0, 
+            "roleid": e
+          }
+        })
+
+        const res = await this.$api.requested({
+          "id": 20220906150103,
+          "version":1,
+          "content": data
+        })
+        this.tool.showMessage(res,()=>{
+          this.$emit('onSuccess')
+          this.dialogFormVisible = false
+          this.refrehsh()
+        })
+      });
+    },
+    async queryRoles () {
+      const res = await this.$api.requested({
+        "id":20221101131902,
+        "content": {
+          "pageNumber": 1,
+          "pageSize": 1000,
+          "where":{
+            "condition":"",
+            "usertype":"",
+            "issystem":1
+          }
+        }
+      })
+      this.rolelist = res.data
+    },
+    addperiod () {
+      this.sdList = [...this.sdList,...[this.addDate]]
+      this.sdList = this.tool.deepClone(this.sdList)
+    },
+    deleteperiod (index) {
+      console.log(index)
+      this.sdList = this.sdList.filter((e,idx)=>{
+        if (idx !== index)  return e
+      })
+    },
+    onRadioChange () {
+      this.sdList = []
+      this.form.taskdays = []
+      this.form.taskdays = []
+      this.form.begdate = ''
+      this.addDate = {
+        periodpoint:'',
+        taskday:'',
+      }
+    },
+    onDateChange () {
+      console.log(this.form.isrepeat)
+      if (this.form.isrepeat === 1) {
+        this.form.periodpoint = []
+        this.form.periodpoint = this.sdList.map(e=>{
+          return e.periodpoint
+        })
+        this.form.taskdays = this.sdList.map(e=>{
+          return e.taskday
+        })
+      } else {
+        this.form.taskdays = this.addDate.taskday === ''?[]:[this.addDate.taskday]
+      }
+      this.$refs['form'].validate(async (valid) => {})
+    }
+  },
+  mounted () {
+  }
+}
+
+</script>
+<style>
+.my-error-panel .el-form-item__error{
+  text-indent: 10px;
+}
+</style>
+<style scoped>
+.periodTags{
+  border:1px solid #dcdfe6;
+  min-height:32px;
+  /* margin-bottom:18px; */
+  padding:0 10px;
+  margin-left:10px;
+  line-height:32px;
+  border-radius: 4px;
+  min-width: 400px;
+  cursor: pointer;
+}
+.act{
+  background: #dcdfe6;
+}
+.error{
+  border:1px solid red !important;;
+}
+.submit__date_List{
+  width: 400px;
+  padding: 10px;
+  background: #f1f2f3;
+
+}
+.list_title p{
+  flex: 1;
+}
+</style>

+ 9 - 3
src/HManagement/salesForecastTemplate/modules/forecastList.vue

@@ -25,12 +25,17 @@
         <div v-else-if="scope.column.columnname === 'taskdays'">
           <span>提前{{scope.column.data.taskdays}}天</span>
         </div>-->
-        <div v-if="scope.column.columnname === 'periodpoint'">
+        <div v-if="scope.column.columnname === 'begdate'">
+          <div>
+            <span>{{scope.column.data.taskdayschange.length !== 0?scope.column.data.periodstart.split(' ')[0]:scope.column.data.begdate.split(' ')[0]}}</span>
+          </div>
+        </div>
+        <div v-else-if="scope.column.columnname === 'periodpoint'">
 <!--          <span v-for="i in scope.column.data.periodpointchange" :key="i.index">
             {{scope.column.data.periodtype === '周'?'周'+ `${i===7?'日':i}`:i+'日'}},
           </span>-->
           <div>
-            <span v-for="(i,index) in scope.column.data.taskdayschange" :key="index">
+<!--            <span v-for="(i,index) in scope.column.data.taskdayschange" :key="index">
               <span v-if="index === scope.column.data.taskdayschange.length -1">
                 {{ i + '天' }}
               </span>
@@ -38,7 +43,8 @@
                 {{ i + '天,' }}
               </span>
 
-            </span>
+            </span>-->
+            <span>{{scope.column.data.taskdayschange.length !== 0?scope.column.data.periodend.split(' ')[0]:scope.column.data.enddate.split(' ')[0]}}</span>
           </div>
 <!--          <div v-else>
             <span v-for="i in scope.column.data.periodpointchange" :key="i.index">

+ 4 - 4
src/HManagement/salesForecastTemplate/modules/modelDetail.vue

@@ -78,9 +78,9 @@ export default {
         let val = ''
         that.mainData.taskdayschange.forEach((e,index) => {
           if (index === that.mainData.taskdayschange.length -1){
-            val += `${e}天`
+            val += `每月${e}日`
           }else {
-            val += `${e}天,`
+            val += `每月${e}日,`
           }
 
         })
@@ -114,8 +114,8 @@ export default {
       this.mainAreaData = [
         {label:'提报要求',value:this.mainData.remarks},
         {label:'提报类型',value:this.mainData.isrepeat == 1 ?'月度提报':'单次提报'},
-        {label:'提报开始时间',value:this.mainData.isrepeat === 0?this.mainData.begdate:startTime()},
-        {label:'提报周期',value:this.mainData.isrepeat === 0?this.mainData.taskdayschange[0]+'天':test()},
+        {label:'提报开始时间',value:this.mainData.isrepeat === 0?this.mainData.begdate.split(' ')[0]:startTime()},
+        {label:'提报截止时间',value:this.mainData.isrepeat === 0?this.mainData.enddate.split(' ')[0]:test()},
         {label:'发布范围',value:translate()},
 
         /*{label:'预测金额',value:this.mainData.outamountsum},

+ 8 - 12
src/HManagement/siteManage/securityConfig/components/addressManage/add.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="onshow">新增企业地址</el-button>
+    <el-button size="small" type="primary" @click="onshow" >新增企业地址</el-button>
     <el-drawer
         title=" 新建企业地址"
         :visible.sync="dialogFormVisible"
@@ -109,14 +109,15 @@ export default {
   },
   methods:{
     onshow(){
-      console.log("输出")
-      console.log(this.data)
-      this.form.sys_enterpriseid = this.data.sys_enterpriseid
-      this.dialogFormVisible = true
-      this.addressType()
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.form.sys_enterpriseid = this.data.sys_enterpriseid
+        this.dialogFormVisible = true
+        this.addressType()
+      }
     },
     onSubmit(){
-      console.log(this.form)
       this.$refs['form'].validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({
@@ -166,7 +167,6 @@ export default {
       })
       this.$emit("insertSuccess")
       this.typeData = []
-      console.log(res)
     },
     onClose(){
       this.$refs['form'].resetFields()
@@ -194,13 +194,10 @@ export default {
     },
     /*省市县*/
     cascaderChange (val) {
-      console.log(this.form.province)
       if (val.length === 1)
         return this.form = Object.assign({},this.form,{province:val[0],city:'',county:''})
 
       this.form = Object.assign({},this.form,{province:val[0],city:val[1],county:val[2]})
-      console.log(this.form)
-      console.log(this.form.province)
 
     },
     /*地址类型*/
@@ -216,7 +213,6 @@ export default {
       };
       const res = await this.$api.requested(param)
       this.addressList = res.data
-      console.log(res,"地址类型")
     }
   }
 }

+ 14 - 20
src/HManagement/siteManage/securityConfig/components/addressManage/edit.vue

@@ -74,7 +74,7 @@
 <script>
 export default {
   name: "edit",
-  props:["data"],
+  props:["data","dataOld"],
   data(){
     return {
       dialogFormVisible:false,
@@ -111,27 +111,21 @@ export default {
   methods:{
     onshow(){
       console.log(this.data,"编辑数据")
-      this.dialogFormVisible = true
-      // this.form.sys_enterpriseid = this.data.sys_enterpriseid
-      // this.form.contactsid = this.data.contactsid
-      // this.form.remarks = this.data.remarks
-      // this.form.address = this.data.address
-      // this.form.province = this.data.province
-      // this.form.city = this.data.city
-      // this.county = this.data.county
-      // this.form.value[0] = this.data.province
-      // this.form.value[1] = this.data.city
-      // this.form.value[2] = this.data.county
-      this.form = Object.assign({},this.form,this.data)
-      if (this.form.isdefault === 0){
-        this.form.isdefault = '0'
+      if (this.dataOld.enterprisename === '' || this.dataOld.abbreviation === '' || this.dataOld.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
       }else {
-        this.form.isdefault = '1'
+        this.dialogFormVisible = true
+        this.form = Object.assign({},this.form,this.data)
+        if (this.form.isdefault === 0){
+          this.form.isdefault = '0'
+        }else {
+          this.form.isdefault = '1'
+        }
+        this.form.value = [this.form.province,this.form.city,this.form.county]
+        this.typeData = this.form.tag
+        console.log(this.form)
+        this.addressType()
       }
-      this.form.value = [this.form.province,this.form.city,this.form.county]
-      this.typeData = this.form.tag
-      console.log(this.form)
-      this.addressType()
     },
     onSubmit(){
       this.$refs['form'].validate(async (valid) => {

+ 9 - 2
src/HManagement/siteManage/securityConfig/components/addressManage/index.vue

@@ -32,13 +32,13 @@
         <p v-else>{{scope.column.data[scope.column.columnname]}}</p>
       </template>
       <template v-slot:opreation="scope">
-        <edit :data="scope.data" @updateSuccess="onSuccess"></edit>
+        <edit :data="scope.data" @updateSuccess="onSuccess" :dataOld="data"></edit>
         <el-popconfirm
             confirm-button-text='确定'
             cancel-button-text='取消'
             icon="el-icon-info"
             title="确定删除该企业地址吗?"
-            @confirm="onDel(scope.data.contactsid)"
+            @confirm="delShow(scope.data.contactsid)"
         >
           <el-button slot="reference" type="text" size="mini" :disabled="!tool.checkAuth($route.name,'address')">删 除</el-button>
         </el-popconfirm>
@@ -114,6 +114,13 @@ export default {
       this.params.content.where.condition = this.search
       this.listData()
     },
+    delShow(id){
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.onDel(id)
+      }
+    },
     async onDel(id){
       const res = await this.$api.requested({
         "id": "20221018145502",

+ 8 - 3
src/HManagement/siteManage/securityConfig/components/contacts/add.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button size="small" type="primary" @click="dialogFormVisible = true">新 建</el-button>
+    <el-button size="small" type="primary" @click="onShow">新 建</el-button>
     <el-drawer
         title="新建联系人"
         :visible.sync="dialogFormVisible"
@@ -132,11 +132,16 @@ export default {
     }
   },
   methods:{
+    onShow(){
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.dialogFormVisible = true
+      }
+    },
     onSubmit(){
-      console.log(this.data)
       this.form.sys_enterpriseid = this.data.sys_enterpriseid
       this.form.enterprisename = this.data.enterprisename
-      console.log(this.form)
       this.$refs.form.validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({

+ 6 - 5
src/HManagement/siteManage/securityConfig/components/contacts/edit.vue

@@ -116,15 +116,16 @@ export default {
   },
   methods:{
     onshow(){
-      console.log(this.data)
-      this.dialogFormVisible = true
-      this.form = Object.assign({},this.form,this.data)
+      if (this.dataOld.enterprisename === '' || this.dataOld.abbreviation === '' || this.dataOld.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.dialogFormVisible = true
+        this.form = Object.assign({},this.form,this.data)
+      }
     },
     onSubmit(){
-      console.log(this.data)
       this.form.sys_enterpriseid = this.dataOld.sys_enterpriseid
       this.form.enterprisename = this.dataOld.enterprisename
-      console.log(this.form)
       this.$refs.form.validate(async (valid) => {
         if (!valid) return false
         const res = await this.$api.requested({

+ 8 - 1
src/HManagement/siteManage/securityConfig/components/contacts/index.vue

@@ -29,7 +29,7 @@
               cancel-button-text='取消'
               icon="el-icon-info"
               title="确定删除该联系人吗?"
-              @confirm="onDel(scope.data.contactsid)"
+              @confirm="delShow(scope.data.contactsid)"
           >
             <el-button slot="reference" size="mini" type="text" :disabled="!tool.checkAuth($route.name,'contacts')">删 除</el-button>
           </el-popconfirm>
@@ -106,6 +106,13 @@ export default {
       this.search = ''
       this.listData()
     },
+    delShow(id){
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.onDel(id)
+      }
+    },
     async onDel(id){
       const res = await this.$api.requested({
         "id": "20221018145502",

+ 8 - 1
src/HManagement/siteManage/securityConfig/components/financialInfo/add.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button type="primary" size="small" @click="drawer = true">新 建</el-button>
+    <el-button type="primary" size="small" @click="onShow">新 建</el-button>
     <el-drawer
         title="新建"
         :visible.sync="drawer"
@@ -91,6 +91,13 @@ export default {
     }
   },
   methods:{
+    onShow(){
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.drawer = true
+      }
+    },
     onSubmit () {
       console.log(this.form,"表单")
       this.$refs['form'].validate(async (valid) => {

+ 8 - 4
src/HManagement/siteManage/securityConfig/components/financialInfo/edit.vue

@@ -92,11 +92,15 @@ export default {
   },
   methods:{
     onShow(){
-      this.drawer = true
-      if (this.data.isdefault === 0){
-        this.form.isdefault = '0'
+      if (this.dataOld.enterprisename === '' || this.dataOld.abbreviation === '' || this.dataOld.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
       }else {
-        this.form.isdefault = '1'
+        this.drawer = true
+        if (this.data.isdefault === 0){
+          this.form.isdefault = '0'
+        }else {
+          this.form.isdefault = '1'
+        }
       }
     },
     onSubmit () {

+ 8 - 1
src/HManagement/siteManage/securityConfig/components/financialInfo/index.vue

@@ -72,7 +72,7 @@
               cancel-button-text='取消'
               icon="el-icon-info"
               title="确定删除该财务信息吗?"
-              @confirm="onDel(scope.row.sys_enterprise_financeid)"
+              @confirm="delShow(scope.row.sys_enterprise_financeid)"
           >
             <el-button slot="reference" size="mini" type="text" :disabled="!tool.checkAuth($route.name,'finance')">删 除</el-button>
           </el-popconfirm>
@@ -162,6 +162,13 @@ export default {
     onSuccess(){
       this.queryfinancialinfo()
     },
+    delShow(id){
+      if (this.data.enterprisename === '' || this.data.abbreviation === '' || this.data.contact === ''){
+        this.$message.error('请先将企业基础信息补充完整,再进行此操作');
+      }else {
+        this.onDel(id)
+      }
+    },
     async onDel(id){
       const res = await this.$api.requested({
         "id": 20221013160502,

+ 11 - 12
src/SManagement/sales_forecast/index.vue

@@ -28,21 +28,20 @@
           <span>{{scope.data.column.data.isrepeat == 1 ?'月度提报':'单次提报'}}</span>
         </div>
         <div v-else-if="scope.data.column.columnname == 'periodpoint'">
-          <span v-if="scope.data.column.data.begdate">
-            {{scope.data.column.data.begdate.split(' ')[0]}}
+          <span v-if="scope.data.column.data.isrepeat === 1">
+            {{scope.data.column.data.periodstart?scope.data.column.data.periodstart.split(' ')[0]:'--'}}
+          </span>
+          <span v-else>
+            {{scope.data.column.data.reportingperiod?scope.data.column.data.reportingperiod.split(' ')[0]:'--'}}
           </span>
-          <div v-else>
-            <span v-for=" item in scope.data.column.data.periodpointchange" :key="item.index">
-              每月{{item}}日
-            </span>
-          </div>
         </div>
         <div v-else-if="scope.data.column.columnname == 'taskdays'">
-          <div>
-            <span v-for=" item in scope.data.column.data.taskdayschange" :key="item.index">
-              {{item}}天
-            </span>
-          </div>
+           <span v-if="scope.data.column.data.isrepeat === 1">
+            {{scope.data.column.data.periodend?scope.data.column.data.periodend.split(' ')[0]:'--'}}
+          </span>
+          <span v-else>
+            {{scope.data.column.data.reportingtaskdays?scope.data.column.data.reportingtaskdays.split(' ')[0]:'--'}}
+          </span>
         </div>
         <div v-else>
           {{scope.data.column.data[[scope.data.column.columnname]]}}

+ 136 - 0
src/SManagement/sales_forecast/indexCopy.vue

@@ -0,0 +1,136 @@
+
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      tableName="salesHistoryTable" 
+      idName="sa_salesforecastbillid" 
+      :apiId="{query:20220908134403,del:''}" 
+      :options="options"
+      :detailPath="{path:'/product_detail'}"
+      :statusHideDetailBtn="['待提报','提报中']"
+      @listCreate="list">
+      <div slot="custom">
+        <label class="search__label ">状态:</label>
+        <el-select  class="inline-24" @change="selectChange" v-model="selectParam.status" placeholder="请选择状态" size="small" clearable>
+          <el-option v-for="(item,index) in statusData" :key="index" :value="item.value" :label="item.label"></el-option>
+        </el-select>
+      </div>
+      <div slot="titleRight" style="display:flex;margin-left:10px">
+      </div>
+       <template v-slot:tbList="scope">
+        <div v-if="scope.data.column.columnname == 'status'">
+          <span style="color:#3874f6" v-if="scope.data.column.data[[scope.data.column.columnname]] == '待提报'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#52c41a" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '提报中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+          <span style="color:#333333" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已提报'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'isrepeat'">
+          <span>{{scope.data.column.data.isrepeat == 1 ?'月度提报':'单次提报'}}</span>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'periodpoint'">
+          <span v-if="scope.data.column.data.begdate">
+            {{scope.data.column.data.begdate.split(' ')[0]}}
+          </span>
+          <div v-else>
+            <span v-for=" item in scope.data.column.data.periodpointchange" :key="item.index">
+              每月{{item}}日
+            </span>
+          </div>
+        </div>
+        <div v-else-if="scope.data.column.columnname == 'taskdays'">
+          <div>
+            <span v-for=" item in scope.data.column.data.taskdayschange" :key="item.index">
+              {{item}}天
+            </span>
+          </div>
+        </div>
+        <div v-else>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+      <template v-slot:tbOpreation="scope">
+        <el-button v-if="scope.data.data.status !== '已提报'" type="text" size="mini" @click="detailGo(scope.data)">提 报</el-button>
+      </template>
+    </basicLayout>
+  </div>
+</template>
+
+<script>
+import DownSelect from '@/components/down_select/index'
+
+export default {
+  components:{
+    DownSelect
+  },
+  data () {
+    return {
+      options:[
+      ],
+      statusData:[
+        {
+          label:'待提报',
+          value:'待提报'
+        },
+        {
+          label:'提报中',
+          value:'提报中'
+        },
+        {
+          label:'已提报',
+          value:'已提报'
+        }
+      ],
+      selectParam: {
+        status:''
+      },
+    }
+  },
+  filters: {
+    timer (val, type) {
+      if (type == '月') {
+        return '每月' + val.substr(1, val.length - 2) + '日'
+      } else {
+        return '每周' + val.substr(1, val.length - 2)
+      }
+    }
+  },
+  computed:{
+  },
+  methods:{
+    /* 清除分类 */
+    clearCategory () {
+      this.$refs.basicLayout.param.content.where.baseonproject = ''
+      this.$refs.basicLayout.param.content.pageNumber = 1
+      this.$refs.basicLayout.listData()
+    },
+    /* 分类改变 */
+    categoryChange (data) {
+      this.$refs.basicLayout.param.content.where.baseonproject = data
+      this.$refs.basicLayout.param.content.pageNumber = 1
+      this.$refs.basicLayout.listData()
+    },
+    list (param) {
+      param.content.nocache = true
+    },
+    selectChange(){
+      this.$refs.basicLayout.param.content.where = this.selectParam
+      this.$refs.basicLayout.listData()
+    },
+    detailGo(row){
+      console.log(row)
+      this.$store.dispatch('changeDetailDrawer',true)
+      this.$router.push({
+        path:'/product_detail',
+        query:{
+          id:row.data.sa_salesforecastbillid,
+          rowindex:row.data.rowindex
+        }
+      })
+
+    },
+  }
+}
+
+</script>
+<style>
+</style>

+ 3 - 3
src/SManagement/sales_forecast/modules/modelDetail.vue

@@ -76,9 +76,9 @@ export default {
       let that = this
       this.mainAreaData = [
         {label:'提报要求',value:this.mainData.remarks},
-        {label:'提报类型',value:this.mainData.isrepeat == 1 ?'月度提报':'单次提报'},
-        {label:'提报开始时间',value:this.mainData.reportingperiod},
-        {label:'截止时间',value:this.mainData.periodend},
+        {label:'提报类型',value:this.mainData.isrepeat === 1 ?'月度提报':'单次提报'},
+        {label:'提报开始时间',value:this.mainData.isrepeat === 1?this.mainData.periodstart.split(' ')[0]:this.mainData.reportingperiod.split(' ')[0]},
+        {label:'提报截止时间',value:this.mainData.isrepeat === 1?this.mainData.periodend.split(' ')[0]:this.mainData.reportingtaskdays.split(' ')[0]},
         {label:'预测金额(元)',value:this.mainData.sumamount},
         {label:'提报人',value:this.mainData.createby},
         {

+ 6 - 0
src/SManagement/sales_forecast/modules/project.vue

@@ -7,8 +7,10 @@
     <el-table
       :data="list"
       style="width: 100%"
+      ref="tableProject"
       size="mini"
       border
+      :highlight-current-row = true
       @row-click="rowClick">
       <el-table-column
         prop="projectnum"
@@ -87,6 +89,10 @@ export default {
       this.total = res.total
       this.currentPage = res.pageNumber
       this.$emit('queryProduct',this.act_row?this.act_row.sa_projectid:res.data[0].sa_projectid)
+      this.$nextTick(()=>{
+
+        this.act_row?this.$refs.tableProject.setCurrentRow(this.list[this.act_row.rowindex -1]):this.$refs.tableProject.setCurrentRow(this.list[0])
+      })
     },
     async deleteProject (row) {
       const res = await this.$api.requested({

+ 13 - 2
src/template/salesForecastUseProject/addProduct.vue

@@ -110,7 +110,7 @@
                 width="90"
                 fixed="right">
               <template slot-scope="scope">
-                <el-button type="text" size="small" @click="addProduct(scope.row)">添加</el-button>
+                <el-button type="text" size="small" @click="batchSelect(scope.row)">添加1</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -171,7 +171,8 @@ export default {
       selectTotal:0,
       total:0,
       tableSelectData:[],
-      selectData:[]
+      selectData:[],
+      timer:0
     }
   },
   methods:{
@@ -225,6 +226,16 @@ export default {
         this.selectListData()
       })
     },
+    batchSelect(row){
+      this.debounce(this.addProduct,row,1000)(row)
+    },
+    debounce (fn,row, wait) {
+      let that = this
+      return function (row) {
+        if (that.timer !== null) clearTimeout(that.timer)
+        that.timer = setTimeout(fn, wait)
+      }
+    },
     /*选择要添加的数据*/
     selectionChange(val){
       console.log(val)

+ 14 - 4
src/template/salesForecastUseProject/index.vue

@@ -35,7 +35,7 @@
             label="操作"
             width="90">
             <template slot-scope="scope">
-              <el-button type="text" size="mini" @click="addProject(scope.row)">添 加</el-button>
+              <el-button type="text" size="mini" @click="batchSelect(scope.row)">添 加</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -75,7 +75,8 @@ export default {
       },
       list:[],
       currentPage:0,
-      total:0
+      total:0,
+      timer:0
     }
   },
   methods:{
@@ -99,10 +100,12 @@ export default {
       console.log(this.mainData)
       this.listData()
     },
+    batchSelect(row){
+      this.debounce(this.addProject(row),1000)()
+    },
     async addProject (row) {
       const res = await this.$api.requested({
         "id": 20220913154403,
-        "version":1,
         "content": {
           "sa_salesforecastmodelid":this.mainData.sa_salesforecastmodelid,
           "sa_salesforecastbillid":this.$route.query.id,
@@ -113,7 +116,14 @@ export default {
         this.$emit('onSuccess')
         this.listData()
       })
-    }
+    },
+    debounce (fn, wait) {
+      let that = this
+      return function () {
+        if (that.timer !== null) clearTimeout(that.timer)
+        that.timer = setTimeout(fn, wait)
+      }
+    },
   },
   mounted () {