hanqi 6 роки тому
батько
коміт
4a49e9ca54

+ 101 - 0
src/components/project/AnalyseDemand.vue

@@ -0,0 +1,101 @@
+<template>
+  <div class="create-container">
+    <div class="title h1">分析需求</div>
+    <div class="create-body">
+      <el-form
+        :model="analyseDemand"
+        :rules="rules"
+        ref="analyseDemand"
+        label-width="12%"
+        class="demo-report"
+      >
+        <el-form-item label="可行性分析报告" prop="feasibilityReport">
+          <el-upload
+            class="upload-demo"
+            drag
+            action="https://jsonplaceholder.typicode.com/posts/"
+            multiple
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">只能上传报告文档</div>
+          </el-upload>
+        </el-form-item>
+        <el-form-item label="价格审核报告" prop="priceAuditReport">
+          <el-upload
+            class="upload-demo"
+            drag
+            action="https://jsonplaceholder.typicode.com/posts/"
+            multiple
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">
+              将文件拖到此处,或
+              <em>点击上传</em>
+            </div>
+            <div class="el-upload__tip" slot="tip">只能上传报告文档</div>
+          </el-upload>
+        </el-form-item>
+        <el-form-item>
+          <div class="btn btn-medium btn-info" @click="submitForm('analyseDemand')">提交</div>
+          <div class="btn btn-medium" @click="resetForm('analyseDemand')">重置</div>
+          <div class="btn btn-medium" @click="back()">返回</div>
+        </el-form-item>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "AnalyseDemand",
+  data() {
+    return {
+      analyseDemand: {
+        feasibilityReport: "",
+        priceAuditReport: ""
+      },
+      rules: {
+        feasibilityReport: [
+          { required: true, message: "请上传可行性分析报告", trigger: "change" }
+        ],
+        priceAuditReport: [
+          { required: true, message: "请上传价格审核报告", trigger: "change" }
+        ]
+      }
+    };
+  },
+  methods: {
+    submitForm(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          console.log(this.analyseDemand);
+          //提交 project
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+      this.analyseDemand.feasibilityReport = "";
+      this.analyseDemand.priceAuditReport = "";
+    },
+    back() {
+      if (window.history.length <= 1) {
+        this.$router.push({ path: "/" });
+        return false;
+      } else {
+        this.$router.go(-1);
+      }
+    }
+  }
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 219 - 17
src/components/project/Project.vue

@@ -40,14 +40,6 @@
             </el-row>
           </div>
         </el-form-item>
-        <el-form-item label="类型" prop="type">
-          <el-select v-if="isModifyMode" v-model="project.type" placeholder="请选择类型">
-            <el-option label="类型一" value="type1"></el-option>
-            <el-option label="类型二" value="type2"></el-option>
-          </el-select>
-          <span v-if="!isModifyMode">{{project.type}}</span>
-        </el-form-item>
-
         <el-form-item label="平台" prop="platform">
           <el-checkbox-group v-if="isModifyMode" v-model="project.platform">
             <el-checkbox label="0">IOS</el-checkbox>
@@ -64,6 +56,61 @@
           <el-input v-if="isModifyMode" type="textarea" v-model="project.desc"></el-input>
           <span v-if="!isModifyMode">{{project.desc}}</span>
         </el-form-item>
