wenbobowen 4 years ago
parent
commit
bf6438dab9

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

@@ -113,7 +113,7 @@ export default {
       color: #444;
     }
     .tip {
-      width: 200px;
+      width: 240px;
       margin: 0px 25px;
       .item {
         display: inline-block;

+ 17 - 6
src/components/filterModal/index.vue

@@ -1,16 +1,18 @@
 <template>
   <div class="coms-filterModal">
     <el-dialog
-      :title="title"
       :visible.sync="visible"
       :width="width"
       :modal="false"
-      @close="cancel()"
+      @close="$emit('cancel', false)"
     >
+      <div slot="title" class="dialog-title">
+        {{ title }}
+      </div>
       <slot />
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="cancel()">取 消</el-button>
-        <el-button type="primary" size="small" @click="confirm()">确定</el-button>
+        <el-button size="small" @click="reset()">重置</el-button>
+        <el-button type="primary" size="small" @click="confirm()">筛选</el-button>
       </span>
     </el-dialog>
   </div>
@@ -48,8 +50,8 @@ export default {
     confirm() {
       this.$emit('confirm')
     },
-    cancel() {
-      this.$emit('cancel', false)
+    reset() {
+      this.$emit('reset', false)
     }
   }
 }
@@ -61,5 +63,14 @@ export default {
     margin-left: calc(100% - 470px)!important;
     top: 110px;
   }
+  .dialog-title {
+    font-size: 16px;
+    color: #333;
+    text-align: center;
+  }
+  /deep/.el-dialog__header {
+    border-bottom: 1px solid #e2e2e2;
+    padding: 15px;
+  }
 }
 </style>

+ 10 - 2
src/components/mainTitle/index.vue

@@ -9,12 +9,12 @@
               <svg-icon
                 icon-class="list"
                 class="icon"
-                :style="nowTab === 'list' ? { color: '#fff' } : { color: '#606266' }"
+                :style="nowTab === 'list' ? { color: '#409EFF' } : { color: '#606266' }"
               />
               列表视图
             </el-radio-button>
             <el-radio-button label="charts" class="chart">
-              <svg-icon icon-class="chart" class="icon" :style="nowTab === 'charts' ? { color: '#fff' } : { color: '#606266' }" />
+              <svg-icon icon-class="chart" class="icon" :style="nowTab === 'charts' ? { color: '#409EFF' } : { color: '#606266' }" />
               统计视图
             </el-radio-button>
           </el-radio-group>
@@ -77,6 +77,14 @@ export default {
             color: #fff;
           }
         }
+        /deep/.el-radio-button__inner:hover {
+          background: #fff;
+          color: #409EFF;
+        }
+        /deep/.el-radio-button__orig-radio:checked+.el-radio-button__inner {
+          background: #fff;
+          color: #409EFF;
+        }
       }
     }
   }

+ 38 - 22
src/views/projectManage/requirement/list/index.vue

@@ -19,30 +19,30 @@
           <div slot="searchBox">
             <div class="Layout">
               <div class="Layout">
-                <div class="queryName marginLeft">需求方向</div>
+                <div class="queryName">需求方向</div>
                 <el-cascader v-model="searchForm.rqmtOrntIds" size="small" collapse-tags :props="props" :options="demandDirection" placeholder="请选择" style="width: 72%" @change="get_charts()" />
               </div>
-              <span class="screen" @click="showChartModal = true">更多筛选</span>
+              <span class="screen" style="text-align:right" @click="showChartModal = true">更多筛选</span>
             </div>
           </div>
         </chartView>
       </div>
       <div v-if="nowTab === 'list'" class="search_box">
-        <div class="Layout" style="padding-top: 5px">
+        <div class="Layout" style="padding: 5px 0 0 15px">
           <div>
             <el-form :model="searchForm" class="Layout">
-              <div class="Layout_flex_end" style="padding-left:15px">
+              <div class="Layout_flex_end item">
                 <div class="queryName">需求名称</div>
                 <el-input v-model="searchForm.name" size="small" clearable style="width:72% !important;" placeholder="请搜索标题或ID或望岳ID" @change="getTableData()" />
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">需求状态</div>
+              <div class="Layout item">
+                <div class="queryName">需求状态</div>
                 <el-select v-model="searchForm.statusList" size="small" multiple clearable filterable placeholder="请选择" @change="getTableData()">
                   <el-option v-for="(item, index) in requiredStatus" :key="index" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">需求方向</div>
