Forráskód Böngészése

导入日期更改,去掉指标单元格,新增只看我的

Karsa 1 éve
szülő
commit
6c1b72102b

+ 2 - 2
src/routes/modules/chartRoutes.js

@@ -102,7 +102,7 @@ export default [
 		children:[
 			{
 				path:"sheetList",
-				name:"在线Excel",
+				name:"共享表格",
 				component:()=>import('@/views/datasheet_manage/sheetList.vue')
 			},
 			{
@@ -121,7 +121,7 @@ export default [
 				component:()=>import('@/views/datasheet_manage/addSheet.vue'),
 				meta: { 
 					pathFrom: "sheetList",
-					pathName: "在线Excel",
+					pathName: "共享表格",
 				}
 			},
 			{

+ 2 - 2
src/views/datasheet_manage/common/customTable.js

@@ -140,8 +140,8 @@ export function getRightClickMenu(pos,canEdit=false) {
   let cellMenu = [
     { label: "根据表格中日期选择指标值", key: "choose-target" },
     // { label: "插入指标值", key: "insert-value" },
-    { label: "导入系统日期", key: "insert-sys-date" },
-    { label: "导入指标日期", key: "insert-edb-date" },
+    { label: "导入日期", key: "insert-date" },
+    // { label: "导入指标日期", key: "insert-edb-date" },
     { label: "指标计算",
       key: "insert-edb-calculate",
       children: [

+ 9 - 24
src/views/datasheet_manage/components/MixedTable.vue

@@ -111,17 +111,18 @@
                 v-else
                 v-model="cell.Value"
                 :ref="`inputRef${cell.Uid}`"
-                :fetch-suggestions="searchTarget"
                 popper-class="edb-select-popover"
                 :data-key="cell.Uid"
                 :data-rindex="rowHeader[index]"
                 :data-cindex="columnHeader[cell_index]"
-                :highlight-first-item="cell.DataType===2"
-                @select="selectTarget($event,cell)"
+                :fetch-suggestions="searchTarget"
                 @click="clickCell($event, cell)"
                 @change.native="changeVal($event, cell)"
                 @keydown.native="keyEnterHandle($event,cell)"
               >
+                <!-- @select="selectTarget($event,cell)"
+                :highlight-first-item="cell.DataType===2"
+                 -->
                 <template slot-scope="scope">
                     <edbDetailPopover :info="scope.item">
                       <div slot="reference" v-if="cell.DataType===2" class="edb-item">
@@ -308,8 +309,10 @@ export default {
   },
   methods: {
 
-    /* 输入时实时搜索 满足日期格式不搜索 有=视为输入公式不搜索 */
+    /* 输入时实时搜索 满足日期格式不搜索 有=视为输入公式不搜索  eta1.5.6弃用了*/
     async searchTarget(query,cb) {
+      return cb([])
+      
       //又要过滤掉2020-05-这样的奇葩其他格式 不让检索
       let dateOtherRegex = /^(?:(?:19|20)\d\d)([-])(0[1-9]|1[0-2])(-?)$/
       if(!query
@@ -342,13 +345,6 @@ export default {
       
       setFocus(e);
 
-      /* 如果当前有公式单元格在编辑就拼接当前单元格进公式 */
-      // if(this.calculateClickCell && this.calculateClickCell.Uid!==cell.Uid) {
-      //   console.log(this.calculateClickCell)
-      //   const { cindex,rindex } = e.target.dataset;
-      //   this.calculateClickCell.Value += `${cindex}${rindex}`
-      // }
-
       //是插值单元格时寻找关联依赖的单元格 设置选框
       if([4,5,7].includes(cell.DataType)) {
         const { key } = e.target.dataset;
@@ -387,17 +383,6 @@ export default {
       const res = await sheetInterface.insertData({EdbInfoId,Date})
       if(res.Ret !==200) return
 
-      //日期无值也要建立关联关系
-      // if(!res.Data&&!DataTimeType){
-      //   this.selectCell.DataType = 3;
-      //   this.selectCell.DataTimeType = 0;
-      //   this.selectCell.ShowValue = '';
-      //   this.selectCell.Value = '';
-      //   this.selectCell.DataTime = '';
-      //   this.selectCell.EdbInfoId = 0;
-      //   this.$message.warning('所选指标的所选日期无值')
-      //   return
-      // }
 
       res.Data ? this.$message.success('插入成功') : this.$message.warning('当前日期暂无值') 
 
@@ -726,8 +711,8 @@ export default {
         'insert-row-down': this.insertRow,//向下插入行
         'insert-value': this.insertValue,//插入值
         'choose-target': this.selectTargetOpen,//选择指标插入值
-        'insert-sys-date': this.insertDateOpen,//导入系统日期
-        'insert-edb-date': this.insertDateOpen,//导入指标日期
+        'insert-date': this.insertDateOpen,//导入系统日期
+        // 'insert-edb-date': this.insertDateOpen,//导入指标日期
         'reset': this.clearCell, //清空
         'cell-edit': this.selectCell ? editHandlesMap[this.selectCell.DataType] : null
       }

+ 164 - 0
src/views/datasheet_manage/components/dateMoveWaySection.vue

@@ -0,0 +1,164 @@
+<template>
+  <div class="date-change-ways">
+    <div class="header date-item">
+      <label class="el-form-item__label">日期变换</label>
+                
+      <el-select v-model="dateChangeSelect" placeholder="请选择" style="width:110px">
+        <el-option label="日期位移" :value="1"/>
+        <el-option label="指定频率" :value="2"/>
+      </el-select>
+
+      <el-button type="text" style="margin: 0 10px;" @click="addDateChange">添加</el-button>
+    </div>
+    
+    <ul v-if="dateChangeArr.length" class="date-change-list">
+      <li v-for="dateItem in dateChangeArr" :key="dateItem.type" class="date-change-li">
+
+        <div v-if="dateItem.Type===1" class="date-item">
+          <el-tag type="info" style="margin-right:15px">日期位移</el-tag>
+          <div>
+            <el-input
+              v-model="dateItem.DayNum"
+              type="number"
+              style="margin-right:10px;width:60px"
+              @change="e => {dateItem.DayNum=Number(e)}"
+            />天
+            <el-input
+              v-model="dateItem.MonthNum"
+              type="number"
+              style="margin-right:10px;width:60px"
+              @change="e => {dateItem.MonthNum=Number(e)}"
+            />天
+            <el-input
+              v-model="dateItem.YearNum"
+              type="number"
+              style="margin-right:10px;width:60px"
+              @change="e => {dateItem.YearNum=Number(e)}"
+            />天
+          </div>
+          <i class="el-icon-delete" @click="removeDateItem"></i>
+        </div>
+
+        <div v-else-if="dateItem.Type===2" class="date-item">
+          <el-tag type="info" style="margin-right:15px">指定频率</el-tag>
+          <el-select
+              style="max-width: 120px;"
+              v-model="dateItem.Frequency"
+              placeholder="请选择频度"
+              @change="dateItem.Day=frequencyDaysOptions[0].name"
+          >
+            <el-option
+                v-for="item in frequencyOptions"
+                :key="item.value"
+                :label="item.name"
+                :value="item.value"
+            />
+          </el-select>
+
+          <el-select
+              style="max-width: 120px;margin:0 10px"
+              v-model="dateItem.Day"
+              placeholder="请选择"
+          >
+            <el-option
+                v-for="item in frequencyDaysOptions"
+                :key="item.name"
+                :label="item.name"
+                :value="item.name"
+            />
+          </el-select>
+
+          <i class="el-icon-delete" @click="removeDateItem"></i>
+        </div>
+      </li>
+    </ul>
+  </div>
+</template>
+<script>
+export default {
+  computed: {
+    frequencyDaysOptions() {
+      let typeMap = {
+        '本周': [
+          { name: '周一' },
+          { name: '周二' },
+          { name: '周三' },
+          { name: '周四' },
+          { name: '周五' },
+          { name: '周六' },
+          { name: '周日' },
+        ]
+      }
+      
+      let obj = this.dateChangeArr.find(_ => _.Type===2);
+      if(!obj) return []
+
+      return typeMap[obj.Frequency] 
+        ? typeMap[obj.Frequency] 
+        : [{name:'第一天'},{name:'最后一天'}]
+    }
+  },
+  data() {
+    return {
+      dateChangeSelect: 1,
+      dateChangeArr: [
+
+      ],
+
+      frequencyOptions: [
+        { name: '本周', value: '本周' },
+        { name: '本旬', value: '本旬' },
+        { name: '本月', value: '本月' },
+        { name: '本季', value: '本季' },
+        { name: '本半年', value: '本半年' },
+        { name: '本年', value: '本年' },
+      ],
+    }
+  },
+  mounted(){
+
+  },
+  methods:{
+    /* 提加日期变换数组 */
+    addDateChange() {
+      let haveObj = this.dateChangeArr.find(_ => _.Type===this.dateChangeSelect);
+      if(haveObj) return this.$message.warning(this.dateChangeSelect===1?'已添加日期位移':'已添加指定频率')
+      let item = {
+        Type: this.dateChangeSelect,
+        DayNum: 0,
+        MonthNum: 0,
+        YearNum: 0,
+        Frequency: '本周',
+        Day: '周一'
+      }
+
+      this.dateChangeArr.push(item)
+    },
+
+    removeDateItem(index) {
+      this.dateChangeArr.splice(index,1)
+    }
+  },
+}
+</script>
+<style scoped lang='scss'>
+.date-change-ways {
+  padding-left: 20px;
+  .date-change-list {
+    padding-left: 80px;
+  }
+  .date-change-li {
+    margin: 10px 0;
+  }
+  .date-item {
+    display: flex;
+    align-items: center;
+    .el-icon-delete {
+      color: #f00;
+      font-size: 16px;
+      margin:0 10px;
+      cursor: pointer;
+    }
+  }
+}
+</style>

+ 103 - 63
src/views/datasheet_manage/components/insertDateDia.vue

@@ -3,85 +3,85 @@
 		:visible.sync="isShow"
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
-    :title="titleMap[info.key]"
+    title="导入日期"
 		@close="cancelHandle"
 		custom-class="dialog"
 		center
-		width="560px"
+		width="650px"
 		v-dialogDrag>
 			<div class="dialog-main">
           <!-- 导入系统日期 -->
-            <ul v-if="info.key==='insert-sys-date'">
-              <li class="form-item">
-                <label>导入方式</label>
+          <!-- <ul v-if="info.key==='insert-sys-date'">
+            <li class="form-item">
+              <label>导入方式</label>
+              <el-select
+                  v-model="formData.Source"
+                  placeholder="请选择导入方式"
+                  @change="init('form')"
+              >
+                <el-option
+                    v-for="item in wayOptions"
+                    :key="item.value"
+                    :label="item.name"
+                    :value="item.value"
+                />
+              </el-select>
+
+              <template v-if="formData.Source===3">
                 <el-select
-                    v-model="formData.Source"
-                    placeholder="请选择导入方式"
-                    @change="init('form')"
+                    style="max-width: 120px;margin:0 10px"
+                    v-model="formData.Frequency"
+                    placeholder="请选择频度"
+                    @change="formData.Day=frequencyDaysOptions[0].name"
                 >
                   <el-option
-                      v-for="item in wayOptions"
+                      v-for="item in frequencyOptions"
                       :key="item.value"
                       :label="item.name"
                       :value="item.value"
                   />
                 </el-select>
 
-                <template v-if="formData.Source===3">
-                  <el-select
-                      style="max-width: 120px;margin:0 10px"
-                      v-model="formData.Frequency"
-                      placeholder="请选择频度"
-                      @change="formData.Day=frequencyDaysOptions[0].name"
-                  >
-                    <el-option
-                        v-for="item in frequencyOptions"
-                        :key="item.value"
-                        :label="item.name"
-                        :value="item.value"
-                    />
-                  </el-select>
-
-                  <el-select
-                      style="max-width: 120px;"
-                      v-model="formData.Day"
-                      placeholder="请选择"
-                  >
-                    <el-option
-                        v-for="item in frequencyDaysOptions"
-                        :key="item.name"
-                        :label="item.name"
-                        :value="item.name"
-                    />
-                  </el-select>
-                </template>
-
-                <el-tooltip effect="dark" style="margin-left:10px">
-                  <div
-                    slot="content"
-                    v-html="tips[info.key]"
-                    style="line-height: 20px;"
-                  ></div>
-                  <i class="el-icon-question" style="font-size:18px;"/>
-                </el-tooltip>
-              </li>
-              <template v-if="formData.Source===2">
-                <li class="form-item">
-                  <label>天数</label>
-                  <el-input
-                    v-model="formData.CalculateNum"
-                    type="number"
-                    style="margin-right:10px;width:200px"
-                    @change="e => {formData.CalculateNum=Number(e)}"
+                <el-select
+                    style="max-width: 120px;"
+                    v-model="formData.Day"
+                    placeholder="请选择"
+                >
+                  <el-option
+                      v-for="item in frequencyDaysOptions"
+                      :key="item.name"
+                      :label="item.name"
+                      :value="item.name"
                   />
-                  {{formData.CalculateFrequency}}
-                </li>
-                <li style="color:#999">示例:5,表示当前日期+5天的日期; -5,表示当前日期-5天的日期;</li>
+                </el-select>
               </template>
-            </ul>
+
+              <el-tooltip effect="dark" style="margin-left:10px">
+                <div
+                  slot="content"
+                  v-html="tips[info.key]"
+                  style="line-height: 20px;"
+                ></div>
+                <i class="el-icon-question" style="font-size:18px;"/>
+              </el-tooltip>
+            </li>
+            <template v-if="formData.Source===2">
+              <li class="form-item">
+                <label>天数</label>
+                <el-input
+                  v-model="formData.CalculateNum"
+                  type="number"
+                  style="margin-right:10px;width:200px"
+                  @change="e => {formData.CalculateNum=Number(e)}"
+                />
+                {{formData.CalculateFrequency}}
+              </li>
+              <li style="color:#999">示例:5,表示当前日期+5天的日期; -5,表示当前日期-5天的日期;</li>
+            </template>
+          </ul> -->
 
           <!-- 导入指标日期 -->
-          <ul v-else> 
+          <!-- <ul v-else> 
             <li class="form-item">
 
               <selectTarget
@@ -109,6 +109,42 @@
               <label>最新日期</label>
               {{ selectEdbInfo.LatestDate }}
             </li>
+          </ul> -->
+
+          <ul>
+            <li class="form-item">
+              <el-radio v-model="radio">指标日期</el-radio>
+
+              <selectTarget
+                :defaultId="search_edb"
+                :defaultOpt="searchOptions"
+                ref="selectRef"
+                @select="e => { selectEdbInfo = e ||{} }"
+                :filter="false"
+              />
+              
+              <span v-show="selectEdbInfo.Frequency" style="margin: 0 15px">频度: {{ selectEdbInfo.Frequency }}</span>
+              <span v-show="selectEdbInfo.LatestDate">最新日期: {{ selectEdbInfo.LatestDate }}</span>
+            </li>
+            <li class="form-item">
+              <el-radio v-model="radio">系统日期</el-radio>
+              
+              <span>{{ $moment().format('YYYY-MM-DD') }}</span>
+            </li>
+            <li class="form-item">
+              <el-radio v-model="radio">固定日期</el-radio>
+              
+              <el-date-picker
+                v-model="formData.date"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期"
+                style="width:200px"
+              />
+            </li>
+            <li class="form-item">
+              <dateMoveWaySec ref="dateMoveWayRef"/>
+            </li>
           </ul>
 			</div>
 			<div class="dia-bot">
@@ -121,6 +157,7 @@
 import * as sheetInterface from "@/api/modules/sheetApi.js";
 import { dataBaseInterface } from '@/api/api.js';
 import selectTarget from '@/views/chartRelevance_manage/components/selectTarget.vue'
+import dateMoveWaySec from './dateMoveWaySection.vue'
 export default {
   props: {
     isShow: {
@@ -130,7 +167,7 @@ export default {
       type: Object
     }
   },
-  components: { selectTarget },
+  components: { selectTarget,dateMoveWaySec },
   watch: {
     isShow : { 
       async handler(nval) {
@@ -181,7 +218,8 @@ export default {
         Frequency: '本周',
         Day: '周一',
         CalculateNum: 0,
-        CalculateFrequency: '日'
+        CalculateFrequency: '日',
+        DateChangeArr:[]
       },
 
       wayOptions: [
@@ -213,7 +251,9 @@ export default {
         'insert-edb-date': '取指标的最新日期,跟随指标最新日期更新'
       },
 
-      selectEdbInfo: {}
+      selectEdbInfo: {},
+
+      dateChangeSelect: 1,
 
     }
   },

+ 24 - 2
src/views/datasheet_manage/sheetList.vue

@@ -12,9 +12,17 @@
         <div class="datasheet_top">
           <el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.etaTablePermission.etaTable_excel)&&sourceMap[$route.path]===1" type="primary" style="margin-right:20px" @click="goAddSheetHandle"
           >添加Excel表格</el-button >
+
           <el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.etaTablePermission.etaTable_customize_data_sheetAdd)&&sourceMap[$route.path]===2" type="primary" style="margin-right:20px" @click="goAddSheetHandle">添加时间序列表格</el-button >
+
           <el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.etaTablePermission.etaTable_customize_mix_sheetAdd)&&sourceMap[$route.path]===3" type="primary" @click="goAddSheetHandle">添加混合表格</el-button >
 
+          <el-checkbox 
+            v-model="isShowMe"
+            style="margin-left:20px"
+            @change="() => { getTreeData();getPublicList() }"
+          >只看我的</el-checkbox>
+
         </div>
         <div class="search-cont">
           <el-select
@@ -90,6 +98,14 @@
                   alt=""
                   style="width: 14px; height: 14px; margin-right: 8px"
                 />
+                <!-- 添加子 -->
+								<img
+									src="~@/assets/img/set_m/add.png"
+									alt=""
+									style="width: 14px; height: 14px; margin-right: 8px"
+									@click.stop="addNode(node,data)"
+									v-if="data.Button.AddButton&&isEdbBtnShow('editCatalog')&&node.level<3"
+								/>
                 <img
                   src="~@/assets/img/set_m/edit.png"
                   alt=""
@@ -425,6 +441,8 @@ export default {
       },
       autoSaveType:'',//自动保存类型,有的自动保存后需要其他操作
       cancelAutoSave:false, //自动保存时延迟的
+
+      isShowMe: false//只看我的
     };
   },
   watch: {
@@ -502,7 +520,10 @@ export default {
 
     /* 获取表格分类 */
     getTreeData(params = null) {
-      sheetInterface.classifyList({Source: this.sourceMap[this.$route.path]}).then((res) => {
+      sheetInterface.classifyList({
+        Source: this.sourceMap[this.$route.path],
+        IsShowMe: this.isShowMe
+      }).then((res) => {
         const { Ret, Data } = res;
         if (Ret !== 200) return;
 
@@ -758,7 +779,8 @@ export default {
         CurrentIndex: this.sheet_page,
         PageSize: this.sheet_pages_size,
         ExcelClassifyId: this.select_classify || 0,
-        Source: this.sourceMap[this.$route.path]
+        Source: this.sourceMap[this.$route.path],
+        IsShowMe: this.isShowMe
       }).then((res) => {
         if (res.Ret !== 200) return;