+        <el-form-item label="价格" prop="price">
+          <el-input v-if="isModifyMode" type="number" v-model="project.price">
+            <template slot="append">¥</template>
+          </el-input>
+          <span v-if="!isModifyMode">{{project.price}}¥</span>
+        </el-form-item>
+
+        <el-form-item label="服务类型" prop="type">
+          <el-checkbox-group v-if="isModifyMode" v-model="project.type">
+            <el-checkbox label="接口测试" name="type"></el-checkbox>
+            <el-checkbox label="安全漏洞扫描" name="type"></el-checkbox>
+            <el-checkbox label="风险评估服务" name="type"></el-checkbox>
+            <el-checkbox label="源代码安全审计服务" name="type"></el-checkbox>
+            <el-checkbox label="功能测试服务" name="type"></el-checkbox>
+            <el-checkbox label="性能测试" name="type"></el-checkbox>
+            <el-checkbox label="功能和易用性测试" name="type"></el-checkbox>
+          </el-checkbox-group>
+          <span v-if="!isModifyMode" class="badge" v-for="item in project.type">{{item}}</span>
+        </el-form-item>
+        <el-form-item label="用途" prop="useage">
+          <el-input v-if="isModifyMode" v-model="project.useage"></el-input>
+          <span v-if="!isModifyMode">{{project.useage}}</span>
+        </el-form-item>
+
+        <el-form-item label="预算" prop="budget">
+          <el-input v-if="isModifyMode" type="number" v-model="project.budget">
+            <template slot="append">¥</template>
+          </el-input>
+          <span v-if="!isModifyMode">{{project.budget}}¥</span>
+        </el-form-item>
+        <el-form-item label="项目可见性" prop="resource">
+          <div v-if="!isModifyMode">
+            <div v-if="project.resource=='定向'">{{project.institution}}</div>
+            <div v-if="project.resource=='非定向'">{{project.resource}}</div>
+          </div>
+          <el-tabs
+            :tab-position="tabPosition"
+            v-model="project.resource"
+            style="max-height: 200px;"
+            v-if="isModifyMode"
+          >
+            <el-tab-pane label="定向" name="定向">
+              <el-radio-group v-model="project.institution">
+                <el-radio
+                  :label="item"
+                  name="type"
+                  v-for="item,index in institutionArray"
+                  :key="index"
+                ></el-radio>
+              </el-radio-group>
+            </el-tab-pane>
+            <el-tab-pane label="非定向" name="非定向"></el-tab-pane>
+          </el-tabs>
+        </el-form-item>
+
         <el-form-item label="需求文档" prop="doc">
           <el-upload
             v-if="isModifyMode"
@@ -99,6 +146,18 @@
           </el-upload>
           <span v-if="!isModifyMode">{{project.file}}</span>
         </el-form-item>
+        <el-form-item label="项目截止时间" prop="datetime">
+          <div class="block" v-if="isModifyMode">
+            <el-date-picker
+              v-model="project.datetime"
+              type="datetime"
+              placeholder="选择截止时间"
+              align="right"
+              :picker-options="pickerOptions"
+            ></el-date-picker>
+          </div>
+          <span v-if="!isModifyMode">{{new Date(project.datetime)}}</span>
+        </el-form-item>
         <el-form-item v-if="isModifyMode">
           <div class="btn btn-medium btn-info" @click="submitForm('project')">确认修改</div>
           <div class="btn btn-medium" @click="resetForm('project')">重置</div>
@@ -106,11 +165,61 @@
         </el-form-item>
         <el-form-item v-if="!isModifyMode">
           <div class="btn btn-medium btn-info" @click="modifyForm()">修改</div>
+          <div class="btn btn-medium btn-info" @click="analyseDemand()">分析需求</div>
           <div class="btn btn-medium btn-info" @click="createTask()">新建任务</div>
           <div class="btn btn-medium btn-info" @click="createReport()">上传报告</div>
         </el-form-item>
       </el-form>
     </div>
+
+    <div class="create-body" v-if="!isModifyMode">
+      <div class="title h2">分析需求</div>
+      <div class="task-list">
+        <el-table :data="analyseDemandList" style="width: 100%" max-height="400">
+          <el-table-column prop="institution" label="承接单位" title="承接单位"></el-table-column>
+          <el-table-column prop="feasibilityReport" sortable label="可行性分析报告">
+            <template slot-scope="scope">
+              <span v-if="!scope.row.feasibilityReport.url">暂无文件</span>
+              <a
+                :href="scope.row.feasibilityReport.url"
+                v-if="scope.row.feasibilityReport.url"
+                target="_blank"
+              >
+                <i class="fa fa-file-text-o"></i>
+                {{scope.row.feasibilityReport.name}}
+              </a>
+            </template>
+          </el-table-column>
+          <el-table-column prop="priceAuditReport" sortable label="可行性分析报告">
+            <template slot-scope="scope">
+              <span v-if="!scope.row.priceAuditReport.url">暂无文件</span>
+              <a
+                :href="scope.row.priceAuditReport.url"
+                v-if="scope.row.priceAuditReport.url"
+                target="_blank"
+              >
+                <i class="fa fa-file-text-o"></i>
+                {{scope.row.priceAuditReport.name}}
+              </a>
+            </template>
+          </el-table-column>
+
+          <el-table-column align="right" label="操作">
+            <template slot-scope="scope">
+              <div
+                class="btn btn-small btn-info"
+                @click="handleAccept(scope.$index, scope.row.id)"
+              >接受</div>
+              <div
+                class="btn btn-small btn-danger"
+                @click="handleReject(scope.$index, scope.row.id)"
+              >拒绝</div>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+
     <div class="create-body" v-if="!isModifyMode">
       <div class="title h2">任务列表</div>
       <div class="task-list">
