zerp před 2 roky
rodič
revize
18c201c3dd
2 změnil soubory, kde provedl 70 přidání a 55 odebrání
  1. 41 18
      src/views/bid/index.vue
  2. 29 37
      src/views/tender/index.vue

+ 41 - 18
src/views/bid/index.vue

@@ -6,7 +6,7 @@
       <el-input
         v-model="query.value"
         clearable
-        placeholder="输入搜索内容"
+        placeholder="请输入标题"
         style="width: 200px;"
         size="small"
         class="filter-item"
@@ -22,7 +22,7 @@
       </el-button>
     </div>
     <!--表格渲染-->
-    <el-table v-loading="loading" :data="data" border style="width: 100%;">
+    <el-table v-loading="loading" :data="data"  style="width: 100%;">
 
       <el-table-column prop="title" label="标题" :show-overflow-tooltip="true"  width="250" align="center" />
 
@@ -85,7 +85,7 @@
     </div>
 
     <!--新增-->
-    <el-dialog :append-to-body="true" :visible.sync="dialog" :title="isAdd ? '发布新标' : '修改新标'" width="40%">
+    <el-dialog :append-to-body="true" :close-on-click-modal="false" :visible.sync="dialog" :title="isAdd ? '发布新标' : '修改新标'" width="40%">
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="标题" prop="title">
           <el-input v-model="form.title" style="width: 370px;" placeholder="请输入标题" />
@@ -99,7 +99,7 @@
             v-model="form.remarks">
           </el-input>
         </el-form-item>
-        <el-form-item label="附件" prop="description">
+        <el-form-item label="附件" prop="appendix" class="is-required">
           <el-upload
             class="upload-demo"
             drag
@@ -159,15 +159,15 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button  @click="dialog = false">取消</el-button>
-        <el-button :loading="loading" type="primary" @click="doSubmit">确认</el-button>
+        <el-button :loading="buton" type="primary" @click="doSubmit">确认</el-button>
       </div>
     </el-dialog>
 
   <!-- 详情 -->
   <el-dialog :append-to-body="true" :visible.sync="viewDialog" title="投标详情" width="90%" center>
-     <el-table  center :data="Paramdata" border style="width: 100%;">
+     <el-table  center :data="Paramdata"  style="width: 100%;">
 
-      <el-table-column prop="customerName" label="客户名称" align="center"/>
+      <el-table-column prop="customerName" label="客户名称" show-overflow-tooltip="true"  align="center"/>
 
       <el-table-column label="报价方式"  align="center">
         <template slot-scope="scope">
@@ -190,7 +190,7 @@
             <el-button type="text" @click="onLoad(scope.row.appendix)">下载</el-button>
         </template>
       </el-table-column>
-      <el-table-column prop="createTime" label="投时间" align="center"/>
+      <el-table-column prop="createTime" label="投时间" align="center"/>
       <el-table-column prop="userName" label=" 投标帐号" align="center"/>
       <el-table-column prop="status" label=" 投标结果" align="center" >
          <template slot-scope="scope">