+              <div class="Layout item">
+                <div class="queryName">需求方向</div>
                 <el-cascader v-model="searchForm.rqmtOrntIds" size="small" collapse-tags :props="props" :options="demandDirection" placeholder="请选择" style="width: 72%" @change="getTableData()" />
               </div>
             </el-form>
@@ -52,14 +52,14 @@
         <div v-show="DetailedScreening" class="stylus-more">
           <div>
             <el-form :model="searchForm" class="flex_start">
-              <div class="Layout">
+              <div class="Layout item">
                 <div class="queryName">所属项目</div>
                 <el-select v-model="searchForm.belongingProject" size="small" clearable filterable placeholder="请选择">
                   <el-option v-for="item in AttributionItems" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">PM</div>
+              <div class="Layout item">
+                <div class="queryName">PM</div>
                 <!-- <search-people :value.sync="searchForm.pm" :clearable="true" :multiple="false" style="width:72% !important;" /> -->
                 <el-select
                   v-model="searchForm.pm"
@@ -80,28 +80,28 @@
                   </el-option>
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">需求类型</div>
+              <div class="Layout item">
+                <div class="queryName">需求类型</div>
                 <el-select v-model="searchForm.type" size="small" clearable filterable placeholder="请选择">
                   <el-option v-for="item in searchInfo.type" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
             </el-form>
             <el-form :model="searchForm" class="flex_start el-from-spacing">
-              <div class="Layout">
+              <div class="Layout item">
                 <div class="queryName">需求来源</div>
                 <el-select v-model="searchForm.sourceTypeList" size="small" multiple clearable filterable placeholder="请选择">
                   <el-option v-for="item in searchInfo.sourceType" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">优先级</div>
+              <div class="Layout item">
+                <div class="queryName">优先级</div>
                 <el-select v-model="searchForm.priorityList" size="small" multiple clearable filterable placeholder="请选择">
                   <el-option v-for="item in searchInfo.priority" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">需求提出人</div>
+              <div class="Layout item">
+                <div class="queryName">需求提出人</div>
                 <!-- <search-people :value.sync="searchForm.rqmtProposer" :clearable="true" :multiple="false" style="width:72% !important;" /> -->
                 <el-select
                   v-model="searchForm.rqmtProposer"
@@ -124,14 +124,14 @@
               </div>
             </el-form>
             <el-form :model="searchForm" class="flex_start el-from-spacing">
-              <div class="Layout">
+              <div class="Layout item">
                 <div class="queryName">来自望岳</div>
                 <el-select v-model="searchForm.isFromDpm" size="small" clearable filterable placeholder="请选择">
                   <el-option v-for="item in isFromDpmList" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName" style="margin-left: 2%;">创建时间</div>
+              <div class="Layout item">
+                <div class="queryName">创建时间</div>
                 <el-date-picker
                   v-model="searchForm.date"
                   type="daterange"
@@ -141,6 +141,7 @@
                   start-placeholder="开始日期"
                   end-placeholder="结束日期"
                   size="small"
+                  style="min-width: 476px"
                   value-format="yyyy-MM-dd HH:mm:ss"
                   :default-time="['00:00:00','23:59:59']"
                   :picker-options="pickerOptions"
@@ -269,7 +270,13 @@
     <normal-dialog :show-footer="false" :show-dialog="showEditSearch" :title="'管理过滤器'" :width="'65%'" @cancel="showEditSearch=false">
       <filter-list :show-filter="showEditSearch" @deleteFilter="deleteFilter" />
     </normal-dialog>
-    <filterModal :show-dialog="showChartModal" @cancel="showChartModal = false"  @confirm="filterModalConfirm()">
+    <filterModal
+      :show-dialog="showChartModal"
+      title="筛选项"
+      @reset="reset"
+      @cancel="showChartModal = false"
+      @confirm="filterModalConfirm"
+    >
       <div>
         <chartSearchForm
           :data="chartSearchFormRenderData"