@@ -145,6 +254,7 @@
         </el-table>
       </div>
     </div>
+
     <div class="create-body" v-if="!isModifyMode">
       <div class="title h2">报告列表</div>
       <report-list/>
@@ -153,6 +263,7 @@
 </template>
 
 <script>
+import Enum from "@/constants/enum/index";
 import PlatformType from "@/constants/enum/platform-type";
 import provinceCity from "@/constants/provinceCity.json";
 import ReportList from "@/components/report/ReportList";
@@ -172,6 +283,8 @@ export default {
     };
     return {
       projectId: 0,
+      tabPosition: "top",
+      institutionArray: Enum.institution,
       isModifyMode: false,
       platformType: [],
       project: {
@@ -181,11 +294,17 @@ export default {
           name: "小王",
           phone: "12426177281"
         },
-        type: "type1",
+        type: ["安全漏洞扫描"],
         platform: ["0", "1"],
         desc: "需求描述文字",
         doc: "",
         file: "http://a.apk",
+        resource: "非定向",
+        institution: "",
+        datetime: new Date("2018-11-11 23:11:11"),
+        price: "400",
+        useage: "练习",
+        budget: "100",
         task: [
           {
             id: "1",
@@ -222,13 +341,55 @@ export default {
           }
         ]
       },
+      analyseDemandList: [
+        {
+          id: "1",
+          institution: "上软",
+          feasibilityReport: {
+            name: "可行性分析报告",
+            url: "feasibilityReport.docx"
+          },
+          priceAuditReport: { name: "价格审核告", url: "priceAuditReport.docx" }
+        }
+      ],
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "今天",
+            onClick(picker) {
+              picker.$emit("pick", new Date());
+            }
+          },
+          {
+            text: "昨天",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24);
+              picker.$emit("pick", date);
+            }
+          },
+          {
+            text: "一周前",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", date);
+            }
+          }
+        ]
+      },
       rules: {
         name: [
           { required: true, message: "请输入项目名称", trigger: "blur" }
           // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
         ],
         type: [
-          { required: true, message: "请选择项目类型", trigger: "change" }
+          {
+            type: "array",
+            required: true,
+            message: "请至少选择一种服务类型",
+            trigger: "change"
+          }
         ],
         platform: [
           {
@@ -239,7 +400,14 @@ export default {
           }
         ],
         desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
-        contact: [{ validator: validatePass, trigger: "blur" }]
+        contact: [{ validator: validatePass, trigger: "blur" }],
+        resource: [
+          {
+            required: true,
+            message: "请选择项目可见性",
+            trigger: "change"
+          }
+        ]
       }
     };
   },
@@ -248,7 +416,14 @@ export default {
       this.init();
     });
   },
