zhangqi hace 2 años
padre
commit
88d312fb26

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

@@ -53,9 +53,9 @@
           {{scope.data.column.data[[scope.data.column.columnname]]}}
         </div>
       </template>
-      <template v-slot:tbOpreation="scope">
+     <!-- <template v-slot:tbOpreation="scope">
         <status-change class="inline-16" @deleteSuccess="$refs.basicLayout.listData()" :data="scope.data.data" />
-      </template>
+      </template> -->
     </basicLayout>
   </div>
 </template>

+ 1 - 2
src/HManagement/roleManage/modules/list.vue

@@ -46,8 +46,7 @@ export default {
   data () {
     return {
       param:{
-        "classname": "webmanage.role.role",
-        "method": "query_roleList",
+        "id":20221101131902,
         "content": {
             "pageNumber": 1,
             "pageSize": 20,

+ 1 - 2
src/HManagement/salesForecastTemplate/modules/add.vue

@@ -216,8 +216,7 @@ export default {
     },
     async queryRoles () {
       const res = await this.$api.requested({
-        "classname": "webmanage.role.role",
-        "method": "query_roleList",
+        "id":20221101131902,
         "content": {
           "pageNumber": 1,
           "pageSize": 1000,

+ 79 - 78
src/HManagement/salesForecastTemplate/modules/edit.vue

@@ -1,95 +1,97 @@
 <template>
   <div>
     <el-button :disabled="data.status === '结束' " type="default" size="mini" @click="onShow(dialogFormVisible = true)">编 辑</el-button>
-    <el-dialog title="编辑模板" append-to-body :visible.sync="dialogFormVisible" width="800px">
-      <el-row :gutter="20">
-        <el-form :model="form" ref="form" :rules="rules" label-position="left" 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="12">
-          <el-form-item label="开始日期" prop="begdate">
-            <el-date-picker
-              style="width:100%"
-              v-model="form.begdate"
-              type="date"
-              value-format="yyyy-MM-dd"
-              placeholder="选择日期">
-            </el-date-picker>
-          </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="结束日期" prop="enddate">
+    <el-drawer append-to-body title="编辑模板" :visible.sync="dialogFormVisible" size="800px">
+      <div class="drawer__panel">
+        <el-row :gutter="20">
+          <el-form :model="form" ref="form" :rules="rules" label-position="left" 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="12">
+            <el-form-item label="开始日期" prop="begdate">
               <el-date-picker
                 style="width:100%"
-                v-model="form.enddate"
+                v-model="form.begdate"
                 type="date"
                 value-format="yyyy-MM-dd"
                 placeholder="选择日期">
               </el-date-picker>
             </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="提醒时间" prop="taskdays">
-              <div class="flex-align-center"><span style="width:40px">提 前:</span><el-input type="number" style="width:200px" v-model="form.taskdays" placeholder="输入提醒时间"></el-input>&emsp;<span>天</span></div>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <div class="flex-align-center my-error-panel">
-              <el-form-item label="提报周期" prop="periodtype">
-                <el-select style="width:120px" v-model="form.periodtype" placeholder="请选择提报周期" @change="handleChange">
-                  <el-option label="每周" value="周"></el-option>
-                  <el-option label="每月" value="月"></el-option>
-                  <el-option label="仅一次" value="once"></el-option>
-                </el-select>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="结束日期" prop="enddate">
+                <el-date-picker
+                  style="width:100%"
+                  v-model="form.enddate"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提醒时间" prop="taskdays">
+                <div class="flex-align-center"><span style="width:40px">提 前:</span><el-input type="number" style="width:200px" v-model="form.taskdays" placeholder="输入提醒时间"></el-input>&emsp;<span>天</span></div>
               </el-form-item>
-              <el-form-item label-width="0px" prop="periodpoint">
-                <el-popover
-                  v-if="form.periodtype !== 'once'"
-                  placement="bottom"
-                  width="400"
-                  trigger="click">
-                  <div :class="error?'error':''" class="periodTags" slot="reference">
-                    <p v-if="form.periodpoint.length === 0">请选择</p>
-                    <div v-else>
-                      <el-tag v-for="item in form.periodpoint" type="info" size="mini" :key="item.index" style="margin-right:5px" @close="closeDate(item)" closable>
-                        {{form.periodtype === '周'?'周'+ `${item===7?'日':item}`:item+'日'}}
-                      </el-tag>
+            </el-col>
+            <el-col :span="24">
+              <div class="flex-align-center my-error-panel">
+                <el-form-item label="提报周期" prop="periodtype">
+                  <el-select style="width:120px" v-model="form.periodtype" placeholder="请选择提报周期" @change="handleChange">
+                    <el-option label="每周" value="周"></el-option>
+                    <el-option label="每月" value="月"></el-option>
+                    <el-option label="仅一次" value="once"></el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label-width="0px" prop="periodpoint">
+                  <el-popover
+                    v-if="form.periodtype !== 'once'"
+                    placement="bottom"
+                    width="400"
+                    trigger="click">
+                    <div :class="error?'error':''" class="periodTags" slot="reference">
+                      <p v-if="form.periodpoint.length === 0">请选择</p>
+                      <div v-else>
+                        <el-tag v-for="item in form.periodpoint" type="info" size="mini" :key="item.index" style="margin-right:5px" @close="closeDate(item)" closable>
+                          {{form.periodtype === '周'?'周'+ `${item===7?'日':item}`:item+'日'}}
+                        </el-tag>
+                      </div>
                     </div>
-                  </div>
-                  <el-row>
-                    <el-col :class="act === item?'act':''" @click.native="clickdate(item)" style="height:50px;line-height:50px;text-align:center;cursor: pointer;"  v-for="item in period" :key="item" :span="form.periodtype==='月'?4:8">{{form.periodtype === '周'?'周'+ `${item===7?'日':item}`:item+'日'}}</el-col>
-                  </el-row>
-                </el-popover>
+                    <el-row>
+                      <el-col :class="act === item?'act':''" @click.native="clickdate(item)" style="height:50px;line-height:50px;text-align:center;cursor: pointer;"  v-for="item in period" :key="item" :span="form.periodtype==='月'?4:8">{{form.periodtype === '周'?'周'+ `${item===7?'日':item}`:item+'日'}}</el-col>
+                    </el-row>
+                  </el-popover>
+                </el-form-item>
+              </div>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="提报要求">
+                <el-checkbox v-model="form.baseonproject" :true-label="1" :false-label="0">按项目及产品类别预测</el-checkbox>
               </el-form-item>
-            </div>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="提报要求">
-              <el-checkbox v-model="form.baseonproject" :true-label="1" :false-label="0">按项目及产品类别预测</el-checkbox>
-            </el-form-item>
-          </el-col>
-          <el-col :span="24">
-            <el-form-item label="备注">
-              <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注" :rows="3"></el-input>
-            </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="请选择角色" @remove-tag="removeTag" multiple>
-                <el-option v-for="item in rolelist" :key="item.index" :label="item.rolename" :value="item.roleid"></el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
-        </el-form>
-      </el-row>
-      <div class="dialog-footer">
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="备注">
+                <el-input type="textarea" v-model="form.remarks" placeholder="请输入备注" :rows="3"></el-input>
+              </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="请选择角色" @remove-tag="removeTag" multiple>
+                  <el-option v-for="item in rolelist" :key="item.index" :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-dialog>
+    </el-drawer>
   </div>
 </template>
 
@@ -233,8 +235,7 @@ export default {
     },
     async queryRoles () {
       const res = await this.$api.requested({
-        "classname": "webmanage.role.role",
-        "method": "query_roleList",
+        "id":20221101131902,
         "content": {
           "pageNumber": 1,
           "pageSize": 1000,

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

@@ -6,10 +6,11 @@
         :oldFormPath="{edit:'HManagement/salesForecastTemplate/modules'}"
         :editData="mainData"
         :mainAreaData="mainAreaData"
-        turnPageId="20221031141102"
+        turnPageId="20220906150203"
+        delApiId="20220906150603"
         idname="sa_salesforecastmodelid"
         tags=""
-        :tabs="['基础信息','销售预测记录']"
+        :tabs="['销售预测记录']"
         @pageChange="pageChange"
         @onEditSuccess="queryMainData($route.query.id)">
       <div slot="tags">
@@ -18,25 +19,7 @@
         <release v-if="tool.checkAuth($route.name,'update')" :data="mainData" @onSuccess="onSuccess"></release>
         <finish v-if="tool.checkAuth($route.name,'update')" :data="mainData" @onSuccess="onSuccess"></finish>
       </div>
-      <div class="container normal-panel" slot="slot0" >
-        <el-descriptions>
-          <el-descriptions-item label="单号">{{mainData.billnum}}</el-descriptions-item>
-          <el-descriptions-item label="预测模板">
-            {{mainData.title}}
-          </el-descriptions-item>
-          <el-descriptions-item label="提报周期">
-            <span v-for="i in mainData.periodpointchange" :key="i.index">
-              {{mainData.periodtype === '周'?'周'+ `${i===7?'日':i}`:i+'日'}},
-            </span>
-          </el-descriptions-item>
-          <el-descriptions-item label="提报要求">{{mainData.baseonproject === 1?'按项目预测':'无要求'}}</el-descriptions-item>
-          <el-descriptions-item label="提报人">{{mainData.name}}</el-descriptions-item>
-          <el-descriptions-item label="部门">{{mainData.depname}}</el-descriptions-item>
-          <el-descriptions-item label="职位">{{mainData.position}}</el-descriptions-item>
-          <el-descriptions-item label="提报时间">{{mainData.createdate}}</el-descriptions-item>
-        </el-descriptions>
-      </div>
-      <div slot="slot1" >
+      <div slot="slot0" >
         <forecastList ref="forecast" @tableRowClick="onTableClick"></forecastList>
         <submitDetail ref="submitDetail"></submitDetail>
       </div>
@@ -75,9 +58,26 @@ export default {
       })
       this.mainData = res.data
       this.$refs['forecast'].listData(this.$route.query.id,1)
+      this.changeDataStructure()
     },
     changeDataStructure() {
       this.mainAreaData = [
+        {
+          label:'状态',
+          value:this.mainData.status
+        },
+        {
+          label:'生效时间',
+          value:this.mainData.begdate.split(' ')[0]
+        },
+        {
+          label:'结束时间',
+          value:this.mainData.enddate.split(' ')[0]
+        },
+        {
+          label:'备注',
+          value:this.mainData.remark
+        },
       ]
     },
     // 监听切换数据,上一页,下一页

+ 7 - 33
src/SDrpManagement/salerPrivatecustomer/detail/customerDetail.vue

@@ -19,39 +19,13 @@
       </div>
       <div slot="customOperation" >
         <!-- 此区域提供了自定义操作按钮 -->
-        <el-popover
-          class="inline-16"
-          placement="bottom"
-          width="50"
-          trigger="focus"
-          v-model="visible"
-        >
-          <!-- <div class="normal-margin">
-            <transactionUser v-if="tool.checkAuth($route.name,'responsible')" @onshow="show"></transactionUser>
-          </div> -->
-          <div class="normal-margin">
-            <transaction_status v-if="tool.checkAuth($route.name,'transaction')" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></transaction_status>
-          </div>
-          <div class="normal-margin" v-show="mainData.datastatus === 0">
-            <lock v-if="tool.checkAuth($route.name,'lock')"   :id="mainData.sa_customersid" @onshow="onSuccess"></lock>
-          </div>
-          <div class="normal-margin" v-show="mainData.datastatus === 2">
-            <unlock v-if="tool.checkAuth($route.name,'unlock')" :id="mainData.sa_customersid" @onshow="onSuccess"></unlock>
-          </div>
-          <div class="normal-margin">
-            <share v-if="tool.checkAuth($route.name,'share') && mainData.poolname === ''" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></share>
-          </div>
-          <div class="normal-margin" >
-              <send_back v-if="tool.checkAuth($route.name,'back') "  :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></send_back>
-          </div>
-          <div class="normal-margin" v-show="mainData.datastatus !== 1">
-            <to_void v-if="tool.checkAuth($route.name,'toVoid')" :id="mainData.sa_customersid" @onshow="onSuccess" @toVoidSuccess="onSuccess"></to_void>
-          </div>
-          <div class="normal-margin" >
-            <recovery v-if="tool.checkAuth($route.name,'recovery') "  :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></recovery>
-          </div>
-          <el-button size="mini" slot="reference" icon="el-icon-more" @click="visible = !visible"></el-button>
-        </el-popover>
+        <transaction_status class="inline-16" v-if="tool.checkAuth($route.name,'transaction')" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></transaction_status>
+        <!--<lock class="inline-16" v-if="tool.checkAuth($route.name,'lock')"   :id="mainData.sa_customersid" @onshow="onSuccess"></lock>-->
+         <!--<unlock class="inline-16" v-if="tool.checkAuth($route.name,'unlock')" :id="mainData.sa_customersid" @onshow="onSuccess"></unlock> -->
+        <share class="inline-16" v-if="tool.checkAuth($route.name,'share') && mainData.poolname === ''" :id="mainData.sa_customersid" @onshow="onSuccess" @shareSuccess="onSuccess"></share>
+        <send_back style="display:inline" v-if="tool.checkAuth($route.name,'back') "  :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></send_back>
+        <to_void class="inline-16" v-if="tool.checkAuth($route.name,'toVoid')" :id="mainData.sa_customersid" @onshow="onSuccess" @toVoidSuccess="onSuccess"></to_void>
+        <recovery class="inline-16" v-if="tool.checkAuth($route.name,'recovery') "  :data="mainData" @onshow="onSuccess" @backSuccess="onSuccess"></recovery>
       </div>
       <div slot="slot0" >
         <detailed ref="detailed"></detailed>

+ 4 - 4
src/SDrpManagement/salerPrivatecustomer/detail/modules/operation/sendBack.vue

@@ -1,14 +1,14 @@
 <template>
   <div>
-    <el-button style="width:100%" size="mini" v-show="this.name !== this.createby"  block @click="onshow">退回至公海</el-button>
-    <el-dialog title="" :visible.sync="dialogForm" width="900px" append-to-body>
+    <el-button class="inline-16" style="width:100%" size="mini" v-show="this.name !== this.createby"  block @click="onshow">退回至公海</el-button>
+    <el-dialog title="" :visible.sync="dialogForm" width="400px" append-to-body>
       <div slot="title" style="font-size: 15px">
         退回至公海
       </div>
       <div>
         <el-row :gutter="20">
-          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="right" label-width="90px">
-            <el-col :span="20">
+          <el-form :model="form" :rules="rules"  ref="form"  size="mini" label-position="top" label-width="90px">
+            <el-col :span="24">
               <el-form-item prop="sa_customerpoolid"  label="公海池:" >
                 <el-select v-model="form.sa_customerpoolid" placeholder="请选择公海池" style="width: 100%">
                   <el-option

+ 1 - 1
src/SDrpManagement/salerPrivatecustomer/detail/modules/operation/transactionStatus.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <el-button style="width:100%" size="mini"  block @click="onshow">更改成交状态</el-button>
+    <el-button size="mini"  block @click="onshow">更改成交状态</el-button>
     <el-dialog title="" :visible.sync="dialogForm" width="400px" append-to-body>
       <div slot="title" style="font-size: 15px">
         更改成交状态

+ 267 - 0
src/SManagement/sales_forecast/bak/index copy.vue

@@ -0,0 +1,267 @@
+<template>
+  <div class="sales">
+    <div class="container normal-panel">
+      <p class="normal-title normal-margin">预测提报任务</p>
+      <div class="header-handle">
+        <Search @searchActive="searchActive" @clearData="clearData" />
+        <DownSelect @selectChange="categoryChange" @clearCategory="clearCategory" title="提报要求:"
+          :list="[{label:'按产品类别预测',value:'0'},{label:'按项目及产品类别预测',value:'1'}]" style="margin-right:16px" />
+      </div>
+      <tableLayout v-if="salesPanelList" :layout="tablecols" :data="salesPanelList" :custom="true" height="30vh"
+        @rowClick="rowClick" fixedName="operation">
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname == 'periodtype'">
+            <span>
+              {{scope.column.data.periodpoint | timer(scope.column.data[scope.column.columnname])}}
+            </span>
+          </div>
+          <div v-else-if="scope.column.columnname == 'baseonproject'">
+            <span v-if="scope.column.data[scope.column.columnname] == '1'">按项目及产品类别预测</span>
+            <span v-else>按产品类别预测</span>
+          </div>
+          <div v-else-if="scope.column.columnname == 'date'">
+            <span>{{scope.column.data.begdate}}至{{scope.column.data.enddate}}</span>
+          </div>
+          <div v-else-if="scope.column.columnname == 'status'">
+            <span :style="scope.column.data[scope.column.columnname] == '发布' ? 'color: rgb(82, 196, 26)' : ''">{{scope.column.data[scope.column.columnname]}}</span>
+          </div>
+          <span v-else>{{scope.column.data[scope.column.columnname]}}</span>
+        </template>
+        <template v-slot:opreation="scope">
+          <el-button type="text" size="small" @click="addBuill(scope)"
+            v-if="tool.checkAuth($route.name,'create_sales')" :disabled="scope.data.status == '结束' || new Date().valueOf() > new Date(scope.data.enddate).valueOf()">创建提报</el-button>
+        </template>
+      </tableLayout>
+      <pagination :total="total" :pageSize="params.content.pageSize" :currentPage="params.content.pageNumber"
+        @pageChange="pageChange" style="margin-top:16px;display:flex;justify-content: flex-end;">
+      </pagination>
+    </div>
+    <div class="container normal-panel" style="margin-top:16px">
+      <p class="normal-title normal-margin">销售预测记录</p>
+      <div class="header-handle">
+        <Search @searchActive="searchActive2" @clearData="clearData2" />
+        <time-select @clearSelect="clearTime" @timeChange="timeChange" title="提报时间:"></time-select>
+      </div>
+      <tableLayout :layout="tablecols2" :data="historyList" :custom="true" height="30vh">
+        <template v-slot:customcol="scope">
+          <div v-if="scope.column.columnname == 'periodtype'">
+            <span>
+              {{scope.column.data.periodpoint | timer(scope.column.data[scope.column.columnname])}}
+            </span>
+          </div>
+          <div v-else-if="scope.column.columnname == 'baseonproject'">
+            <span v-if="scope.column.data[scope.column.columnname] == '1'">按项目及产品类别预测</span>
+            <span v-else>按产品类别预测</span>
+          </div>
+          <span v-else>{{scope.column.data[scope.column.columnname]}}</span>
+        </template>
+        <template v-slot:opreation="scope">
+          <el-button type="text" size="small" @click="goDetail(scope.data)"
+            v-if="tool.checkAuth($route.name,'read') && scope.data.isoverdue == 1">详情</el-button>
+          <el-button type="text" size="small" @click="goEdit(scope.data)"
+            v-else-if="tool.checkAuth($route.name,'update') && scope.data.isoverdue == 0">编辑</el-button>
+        </template>
+      </tableLayout>
+    </div>
+
+  </div>
+</template>
+
+<script>
+import Header from '@/SManagement/archives_upload/components/Header'
+import Search from '@/components/search/index'
+import DownSelect from '@/components/down_select/index'
+import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
+import Pagination from '@/components/pagination/Pagination'
+import { log } from '@antv/g2plot/lib/utils'
+export default {
+  name: '',
+  data () {
+    return {
+      params: {
+        "id": 20220906154403,
+        "version": 1,
+        "content": {
+          "nocache": true,
+          "pageNumber": 1,
+          "pageSize": 12,
+          "where": {
+            "condition": "",
+            "baseonproject": "",
+            "begindate": '',
+            "enddate": ''
+          }
+        }
+      },
+      /* 销售模板list */
+      salesPanelList: '',
+      /* 当前选中的模板id */
+      selectPanelId: '',
+      /* 提报记录数据 */
+      historyList: [],
+      tablecols: '',
+      tablecols2: '',
+      total: 0,
+      /* 开始时间 */
+      begindate: '',
+      /* 结束时间 */
+      enddate: '',
+      condition:''
+    };
+  },
+  components: { Header, Search, DownSelect, TimeSelect, Pagination },
+  computed: {
+  },
+  watch: {
+  },
+  filters: {
+    timer (val, type) {
+      if (type == '月') {
+        return '每月' + val.substr(1, val.length - 2) + '日'
+      } else {
+        return '每周' + val.substr(1, val.length - 2)
+      }
+    }
+  },
+  created () {
+    this.getSalesPanel()
+    this.tablecols = this.tool.tabelCol(this.$route.name).SalesPanelTable.tablecols
+    this.tablecols2 = this.tool.tabelCol(this.$route.name).salesHistoryTable.tablecols
+  },
+  methods: {
+    /* 获取销售预测模板 */
+    async getSalesPanel () {
+      let res = await this.$api.requested(this.params)
+      this.salesPanelList = res.data
+      this.total = res.total
+      this.historyList = []
+      console.log(res);
+    },
+    /* 获取提报记录数据 */
+    async getSalesDetail () {
+      let res = await this.$api.requested({
+        "id": 20220908134403,
+        "version": 1,
+        "content": {
+          "nocache": true,
+          "sa_salesforecastmodelid": this.selectPanelId,
+          "where": {
+            "begindate": this.begindate,
+            "enddate": this.enddate,
+            "condition":this.condition
+          }
+        }
+      })
+      this.historyList = res.data
+      console.log(this.historyList);
+    },
+    async rowClick (data) {
+      this.selectPanelId = data.sa_salesforecastmodelid
+      this.getSalesDetail()
+
+    },
+    /* 创建提报 */
+    async addBuill (data) {
+      if(data.data.status == '结束') return 
+      let res = await this.$api.requested({
+        "id": 20220913154403,
+        "version": 1,
+        "content": {
+          "sa_salesforecastmodelid": data.data.sa_salesforecastmodelid,
+          "sa_salesforecastbillid": 0,
+          "sa_projectids": data.data.baseonproject == 1 ? [] : [0]
+        }
+      })
+      if (res.code == 0) {
+        this.$notify({
+          title: '提示',
+          message: res.msg,
+          type: 'warning'
+        })
+      } else {
+        console.log(res);
+        this.$router.push({ path: data.data.baseonproject == 1 ? '/edit_sales' : '/edit_product', query: { id: res.data[0].sa_salesforecastbillid, id2: data.data.sa_salesforecastmodelid, header: 'panel' } })
+      }
+    },
+    /* 前往详情页 */
+    goDetail (data) {
+      if (data.baseonproject == 0) {
+        this.$router.push({ path: '/product_detail', query: { id: data.sa_salesforecastbillid } })
+      } else {
+        this.$router.push({ path: '/project_detail', query: { id: data.sa_salesforecastbillid, type: 'product' } })
+      }
+    },
+    /* 前往编辑页 */
+    goEdit (data) {
+      /* 跳转到产品编辑页 */
+      if (data.baseonproject == 0) {
+        this.$router.push({ path: '/edit_product', query: { id: data.sa_salesforecastbillid, id2: data.sa_salesforecastmodelid } })
+        /* 跳转到项目编辑页 */
+      } else {
+        this.$router.push({ path: '/edit_sales', query: { id: data.sa_salesforecastbillid, id2: data.sa_salesforecastmodelid, type: 'project' } })
+      }
+    },
+    pageChange (n) {
+      this.params.content.pageNumber = n
+      this.getSalesPanel()
+    },
+    /* 模板搜索 */
+    searchActive (data) {
+      this.params.content.where.condition = data
+      this.params.content.pageNumber = 1
+      this.getSalesPanel()
+    },
+    /* 模板清除搜索 */
+    clearData () {
+      this.params.content.where.condition = ''
+      this.params.content.pageNumber = 1
+      this.getSalesPanel()
+    },
+    /* 提报搜索 */
+    searchActive2 (data) {
+      this.condition = data
+      this.params.content.pageNumber = 1
+      this.getSalesDetail()
+    },
+    /* 提报清除搜索 */
+    clearData2 () {
+      this.condition = ''
+      this.params.content.pageNumber = 1
+      this.getSalesDetail()
+    },
+    /* 清除分类 */
+    clearCategory () {
+      this.params.content.where.baseonproject = ''
+      this.params.content.pageNumber = 1
+      this.getSalesPanel()
+    },
+    /* 分类改变 */
+    categoryChange (data) {
+      console.log(222);
+      this.params.content.where.baseonproject = data
+      this.params.content.pageNumber = 1
+      this.getSalesPanel()
+    },
+    /* 时间赛选改变 */
+    timeChange (time) {
+      this.begindate = time[0]
+      this.enddate = time[1]
+      this.getSalesDetail()
+    },
+    /* 清除时间赛选 */
+    clearTime () {
+      this.begindate = ''
+      this.enddate = ''
+      this.getSalesDetail()
+    },
+  },
+};
+</script>
+
+<style scoped>
+.sales .header-handle {
+  display: flex;
+  align-items: center;
+  margin-bottom: 16px;
+}
+</style>

+ 36 - 255
src/SManagement/sales_forecast/index.vue

@@ -1,267 +1,48 @@
-<template>
-  <div class="sales">
-    <div class="container normal-panel">
-      <p class="normal-title normal-margin">预测提报任务</p>
-      <div class="header-handle">
-        <Search @searchActive="searchActive" @clearData="clearData" />
-        <DownSelect @selectChange="categoryChange" @clearCategory="clearCategory" title="提报要求:"
-          :list="[{label:'按产品类别预测',value:'0'},{label:'按项目及产品类别预测',value:'1'}]" style="margin-right:16px" />
-      </div>
-      <tableLayout v-if="salesPanelList" :layout="tablecols" :data="salesPanelList" :custom="true" height="30vh"
-        @rowClick="rowClick" fixedName="operation">
-        <template v-slot:customcol="scope">
-          <div v-if="scope.column.columnname == 'periodtype'">
-            <span>
-              {{scope.column.data.periodpoint | timer(scope.column.data[scope.column.columnname])}}
-            </span>
-          </div>
-          <div v-else-if="scope.column.columnname == 'baseonproject'">
-            <span v-if="scope.column.data[scope.column.columnname] == '1'">按项目及产品类别预测</span>
-            <span v-else>按产品类别预测</span>
-          </div>
-          <div v-else-if="scope.column.columnname == 'date'">
-            <span>{{scope.column.data.begdate}}至{{scope.column.data.enddate}}</span>
-          </div>
-          <div v-else-if="scope.column.columnname == 'status'">
-            <span :style="scope.column.data[scope.column.columnname] == '发布' ? 'color: rgb(82, 196, 26)' : ''">{{scope.column.data[scope.column.columnname]}}</span>
-          </div>
-          <span v-else>{{scope.column.data[scope.column.columnname]}}</span>
-        </template>
-        <template v-slot:opreation="scope">
-          <el-button type="text" size="small" @click="addBuill(scope)"
-            v-if="tool.checkAuth($route.name,'create_sales')" :disabled="scope.data.status == '结束' || new Date().valueOf() > new Date(scope.data.enddate).valueOf()">创建提报</el-button>
-        </template>
-      </tableLayout>
-      <pagination :total="total" :pageSize="params.content.pageSize" :currentPage="params.content.pageNumber"
-        @pageChange="pageChange" style="margin-top:16px;display:flex;justify-content: flex-end;">
-      </pagination>
-    </div>
-    <div class="container normal-panel" style="margin-top:16px">
-      <p class="normal-title normal-margin">销售预测记录</p>
-      <div class="header-handle">
-        <Search @searchActive="searchActive2" @clearData="clearData2" />
-        <time-select @clearSelect="clearTime" @timeChange="timeChange" title="提报时间:"></time-select>
-      </div>
-      <tableLayout :layout="tablecols2" :data="historyList" :custom="true" height="30vh">
-        <template v-slot:customcol="scope">
-          <div v-if="scope.column.columnname == 'periodtype'">
-            <span>
-              {{scope.column.data.periodpoint | timer(scope.column.data[scope.column.columnname])}}
-            </span>
-          </div>
-          <div v-else-if="scope.column.columnname == 'baseonproject'">
-            <span v-if="scope.column.data[scope.column.columnname] == '1'">按项目及产品类别预测</span>
-            <span v-else>按产品类别预测</span>
-          </div>
-          <span v-else>{{scope.column.data[scope.column.columnname]}}</span>
-        </template>
-        <template v-slot:opreation="scope">
-          <el-button type="text" size="small" @click="goDetail(scope.data)"
-            v-if="tool.checkAuth($route.name,'read') && scope.data.isoverdue == 1">详情</el-button>
-          <el-button type="text" size="small" @click="goEdit(scope.data)"
-            v-else-if="tool.checkAuth($route.name,'update') && scope.data.isoverdue == 0">编辑</el-button>
-        </template>
-      </tableLayout>
-    </div>
 
+<template>
+  <div>
+    <basicLayout 
+      ref="basicLayout" 
+      :oldFormPath="{
+        add:'HManagement/salesForecastTemplate/modules'
+      }"
+      tableName="SalesPanelTable" 
+      idName="sa_salesforecastmodelid" 
+      :apiId="{query:20220906154403}"
+      :options="options"
+      :detailPath="{
+        path:'/salesForecastDetail'
+      }">
+      <div slot="custom"></div>
+      <template v-slot:tbList="scope">
+        <div>
+          {{scope.data.column.data[[scope.data.column.columnname]]}}
+        </div>
+      </template>
+    </basicLayout>
   </div>
 </template>
 
 <script>
-import Header from '@/SManagement/archives_upload/components/Header'
-import Search from '@/components/search/index'
-import DownSelect from '@/components/down_select/index'
-import TimeSelect from '@/SManagement/submitedit_one/components/TimeSelect'
-import Pagination from '@/components/pagination/Pagination'
-import { log } from '@antv/g2plot/lib/utils'
+/**
+ * @basicLayout 提供this.$ref['basicLayout'].listData()方法查询列表信息
+ * @param {string} formPath 新建,编辑组件所在文件夹名称,以后所有列表新增修改文件统一放入Form文件夹下面,并创建与开发应用相同的名称的子文件夹
+ * @param {string} tableName 开发端配置的表格名称
+ * @param {String} idName 数据主id名称
+ * @param {object} apiId:{query:查询的接口id,del:删除的接口id} 
+ * @param {Array} options:{label:描述,value:值} 
+ */
 export default {
-  name: '',
   data () {
     return {
-      params: {
-        "id": 20220906154403,
-        "version": 1,
-        "content": {
-          "nocache": true,
-          "pageNumber": 1,
-          "pageSize": 12,
-          "where": {
-            "condition": "",
-            "baseonproject": "",
-            "begindate": '',
-            "enddate": ''
-          }
-        }
-      },
-      /* 销售模板list */
-      salesPanelList: '',
-      /* 当前选中的模板id */
-      selectPanelId: '',
-      /* 提报记录数据 */
-      historyList: [],
-      tablecols: '',
-      tablecols2: '',
-      total: 0,
-      /* 开始时间 */
-      begindate: '',
-      /* 结束时间 */
-      enddate: '',
-      condition:''
-    };
-  },
-  components: { Header, Search, DownSelect, TimeSelect, Pagination },
-  computed: {
-  },
-  watch: {
-  },
-  filters: {
-    timer (val, type) {
-      if (type == '月') {
-        return '每月' + val.substr(1, val.length - 2) + '日'
-      } else {
-        return '每周' + val.substr(1, val.length - 2)
-      }
+      options:[]
+      
     }
   },
-  created () {
-    this.getSalesPanel()
-    this.tablecols = this.tool.tabelCol(this.$route.name).SalesPanelTable.tablecols
-    this.tablecols2 = this.tool.tabelCol(this.$route.name).salesHistoryTable.tablecols
-  },
-  methods: {
-    /* 获取销售预测模板 */
-    async getSalesPanel () {
-      let res = await this.$api.requested(this.params)
-      this.salesPanelList = res.data
-      this.total = res.total
-      this.historyList = []
-      console.log(res);
-    },
-    /* 获取提报记录数据 */
-    async getSalesDetail () {
-      let res = await this.$api.requested({
-        "id": 20220908134403,
-        "version": 1,
-        "content": {
-          "nocache": true,
-          "sa_salesforecastmodelid": this.selectPanelId,
-          "where": {
-            "begindate": this.begindate,
-            "enddate": this.enddate,
-            "condition":this.condition
-          }
-        }
-      })
-      this.historyList = res.data
-      console.log(this.historyList);
-    },
-    async rowClick (data) {
-      this.selectPanelId = data.sa_salesforecastmodelid
-      this.getSalesDetail()
+  methods:{
+  }
+}
 
-    },
-    /* 创建提报 */
-    async addBuill (data) {
-      if(data.data.status == '结束') return 
-      let res = await this.$api.requested({
-        "id": 20220913154403,
-        "version": 1,
-        "content": {
-          "sa_salesforecastmodelid": data.data.sa_salesforecastmodelid,
-          "sa_salesforecastbillid": 0,
-          "sa_projectids": data.data.baseonproject == 1 ? [] : [0]
-        }
-      })
-      if (res.code == 0) {
-        this.$notify({
-          title: '提示',
-          message: res.msg,
-          type: 'warning'
-        })
-      } else {
-        console.log(res);
-        this.$router.push({ path: data.data.baseonproject == 1 ? '/edit_sales' : '/edit_product', query: { id: res.data[0].sa_salesforecastbillid, id2: data.data.sa_salesforecastmodelid, header: 'panel' } })
-      }
-    },
-    /* 前往详情页 */
-    goDetail (data) {
-      if (data.baseonproject == 0) {
-        this.$router.push({ path: '/product_detail', query: { id: data.sa_salesforecastbillid } })
-      } else {
-        this.$router.push({ path: '/project_detail', query: { id: data.sa_salesforecastbillid, type: 'product' } })
-      }
-    },
-    /* 前往编辑页 */
-    goEdit (data) {
-      /* 跳转到产品编辑页 */
-      if (data.baseonproject == 0) {
-        this.$router.push({ path: '/edit_product', query: { id: data.sa_salesforecastbillid, id2: data.sa_salesforecastmodelid } })
-        /* 跳转到项目编辑页 */
-      } else {
-        this.$router.push({ path: '/edit_sales', query: { id: data.sa_salesforecastbillid, id2: data.sa_salesforecastmodelid, type: 'project' } })
-      }
-    },
-    pageChange (n) {
-      this.params.content.pageNumber = n
-      this.getSalesPanel()
-    },
-    /* 模板搜索 */
-    searchActive (data) {
-      this.params.content.where.condition = data
-      this.params.content.pageNumber = 1
-      this.getSalesPanel()
-    },
-    /* 模板清除搜索 */
-    clearData () {
-      this.params.content.where.condition = ''
-      this.params.content.pageNumber = 1
-      this.getSalesPanel()
-    },
-    /* 提报搜索 */
-    searchActive2 (data) {
-      this.condition = data
-      this.params.content.pageNumber = 1
-      this.getSalesDetail()
-    },
-    /* 提报清除搜索 */
-    clearData2 () {
-      this.condition = ''
-      this.params.content.pageNumber = 1
-      this.getSalesDetail()
-    },
-    /* 清除分类 */
-    clearCategory () {
-      this.params.content.where.baseonproject = ''
-      this.params.content.pageNumber = 1
-      this.getSalesPanel()
-    },
-    /* 分类改变 */
-    categoryChange (data) {
-      console.log(222);
-      this.params.content.where.baseonproject = data
-      this.params.content.pageNumber = 1
-      this.getSalesPanel()
-    },
-    /* 时间赛选改变 */
-    timeChange (time) {
-      this.begindate = time[0]
-      this.enddate = time[1]
-      this.getSalesDetail()
-    },
-    /* 清除时间赛选 */
-    clearTime () {
-      this.begindate = ''
-      this.enddate = ''
-      this.getSalesDetail()
-    },
-  },
-};
 </script>
-
-<style scoped>
-.sales .header-handle {
-  display: flex;
-  align-items: center;
-  margin-bottom: 16px;
-}
-</style>
+<style>
+</style>

+ 15 - 4
src/components/newLayout/modules/aside.vue

@@ -1,6 +1,8 @@
 <template>
   <div class="aside__panel">
-    <div class="logo">管理平台</div>
+    <div class="logo">
+      <img v-show="img.usetype === 'actionlogo'" v-for="img in siteinfo.attinfos" :key="img.index" style="height:40px" :src="img.url" alt="">
+    </div>
     <el-menu
       style="background:none"
       text-color="#fff"
@@ -32,7 +34,8 @@ export default {
   },
   computed:{
     ...mapGetters({
-      menuApp:'menuApp'
+      menuApp:'menuApp',
+      siteinfo:'siteinfo',
     })
   },
   methods:{
@@ -91,14 +94,22 @@ export default {
 .is-active .menuIconClose{
   display: block !important;
 }
+
 </style>
 <style scoped>
+.is-active{
+  background-color: rgba(255 ,255,255,1) !important;
+  border-radius: 0 40px 40px 0;
+  color:#333 !important;
+}
 .logo{
-  width: calc(200px);
+  display:flex;
+  align-items:center;
+  justify-content:flex-start;
   height: 62px;
   line-height: 62px;
   color:#fff;
-  padding-left: 20px;
+  padding-left:20px;
   /* border-right: 1px solid #f1f2f3; */
 }
 .menuIconClose{

+ 2 - 2
src/router/HManagement.js

@@ -507,7 +507,7 @@ const HManagement = [
     path: '/salesForecastTemplate',
     name: 'salesForecastTemplate',
     meta: {
-      title: '销售预测模板设置',
+      title: '预测模板',
       ast_nav: true,
       keeproute: true
     },
@@ -516,7 +516,7 @@ const HManagement = [
       path: '/salesForecastDetail',
       name: 'salesForecastTemplate',
       meta: {
-        title: '销售预测模板设置',
+        title: '预测模板',
         ast_nav: true,
         keeproute: true
       },