@@ -752,6 +759,15 @@ export default {
 </script>
 
 <style scoped lang="scss">
+.search_box {
+  .item {
+    width: 270px;
+    margin-right: 15px;
+    .queryName {
+      min-width: 80px;
+    }
+  }
+}
 .new-tab-open {
   position: absolute;
   left: 120px;

+ 61 - 35
src/views/projectManage/taskList/taskIndex.vue

@@ -22,7 +22,7 @@
                 <div class="chartSearchTitle">模块:</div>
                 <el-cascader v-model="form_task.moduleIds" size="small" clearable collapse-tags :props="props" :options="business_platform_Modular" placeholder="请选择" style="width:77% !important;" @change="get_charts()" />
               </div>
-              <span class="screen" @click="showChartModal = true">更多筛选</span>
+              <span class="screen" style="text-align:right" @click="showChartModal = true">更多筛选</span>
             </div>
           </div>
         </chartView>
@@ -31,19 +31,19 @@
         <div class="Layout" style="padding: 5px 0 0 15px">
           <div>
             <el-form :model="form_task" class="Layout">
-              <div class="Layout_flex_end">
+              <div class="Layout_flex_end item">
                 <div class="queryName">任务名称</div>
-                <el-input v-model="form_task.name" size="small" clearable style="width:72% !important;" placeholder="请输入标题或ID或望岳ID" @change="get_taskList()" />
+                <el-input v-model="form_task.name" size="small" clearable class="input" placeholder="请输入标题或ID或望岳ID" @change="get_taskList()" />
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">状态</div>
-                <el-select v-model="form_task.statusList" size="small" multiple clearable filterable placeholder="请选择" @change="get_taskList()">
+              <div class="Layout item">
+                <div class="queryName">状态</div>
+                <el-select v-model="form_task.statusList" size="small" class="input" multiple clearable filterable placeholder="请选择" @change="get_taskList()">
                   <el-option v-for="item in daStatus" :key="item.value" :label="item.label" :value="item.value" />
                 </el-select>
               </div>
-              <div class="Layout">
-                <div class="queryName marginLeft">模块</div>
-                <el-cascader v-model="form_task.moduleIds" size="small" clearable collapse-tags :props="props" :options="business_platform_Modular" placeholder="请选择" style="width:77% !important;" @change="get_taskList()" />
+              <div class="Layout item">
+                <div class="queryName">模块</div>
+                <el-cascader v-model="form_task.moduleIds" size="small" class="input" clearable collapse-tags :props="props" :options="business_platform_Modular" placeholder="请选择" @change="get_taskList()" />
               </div>
             </el-form>
           </div>
@@ -53,21 +53,21 @@
           <div>
             <div class="Layout">
               <el-form :model="form_task" class="flex_start">
-                <div class="Layout">
+                <div class="Layout item">
                   <div class="queryName">所属项目</div>
-                  <el-select v-model="form_task.projectId" size="small" clearable filterable placeholder="请选择">
+                  <el-select v-model="form_task.projectId" size="small" class="input" clearable filterable placeholder="请选择">
                     <el-option v-for="item in projectList" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </div>
-                <div class="Layout marginLeft">
+                <div class="Layout item">
                   <div class="queryName">所属需求</div>
-                  <el-select v-model="form_task.requireId" size="small" clearable filterable placeholder="请选择">
+                  <el-select v-model="form_task.requireId" size="small" class="input" clearable filterable placeholder="请选择">
                     <el-option v-for="item in demandList" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </div>
-                <div class="Layout marginLeft">
+                <div class="Layout item">
                   <div class="queryName">来自望岳</div>
-                  <el-select v-model="form_task.isFromDpm" size="small" clearable filterable placeholder="请选择">
+                  <el-select v-model="form_task.isFromDpm" size="small" class="input" clearable filterable placeholder="请选择">
                     <el-option v-for="item in isFromDpmList" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </div>
@@ -75,16 +75,17 @@
             </div>
             <div class="Layout" style="margin: 15px 0;">
               <el-form :model="form_task" class="flex_start">
-                <div class="Layout">
+                <div class="Layout item">
                   <div class="queryName">优先级</div>
-                  <el-select v-model="form_task.priority" size="small" clearable filterable placeholder="请选择">
+                  <el-select v-model="form_task.priority" size="small" class="input" clearable filterable placeholder="请选择">
                     <el-option v-for="item in arr_priority" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </div>
-                <div class="Layout marginLeft">
+                <div class="Layout item">
                   <div class="queryName">负责人</div>
                   <el-select
                     v-model="form_task.PersonInCharge"
+                    class="input"
                     clearable
                     filterable
                     remote
@@ -102,9 +103,9 @@
                     </el-option>
                   </el-select>
                 </div>
-                <div class="Layout marginLeft">
+                <div class="Layout item">
                   <div class="queryName">健康状态</div>
-                  <el-select v-model="form_task.stage" size="small" clearable filterable placeholder="请选择">
+                  <el-select v-model="form_task.stage" size="small" class="input" clearable filterable placeholder="请选择">
                     <el-option v-for="item in healthStage" :key="item.value" :label="item.label" :value="item.value" />
                   </el-select>
                 </div>
@@ -112,10 +113,11 @@
             </div>
             <div class="Layout" style="margin: 15px 0;">
               <el-form :model="form_task" class="flex_start">
-                <div class="Layout">
+                <div class="Layout item">
                   <div class="queryName" style="width:86px;">创建人</div>
                   <el-select
                     v-model="form_task.creater"
+                    class="input"
                     clearable
                     filterable
                     remote
@@ -134,7 +136,7 @@
                     </el-option>
                   </el-select>
                 </div>
-                <div class="Layout marginLeft">
+                <div class="Layout item">
                   <div class="queryName">创建日期</div>
                   <el-date-picker
                     v-model="form_task.date"
@@ -145,6 +147,8 @@
                     start-placeholder="开始日期"
                     end-placeholder="结束日期"
                     size="small"
+                    class="input"
+                    style="min-width: 476px"
                     value-format="yyyy-MM-dd HH:mm:ss"
                     :default-time="['00:00:00','23:59:59']"
                     :picker-options="pickerOptions"
@@ -272,7 +276,13 @@
     <normal-dialog :show-footer="false" :show-dialog="showEditSearch" :title="'管理过滤器'" :width="'65%'" @cancel="showEditSearch=false">
       <filter-list :show-filter="showEditSearch" :filter-type="2" @deleteFilter="deleteFilter" />
     </normal-dialog>
-    <filterModal :show-dialog="showChartModal" @cancel="showChartModal = false" @confirm="filterModalConfirm()">
+    <filterModal
+      title="筛选项"
+      :show-dialog="showChartModal"
+      @reset="query_Reset"
+      @cancel="showChartModal = false"
+      @confirm="filterModalConfirm"
+    >
       <div>
         <chartSearchForm
           :data="chartSearchFormRenderData"
@@ -658,17 +668,25 @@ export default {
     },
     query_Reset() {
       // 重置
-      this.$set(this.form_task, 'bizId', '')
-      this.$set(this.form_task, 'status', '')
-      this.$set(this.form_task, 'stage', '')
-      this.$set(this.form_task, 'id', '')
-      this.$set(this.form_task, 'projectId', '')
-      this.$set(this.form_task, 'requireId', '')
-      this.$set(this.form_task, 'PersonInCharge', '')
-      this.$set(this.form_task, 'Participant', '')
-      this.$set(this.form_task, 'creater', '')
-      this.$set(this.form_task, 'isFromDpm', '')
-      this.$set(this.form_task, 'date', [])
+      this.form_task = {
+        ...this.form_task,
+        bizId: '',
+        status: '',
+        stage: '',
+        id: '',
+        projectId: '',
+        requireId: '',
+        PersonInCharge: '',
+        Participant: '',
+        creater: '',
+        isFromDpm: '',
+        priority: '',
+        date: []
+      }
+      if (this.nowTab === 'charts') {
+        this.form_task = { ...this.form_task, moduleIds: [], name: '', statusList: [] }
+      }
+      this.updateChartSearchFormValue()
       this.$message({
         message: '已重置',
         type: 'success',
@@ -775,7 +793,6 @@ export default {
       this.chartSearchFormRenderData.map(t => {
         t.value = this.form_task[t.key]
       })
-      console.log(this.form_task, this.chartSearchFormRenderData)
     }
   }
 }
@@ -833,6 +850,15 @@ export default {
   font-weight: 700;
   padding: 16px 8px;
 }
+.search_box {
+  .item {
+    width: 270px;
+    margin-right: 15px;
+    .queryName {
+      min-width: 80px;
+    }
+  }
+}
 </style>
 <style>
 .el-loading-mask {