-  watch: {},
+  watch: {
+    "project.resource"() {
+      if (this.project.resource == "非定向") {
+        this.project.institution = "";
+      }
+    },
+    deep: true
+  },
   methods: {
     updateLocation(location) {
       var provinceName = "";
@@ -287,7 +462,7 @@ export default {
     resetForm(formName) {
       this.$refs[formName].resetFields();
       this.project.name = "";
-      this.project.type = "";
+      this.project.type = [];
       this.project.platform = [];
       this.project.desc = "";
       this.project.doc = "";
@@ -296,6 +471,12 @@ export default {
         name: "",
         phone: ""
       };
+      this.project.resource = "非定向";
+      this.project.institution = "";
+      this.project.datetime = "";
+      this.project.price = "";
+      this.project.useage = "";
+      this.project.budget = "";
     },
     modifyForm() {
       this.isModifyMode = true;
@@ -305,13 +486,19 @@ export default {
         code: "27382hdsjkfdskfK",
         contact: {
           name: "小王",
-          phone: "12426177281"
+          phone: "13818022817"
         },
-        type: "type1",
+        type: ["安全漏洞扫描"],
         platform: ["0", "1"],
         desc: "需求描述文字",
         doc: "",
         file: "http://a.apk",
+        resource: "非定向",
+        institution: "",
+        datetime: new Date("2018-11-11 23:11:11"),
+        price: "400",
+        useage: "练习",
+        budget: "100",
         task: [
           {
             id: "1",
@@ -357,13 +544,19 @@ export default {
         code: "27382hdsjkfdskfK",
         contact: {
           name: "小王",
-          phone: "12426177281"
+          phone: "13818022817"
         },
-        type: "type1",
+        type: ["安全漏洞扫描"],
         platform: ["0", "1"],
         desc: "需求描述文字",
         doc: "",
         file: "http://a.apk",
+        resource: "非定向",
+        institution: "",
+        datetime: new Date("2018-11-11 23:11:11"),
+        price: "400",
+        useage: "练习",
+        budget: "100",
         task: [
           {
             id: "1",
@@ -424,6 +617,15 @@ export default {
         this.$message.error("上传安装包只能是 APK 或 DMG 格式!");
       }
       return isAPK && isDMG;
+    },
+    analyseDemand() {
+      this.$router.push({ name: "AnalyseDemand" });
+    },
+    handleAccept(index, id) {
+      console.log("接受");
+    },
+    handleReject(index, id) {
+      console.log("拒绝");
     }
   }
 };

+ 134 - 39
src/components/project/ProjectCreate.vue

@@ -26,12 +26,6 @@
             </el-row>
           </div>
         </el-form-item>
-        <el-form-item label="类型" prop="type">
-          <el-select v-model="project.type" placeholder="请选择类型">
-            <el-option label="类型一" value="type1"></el-option>
-            <el-option label="类型二" value="type2"></el-option>
-          </el-select>
-        </el-form-item>
         <el-form-item label="平台" prop="platform">
           <el-checkbox-group v-model="project.platform">
             <el-checkbox label="0">IOS</el-checkbox>
@@ -42,6 +36,49 @@
         <el-form-item label="需求描述" prop="desc">
           <el-input type="textarea" v-model="project.desc"></el-input>
         </el-form-item>
+        <el-form-item label="价格" prop="price">
+          <el-input type="number" v-model="project.price">
+            <template slot="append">¥</template>
+          </el-input>
+        </el-form-item>
+        <el-form-item label="服务类型" prop="type">
+          <el-checkbox-group v-model="project.type">
+            <el-checkbox label="接口测试" name="type"></el-checkbox>
+            <el-checkbox label="安全漏洞扫描" name="type"></el-checkbox>
+            <el-checkbox label="风险评估服务" name="type"></el-checkbox>
+            <el-checkbox label="源代码安全审计服务" name="type"></el-checkbox>
+            <el-checkbox label="功能测试服务" name="type"></el-checkbox>
+            <el-checkbox label="性能测试" name="type"></el-checkbox>
+            <el-checkbox label="功能和易用性测试" name="type"></el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+        <el-form-item label="用途" prop="useage">
+          <el-input v-model="project.useage"></el-input>
+        </el-form-item>
+        <el-form-item label="预算" prop="budget">
+          <el-input type="number" v-model="project.budget">
+            <template slot="append">¥</template>
+          </el-input>
+        </el-form-item>
+        <el-form-item label="项目可见性" prop="resource">
+          <el-tabs
+            :tab-position="tabPosition"
+            v-model="project.resource"
+            style="max-height: 200px;"
+          >
+            <el-tab-pane label="定向" name="定向">
+              <el-radio-group v-model="project.institution">
+                <el-radio
+                  :label="item"
+                  name="type"
+                  v-for="item,index in institutionArray"
+                  :key="index"
+                ></el-radio>
+              </el-radio-group>
+            </el-tab-pane>
+            <el-tab-pane label="非定向" name="非定向"></el-tab-pane>
+          </el-tabs>
+        </el-form-item>
         <el-form-item label="需求文档" prop="doc">
           <el-upload
             class="upload-demo"
@@ -73,6 +110,17 @@
             <div class="el-upload__tip" slot="tip">只能上传Android或IOS安装包文件</div>
           </el-upload>
         </el-form-item>
+        <el-form-item label="项目截止时间" prop="datetime">
+          <div class="block">
+            <el-date-picker
+              v-model="project.datetime"
+              type="datetime"
+              placeholder="选择截止时间"
+              align="right"
+              :picker-options="pickerOptions"
+            ></el-date-picker>
+          </div>
+        </el-form-item>
         <el-form-item>
           <div class="btn btn-medium btn-info" @click="submitForm('project')">立即申请</div>
           <div class="btn btn-medium" @click="resetForm('project')">重置</div>
@@ -83,6 +131,7 @@
 </template>
 
 <script>
+import Enum from "@/constants/enum/index";
 import PlatformType from "@/constants/enum/platform-type";
 import provinceCity from "@/constants/provinceCity.json";
 export default {
@@ -99,6 +148,8 @@ export default {
       }
     };
     return {
+      tabPosition: "top",
+      institutionArray: Enum.institution,
       platformType: [],
       project: {
         name: "",
@@ -106,11 +157,43 @@ export default {
           name: "",
           phone: ""
         },
-        type: "",
+        type: [],
         platform: [],
         desc: "",
         doc: "",
-        file: ""
+        file: "",
+        resource: "非定向",
+        institution: "",
+        datetime: "",
+        price: "",
+        useage: "",
+        budget: ""
+      },
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "今天",
+            onClick(picker) {
+              picker.$emit("pick", new Date());
+            }
+          },
+          {
+            text: "昨天",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24);
+              picker.$emit("pick", date);
+            }
+          },
+          {
+            text: "一周前",
+            onClick(picker) {
+              const date = new Date();
+              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", date);
+            }
+          }
+        ]
       },
       rules: {
         name: [
@@ -118,7 +201,12 @@ export default {
           // { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
         ],
         type: [
-          { required: true, message: "请选择项目类型", trigger: "change" }
+          {
+            type: "array",
+            required: true,
+            message: "请至少选择一种服务类型",
+            trigger: "change"
+          }
         ],
         platform: [
           {
@@ -129,7 +217,14 @@ export default {
           }
         ],
         desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
-        contact: [{ validator: validatePass, trigger: "blur" }]
+        contact: [{ validator: validatePass, trigger: "blur" }],
+        resource: [
+          {
+            required: true,
+            message: "请选择项目可见性",
+            trigger: "change"
+          }
+        ]
       }
     };
   },
@@ -138,25 +233,15 @@ export default {
       this.init();
     });
   },
-  watch: {},
-  methods: {
-    updateLocation(location) {
-      console.log(location);
-      var provinceName = "";
-      var cityName = "";
-      for (var item of provinceCity.provinces) {
-        if (item.code === location.provinceCode) {
-          provinceName = item.name;
-          for (var city of item.cities) {
-            if (city.code === location.cityCode) {
-              cityName = city.name;
-              break;
-            }
-          }
-        }
+  watch: {
+    "project.resource"() {
+      if (this.project.resource == "非定向") {
+        this.project.institution = "";
       }
-      return provinceName + " / " + cityName;
     },
+    deep: true
+  },
+  methods: {
     init() {
       this.project.platform.map(item => {
         this.platformType.push(PlatformType[item]);
@@ -176,7 +261,7 @@ export default {
     resetForm(formName) {
       this.$refs[formName].resetFields();
       this.project.name = "";
-      this.project.type = "";
+      this.project.type = [];
       this.project.platform = [];
       this.project.desc = "";
       this.project.file = "";
@@ -185,30 +270,40 @@ export default {
         name: "",
         phone: ""
       };
+
+      this.project.resource = "非定向";
+      this.project.institution = "";
+      this.project.datetime = "";
+      this.project.price = "";
+      this.project.useage = "";
+      this.project.budget = "";
     },
-    beforeFileUpload(file){
-      const isAPK = file.type === 'application/vnd.android.package-archive';
-       const isDMG = file.type === 'application/octet-stream';
+    beforeFileUpload(file) {
+      const isAPK = file.type === "application/vnd.android.package-archive";
+      const isDMG = file.type === "application/octet-stream";
 
-        if (!isAPK&&!isDMG) {
-          this.$message.error('上传安装包只能是 APK 或 DMG 格式!');
-        }
-        return isAPK && isDMG;
+      if (!isAPK && !isDMG) {
+        this.$message.error("上传安装包只能是 APK 或 DMG 格式!");
+      }
+      return isAPK && isDMG;
     }
   }
 };
 </script>
 
 <style lang="less" scoped>
-.task-list {
-  margin: 0 30px;
-}
-
 .el-col {
   padding: 0 !important;
 }
 .el-row {
   margin-bottom: 10px;
 }
+.el-radio {
+  margin: 10px 20px 10px 0;
+}
+.el-form-item /deep/.el-tabs__content {
+  max-height: 120px !important;
+  overflow: auto;
+}
 </style>
 

+ 0 - 15
src/components/project/ProjectList.vue

@@ -1,15 +0,0 @@
-<template>
-    <div>
-        project列表页面
-    </div>
-</template>
-
-<script>
-export default {
-    name:"ProjectList"
-}
-</script>
-
-<style lang="less" scoped>
-
-</style>

+ 1 - 0
src/components/report/Report.vue

@@ -13,6 +13,7 @@
             <el-radio label="项目测试报告" name="type"></el-radio>
             <el-radio label="项目缺陷报告" name="type"></el-radio>
             <el-radio label="项目用例报告" name="type"></el-radio>
+            <el-radio label="其他" name="type"></el-radio>
           </el-radio-group>
           <span v-if="!isModifyMode" class="badge">{{report.type}}</span>
         </el-form-item>

+ 1 - 0
src/components/report/ReportCreate.vue

@@ -13,6 +13,7 @@
             <el-radio label="项目测试报告" name="type"></el-radio>
             <el-radio label="项目缺陷报告" name="type"></el-radio>
             <el-radio label="项目用例报告" name="type"></el-radio>
+            <el-radio label="其他" name="type"></el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="摘要" prop="abstract">

+ 1 - 1
src/components/report/ReportList.vue

@@ -18,7 +18,7 @@
       <el-table-column prop="file" sortable label="报告文件">
         <template slot-scope="scope">
           <span v-if="scope.row.file.length==0">暂无文件</span>
-          <a :href="scope.row.file[0].url" v-if="scope.row.file.length>0"><i class="fa fa-file-text-o"></i> {{scope.row.file[0].name}}</a>
+          <a :href="scope.row.file[0].url" v-if="scope.row.file.length>0" target="_blank"><i class="fa fa-file-text-o"></i> {{scope.row.file[0].name}}</a>
         </template>
       </el-table-column>
       <el-table-column align="right" label="操作">

+ 1 - 1
src/constants/enum/index.js

@@ -6,7 +6,7 @@ export default {
         "慕测","上软","拓思","4","5","6","7","8","9","10",
         "11","12","13","14","15","16","17","18","19","20",
         "21","22","23","24","25","26","27","28","29","30",
-        "31","32","33","34","35","36","37","38","39","30",
+        "31","32","33","34","35","36","37","38","39","40",
         "41","42","43","44","45","46","47","48","49","50",
         "51","52","53","54","55","56","57","58","59","60"
     ]

+ 12 - 2
src/router/index.js

@@ -3,13 +3,19 @@ import Router from 'vue-router'
 import Home from '@/components/Home'
 import Square from '@/components/Square'
 import Mine from '@/components/Mine'
+
 import Task from '@/components/task/Task'
 import TaskCreate from '@/components/task/TaskCreate'
+
 import Project from '@/components/project/Project'
 import ProjectCreate from '@/components/project/ProjectCreate'
+import AnalyseDemand from '@/components/project/AnalyseDemand'
+
 import Report from '@/components/report/Report'
 import ReportCreate from '@/components/report/ReportCreate'
 
+
+
 Vue.use(Router)
 
 export default new Router({
@@ -55,6 +61,11 @@ export default new Router({
       component: Task
     },
     {
+      path: '/project/:projectId/analyse',
+      name: 'AnalyseDemand',
+      component: AnalyseDemand
+    },
+    {
       path: '/report/create',
       name: 'ReportCreate',
       component: ReportCreate
@@ -63,7 +74,6 @@ export default new Router({
       path: '/report/:reportId',
       name: 'Report',
       component: Report
-    },
-   
+    }
   ]
 })