@@ -227,6 +227,17 @@ import { getTableList,getQueryId,getQueryAdd,getQueryEdit,getQueryDelete,loadCus
 
 export default {
   data() {
+    const checkTel = (rule, value, callback)=>{
+     console.log(this.form.appendix)
+     console.log(value,"value")
+     if(this.form.appendix == null || this.form.appendix == ""){
+       callback(new Error("请选择附件"))
+       console.log("没过")
+     }else{
+       callback()
+       console.log("过")
+     }
+    }
     return {
       form: {
       },
@@ -246,6 +257,9 @@ export default {
         priceQuotes: [
           { required: true, message: "请选择报价方式", trigger: 'blur' }
         ],
+         appendix: [
+           { validator: checkTel, trigger: 'change' }
+        ]
         // startTime: [
         //   { type:"array",required: true, message: '发布时间不为空', trigger: 'blur' }
         // ]
@@ -264,7 +278,8 @@ export default {
       },
       total1:0,
       Paramdata:[],
-      bidDate:[]
+      bidDate:[],
+      buton:false,
     }
   },
   created() {
@@ -333,7 +348,7 @@ console.log(this.bidDate)
       // 点击文件列表中已上传的文件时的钩子
       handlePreview(file) {
         console.log(file,"file1");
-        window.location.href = file.url
+        // window.location.href = file.url
       },
       handleExceed(files, fileList) {
         this.$message.warning(`当前限制选择 1 个附件,本次选择了 ${files.length} 个文件`);
@@ -344,12 +359,15 @@ console.log(this.bidDate)
 
     // 字典名称提交动作
     doSubmit() {
+        console.log(this.form)
       this.$refs['form'].validate((valid) => {
+        console.log(valid)
         if (valid) {
           if (this.isAdd) {
             // 新增字典
-            
+            this.buton = true
             getQueryAdd(this.form).then((res) => {
+
               if (res.data.code === 200) {
                 this.$message({ message: '操作成功', type: 'success' })
               } else {
@@ -357,6 +375,7 @@ console.log(this.bidDate)
               }
               this.dialog = false
               this.getDictData()
+              this.buton = false
               this.$refs['form'].resetFields()
             })
           } else {
@@ -391,9 +410,6 @@ console.log(this.bidDate)
     handleAdd: function() {
       this.isAdd = true
       this.form = {}
-      if(this.$refs['form']){
-        this.$refs["form"].resetFields();
-      }
       const end = new Date()
       const start = new Date()
        end.setTime(start.getTime() + 3600 * 1000 * 24 * 1)
@@ -401,8 +417,12 @@ console.log(this.bidDate)
       this.form.startTime = this.formatDate(start) + ' 00:00:00'
        this.form.endTime = this.formatDate(end) + ' 15:00:00'
       this.bidDate=[this.form.startTime,this.form.endTime]
+      this.form.appendix = null
       this.fileList = []
       this.dialog = true
+        if(this.$refs['form']){
+        this.$refs["form"].resetFields();
+      }
 
     },
     // 编辑字典
@@ -415,10 +435,13 @@ console.log(this.bidDate)
       this.bidDate = [data.createTime,data.endTime]
       // this.form.
       // let name = data.appendix.lastIndexOf('/') ;
-      let name = data.appendix.split("\\") ;
-      name = name.pop()
-      // let name = data.appendix.replace(/(.*\/)*([^.]+).*/ig, "$2");
-      this.fileList = [{name:name,url:data.appendix}]
+      if(data.appendix){
+          let name = data.appendix.split("\\") ;
+          name = name.pop()
+          // let name = data.appendix.replace(/(.*\/)*([^.]+).*/ig, "$2");
+          this.fileList = [{name:name,url:data.appendix}]
+      }
+ 
       this.dialog = true
       this.isAdd = false
 

+ 29 - 37
src/views/tender/index.vue

@@ -6,7 +6,7 @@
       <el-input
         v-model="query.title"
         clearable
-        placeholder="输入搜索内容"
+        placeholder="请输入标题"
         style="width: 200px;"
         size="small"
         class="filter-item"
@@ -16,9 +16,9 @@
     <!--表格渲染-->
     <el-table v-loading="loading" :data="data"  style="width: 100%;">
 
-       <el-table-column prop="title" label="标题" align="center" />
+       <el-table-column prop="title" label="标题" align="center" :show-overflow-tooltip="true"/>
 
-      <el-table-column label="状态"  align="center">
+      <el-table-column label="状态" width="100" align="center">
         <template slot-scope="scope">
           <el-tag v-if="scope.row.tenderStatus ==1">进行中</el-tag>
           <el-tag type="info" v-if="scope.row.tenderStatus ==2">已结束</el-tag>
@@ -26,7 +26,7 @@
         </template>
       </el-table-column>
 
-       <el-table-column label="结果"  align="center">
+       <el-table-column label="结果" width="100" align="center">
         <template slot-scope="scope">
           <!-- {{scope.row.bidding.status}} -->
           <el-tag type="info" v-if="scope.row.status == null">未参与</el-tag>
@@ -36,20 +36,20 @@
         </template>
       </el-table-column>
 
-      <el-table-column prop="description" :show-overflow-tooltip="true" label="报价方式" align="center" >
+      <el-table-column prop="description" width="100" :show-overflow-tooltip="true" label="报价方式" align="center" >
         <template slot-scope="scope">
             <el-tag  color="#5783E6" style="border-color:#5783E6" effect="dark" v-if="scope.row.priceQuotes == 1">总价</el-tag>
             <el-tag effect="dark" color="#82C497" style="border-color:#82C497" v-if="scope.row.priceQuotes == 2">单价</el-tag>
         </template>
       </el-table-column>
       <el-table-column prop="remarks" label="备注" align="center" :show-overflow-tooltip="true"/>
-      <el-table-column prop="appendix" label="附件" align="center" >
+      <el-table-column prop="appendix" width="100" label="附件" align="center" >
         <template slot-scope="scope">
             <!-- <el-link type="primary" :href="scope.row.appendix">查看</el-link> -->
             <el-button type="text" @click="onLoad(scope.row.appendix)">下载</el-button>
         </template>
       </el-table-column>
-      <el-table-column prop="endTime" label="截止时间" align="center" />
+      <el-table-column prop="endTime" width="160" label="截止时间" align="center" />
 
 
       <el-table-column label="操作" width="250" align="center">
@@ -84,8 +84,7 @@
             <el-tag v-if="form.priceQuotes == 2">单价</el-tag>
         </el-form-item>
         <el-form-item label="报价" prop="price">
-          <el-input v-model="form.price" style="width: 170px;" placeholder="请输入金额" ><template slot="append">元</template></el-input>
-           <!-- <el-input class="input-width" v-model="form.price" @keyup.native="validateNumberInput($event,'price')" @blur="blurNumberInput($event,'price')"></el-input> -->
+          <el-input v-model.number="form.price" style="width: 250px;" placeholder="请输入金额" ><template slot="append">元</template></el-input>
         </el-form-item>
          <el-form-item label="备注" prop="remarks" >
           <el-input
@@ -96,7 +95,7 @@
             v-model="form.remarks">
           </el-input>
         </el-form-item>
-        <el-form-item label="附件" required="true" prop="appendix">
+        <el-form-item label="附件" :required="true" prop="appendix">
           <el-upload
             class="upload-demo"
             drag
@@ -126,7 +125,7 @@
 
  <!-- 详情 -->
   <el-dialog :append-to-body="true" :visible.sync="viewDialog" title="投标详情" width="90%" center>
-     <el-table  center :data="Paramdata" border style="width: 100%;">
+     <el-table  center :data="Paramdata"  style="width: 100%;">
 
       <el-table-column prop="customerName" label="客户名称" align="center"/>
 
@@ -149,9 +148,13 @@
       <el-table-column prop="userName" label=" 投标帐号" align="center"/>
       <el-table-column prop="status" label=" 投标结果" align="center" >
          <template slot-scope="scope">
-          <span v-if="scope.row.status == 0">已提交</span>
+           <el-tag type="info" v-if="scope.row.status == null">未参与</el-tag>
+          <el-tag type="success" v-if="scope.row.status == 0">已提交</el-tag>
+          <el-tag type="success" v-if="scope.row.status == 2">已中标</el-tag>
+          <el-tag type="danger" v-if="scope.row.status == 3">未中标</el-tag>
+          <!-- <span v-if="scope.row.status == 0">已提交</span>
           <span v-if="scope.row.status == 1">中标</span>
-          <span v-if="scope.row.status == 2">未中标</span>
+          <span v-if="scope.row.status == 2">未中标</span> -->
         </template>
       </el-table-column>
 
@@ -205,11 +208,10 @@ export default {
       pageSize: 10,
       total: 0, // 总数量
       rules: {
-        dictName: [
-          { required: true, message: '字典名称不为空', trigger: 'blur' }
-        ],
+     
         price: [
-          { required: true, message: '报价金额不为空', trigger: 'blur' }
+          { required: true, message: '报价金额不为空', trigger: 'blur' },
+          { type: 'number', message: '报价金额必须为数字值'}
         ],
         appendix: [
           // { type:"array",required: true, message: '附件不为空', trigger: 'blur' },
@@ -237,19 +239,6 @@ export default {
     this.getDictData()
   },
   methods: {
-    validateNumberInput(e,item) {
-        let value = e.target.value.replace(/[^\d.]/g,'').replace(/\.{2,}/g,'.').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
-        if(value >= 999999999.99) {
-          this.priceListForm[item] = 999999999.99;
-        }else {
-          this.priceListForm[item] = value;
-        }
- 	},
-	blurNumberInput(e,item) {
-    	if(e.target.value && e.target.value.indexOf('.') <= 0) {
-         	this.priceListForm[item] = e.target.value + '.00'
-      	}
- 	},
     // 发布时间
     oncustom(){
 
@@ -292,7 +281,7 @@ export default {
       // 点击文件列表中已上传的文件时的钩子
       handlePreview(file) {
         console.log(file,"file1");
-        window.location.href = file.url
+        // window.location.href = file.url
       },
       handleExceed(files, fileList) {
         this.$message.warning(`当前限制选择 1 个附件,本次选择了 ${files.length} 个文件`);
@@ -363,10 +352,12 @@ export default {
       this.isAdd = false
       this.form = row.bidding
       this.form.priceQuotes =row.priceQuotes
-      let name = this.form.appendix.split("\\") ;
-      name = name.pop()
-      // let name = data.appendix.replace(/(.*\/)*([^.]+).*/ig, "$2");
-      this.fileList = [{name:name,url: this.form.appendix}]
+      if(this.form.appendix){
+        let name = this.form.appendix.split("\\") ;
+        name = name.pop()
+        // let name = data.appendix.replace(/(.*\/)*([^.]+).*/ig, "$2");
+        this.fileList = [{name:name,url: this.form.appendix}]
+      }
     },
      handleView(row){
       this.param.tenderId = row.id
@@ -402,7 +393,8 @@ export default {
   }
 }
 </script>
-
 <style scoped>
-
+/* 去掉上传附件时候的过度效果 */
+  ::v-deep .el-upload-list__item{transition: none !important;}
 </style>
+