sunlupeng 2 年 前
コミット
5c7e52b71d

+ 7 - 7
src/components/AppSidebar.vue

@@ -83,13 +83,13 @@ export default {
                 icon:'icon-mall-zuorenwuzhuanjifen',
                 checked:false,
             },
-            {
-                value:'citeList',
-                name:'表彰上传',
-                path:'/home/citeList',
-                icon:'icon-mall-zuorenwuzhuanjifen',
-                checked:false,
-            },
+            // {
+            //     value:'citeList',
+            //     name:'表彰上传',
+            //     path:'/home/citeList',
+            //     icon:'icon-mall-zuorenwuzhuanjifen',
+            //     checked:false,
+            // },
         ],
         employeeDynamics: false,
         pointsMall: false,

+ 51 - 69
src/views/HomeView/CiteList.vue

@@ -3,8 +3,8 @@
     <div class="myTabs" style="background: #fff;min-height: 500px;">
       <el-tabs style="padding: 0 20px 40px 20px;" v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="表彰列表" name="first">
-          <el-button size="small" type="primary" @click="dialogVisible = true">上传表彰</el-button>
-          <el-table size="small" :data="dataList" border style="margin-top: 20px;width: 100%">
+          <el-button size="small" type="primary" @click="dialogVisibleCite = true">上传表彰</el-button>
+          <el-table size="small" :data="dataListCite" border style="margin-top: 20px;width: 960px">
             <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
             <el-table-column align="center" min-width="200" label="附件">
               <template slot-scope="props">
@@ -42,70 +42,64 @@
           </el-table>
           <!-- 分页 -->
           <div class="myPage">
-            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+            <el-pagination @size-change="handleSizeChangeCite" @current-change="handleCurrentChangeCite"
               :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
-              layout="total, sizes, prev, pager, next, jumper" :total="total">
+              layout="total, sizes, prev, pager, next, jumper" :totalCite="totalCite">
             </el-pagination>
           </div>
         </el-tab-pane>
-        <!-- <el-tab-pane label="积分获取规则" name="second">
-          <el-empty v-if="!integralRules" :image-size="200"></el-empty>
-          <div v-else v-html="integralRules"></div>
-        </el-tab-pane> -->
 
       </el-tabs>
     </div>
-    <el-dialog title="上传表彰" :visible.sync="dialogVisible" width="40%">
-      <el-form :rules="rules" ref="dataForm" :model="dataForm" label-width="100px">
+    <el-dialog title="上传表彰" :visible.sync="dialogVisibleCite" width="40%">
+      <el-form :rulesCite="rulesCite" ref="dataFormCite" :model="dataFormCite" label-width="100px">
         <el-form-item label="表彰类型:" prop="type">
-          <el-select clearable size="small" style="width: 95%;" v-model="dataForm.type" placeholder="请选择表彰类型">
-            <el-option v-for="item in typeList" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
+          <el-select clearable size="small" style="width: 95%;" v-model="dataFormCite.type" placeholder="请选择表彰类型">
+            <el-option v-for="item in typeListCite" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item v-if="dataForm.type=='1'" label="集体人员:" prop="groupIds">
-          <el-select size="small" v-model="dataForm.groupIds" multiple filterable placeholder="请选择" style="width: 95%;">
+        <el-form-item v-if="dataFormCite.type=='1'" label="集体人员:" prop="groupIds">
+          <el-select size="small" v-model="dataFormCite.groupIds" multiple filterable placeholder="请选择" style="width: 95%;">
             <el-option :key="item.loginId" v-for="item in recipientsList" :label="item.deptName+'_'+item.userName+'_'+item.employeNo" :value="item.loginId">
             </el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="客户名称:" prop="customerName">
-          <el-input clearable style="width: 95%;" size="small" v-model="dataForm.customerName"></el-input>
+          <el-input clearable style="width: 95%;" size="small" v-model="dataFormCite.customerName"></el-input>
         </el-form-item>
         <el-form-item label="表彰名称:" prop="title">
-          <el-input clearable style="width: 95%;" size="small" v-model="dataForm.title"></el-input>
+          <el-input clearable style="width: 95%;" size="small" v-model="dataFormCite.title"></el-input>
         </el-form-item>
         <el-form-item label="表彰描述:" prop="title">
-          <el-input  type="textarea" :rows="2" clearable style="width: 95%;" size="small" v-model="dataForm.content"></el-input>
+          <el-input  type="textarea" :rows="2" clearable style="width: 95%;" size="small" v-model="dataFormCite.content"></el-input>
         </el-form-item>
         <el-form-item label="表彰附件:" prop="fileIds">
-          <el-upload :action="fileUrl" :file-list="dataForm.files" :on-success="handleAvatarSuccess"
-            :before-upload="beforeUploadFile" :on-remove="handleRemove">
+          <el-upload :action="fileUrl" :file-list="dataFormCite.files" :on-success="handleAvatarSuccessCite"
+            :before-upload="beforeUploadFileCite" :on-remove="handleRemoveCite">
             <el-button size="small" type="primary">点击上传</el-button>
           </el-upload>
         </el-form-item>
        
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" type="primary" @click="submitForm">确 定</el-button>
+        <el-button size="small" type="primary" @click="submitFormCite">确 定</el-button>
       </span>
     </el-dialog>
   </div>
 </template>
 <script scoped>
-import { notice, dictList, allUserList, citeList, uploadCite } from "@/api/allApi";
+import { dictList, allUserList, citeList, uploadCite } from "@/api/allApi";
 export default {
   data() {
     return {
-      gridData: [],
-      integralRules: '',
-      typeList: [],
+      typeListCite: [],
       recipientsList:[],
       activeName: 'first',
       fileUrl: this.baseUrl,
-      dataList: [],
-      dialogVisible: false,
-      rules: {
+      dataListCite: [],
+      dialogVisibleCite: false,
+      rulesCite: {
         type: [{ required: true, message: "请选择表彰类型", trigger: "blur" }],
         groupIds: [{ required: true, message: "请选择集体人员", trigger: "blur" }],
         customerName: [{ required: true, message: "请填写客户名称", trigger: "blur" }],
@@ -113,12 +107,12 @@ export default {
         fileIds: [{ required: true, message: "请上传附件", trigger: "blur" }],
         content: [{ required: true, message: "请填写表彰描述", trigger: "blur" }],
       },
-      total: 0,
-      listQuery: {
+      totalCite: 0,
+      listQueryCite: {
         page: 1,
         limit: 10,
       },
-      dataForm: {
+      dataFormCite: {
         type: '',
         groupIds:[],
         customerName:'',
@@ -130,15 +124,14 @@ export default {
     };
   },
   created() {
-    this.getTypeList();
+    this.getTypeListCite();
     this.getAllUserList();
-    this.getDataList();
-    // this.getIntegralNotice();
+    this.getDataListCite();
   },
   methods: {
-    getTypeList(){
+    getTypeListCite(){
       dictList({dictType:'customer_treward_type'}).then(response=>{
-                this.typeList = response.data.data; 
+                this.typeListCite = response.data.data; 
             })
     },
     getAllUserList() {
@@ -149,24 +142,16 @@ export default {
     handleClick(tab, event) {
       console.log(tab.name, event);
     },
-    getIntegralNotice() {
-      notice({ noticeType: 'certificatNotice' }).then(response => {
-        this.integralRules = response.data.data.content;
-      })
-    },
-    handleChange(value) {
-      console.log(value);
-    },
-    handleRemove(file, fileList) {
+    handleRemoveCite(file, fileList) {
       console.log(file, fileList);
       let fileIds = [];
       for (let i in fileList) {
         let id = fileList[i].response.data.id;
         fileIds.push(id);
       }
-      this.dataForm.fileIds = fileIds.join(",");
+      this.dataFormCite.fileIds = fileIds.join(",");
     },
-    beforeUploadFile(file) {
+    beforeUploadFileCite(file) {
       console.log(file);
       const size = file.size / 1024 / 1024;
       console.log(size);
@@ -175,7 +160,7 @@ export default {
             return false;
         }
     },
-    handleAvatarSuccess(res, file, fileList) {
+    handleAvatarSuccessCite(res, file, fileList) {
       console.log(file, fileList);
       console.log("------", "==========");
       console.log("res = ", res);
@@ -192,27 +177,24 @@ export default {
           fileIds.push(id);
         }
       }
-      this.dataForm.fileIds = fileIds.join(",");
-    },
-    resetForm() {
-      this.$refs['dataForm'].resetFields();
+      this.dataFormCite.fileIds = fileIds.join(",");
     },
-    submitForm() {
-      this.$refs['dataForm'].validate((valid) => {
+    submitFormCite() {
+      this.$refs['dataFormCite'].validate((valid) => {
         if (valid) {
-          uploadCite(this.dataForm)
+          uploadCite(this.dataFormCite)
             .then((response) => {
-              this.dialogVisible = false;
+              this.dialogVisibleCite = false;
               this.$notify({
                 title: "成功",
                 message: "表彰上传成功",
                 type: "success",
                 duration: 2000,
               });
-              this.dataForm.type = [],
-              this.dataForm.fileIds = '',
-              this.dataForm.files = [],
-              this.getDataList();
+              this.dataFormCite.type = [],
+              this.dataFormCite.fileIds = '',
+              this.dataFormCite.files = [],
+              this.getDataListCite();
             })
             .catch(() => { });
         } else {
@@ -220,19 +202,19 @@ export default {
         }
       });
     },
-    getDataList() {
-      citeList(this.listQuery).then(response => {
-        this.dataList = response.data.data.items;
-        this.total = response.data.data.total;
+    getDataListCite() {
+      citeList(this.listQueryCite).then(response => {
+        this.dataListCite = response.data.data.items;
+        this.totalCite = response.data.data.totalCite;
       })
     },
-    handleSizeChange(val) {
-      this.listQuery.limit = val
-      this.getDataList()
+    handleSizeChangeCite(val) {
+      this.listQueryCite.limit = val
+      this.getDataListCite()
     },
-    handleCurrentChange(val) {
-      this.listQuery.page = val
-      this.getDataList()
+    handleCurrentChangeCite(val) {
+      this.listQueryCite.page = val
+      this.getDataListCite()
     },
 
   },

+ 200 - 2
src/views/HomeView/EarnPoints.vue

@@ -4,7 +4,7 @@
       <el-tabs style="padding: 0 20px 40px 20px;" v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="证书列表" name="first">
           <el-button size="small" type="primary" @click="dialogVisible = true">上传证书</el-button>
-          <el-table size="small" :data="dataList" border style="margin-top: 20px;width: 100%">
+          <el-table size="small" :data="dataList" border style="margin-top: 20px;width: 960px">
             <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
             <el-table-column align="center" min-width="200" label="附件">
               <template slot-scope="props">
@@ -30,6 +30,52 @@
             </el-pagination>
           </div>
         </el-tab-pane>
+        <el-tab-pane label="表彰列表" name="third">
+          <el-button size="small" type="primary" @click="dialogVisibleCite = true">上传表彰</el-button>
+          <el-table size="small" :data="dataListCite" border style="margin-top: 20px;width: 960px">
+            <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
+            <el-table-column align="center" min-width="200" label="附件">
+              <template slot-scope="props">
+                <div v-for="(item, index) in props.row.files" :key="index">
+                  <a style="color: #1e80ff;" target="_blank" :href="item.url">{{ item.oldName }}</a>
+                </div>
+
+              </template>
+            </el-table-column>
+            <el-table-column align="center" prop="typeName" min-width="100" label="表彰类型"></el-table-column>
+            <el-table-column align="center" min-width="100" label="表彰人员">
+              <template slot-scope="props">
+                <div v-for="(item, index) in props.row.groupUsers" :key="index">
+                    {{ item.userName }}
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column align="center" prop="customerName" min-width="100" label="客户名称"></el-table-column>
+            <el-table-column align="center" prop="title" min-width="100" label="表彰名称"></el-table-column>
+            <el-table-column min-width="150" align="center" prop="content" label="表彰描述"></el-table-column>
+            <el-table-column min-width="120" align="center" label="状态">
+              <template slot-scope="props">
+                <el-popover trigger="hover">
+                  <el-table :data="props.row.logs" border size="mini">
+                    <el-table-column min-width="80" align="center" prop="auditor" label="处理人"></el-table-column>
+                    <el-table-column min-width="160" align="center" prop="comment" label="处理结果"></el-table-column>
+                    <!-- <el-table-column min-width="120" align="center" prop="statusName" label="状态"></el-table-column> -->
+                    <el-table-column min-width="180" align="center" prop="createTime" label="处理时间"></el-table-column>
+                  </el-table>
+                  <span style="color: #1e80ff;cursor: pointer;" slot="reference">{{ props.row.statusName }}</span>
+                </el-popover>
+              </template>
+            </el-table-column>
+            <el-table-column min-width="150" align="center" prop="createTime" label="上传时间"></el-table-column>
+          </el-table>
+          <!-- 分页 -->
+          <div class="myPage">
+            <el-pagination @size-change="handleSizeChangeCite" @current-change="handleCurrentChangeCite"
+              :current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="10"
+              layout="total, sizes, prev, pager, next, jumper" :totalCite="totalCite">
+            </el-pagination>
+          </div>
+        </el-tab-pane>
         <el-tab-pane label="积分获取规则" name="second">
           <el-empty v-if="!integralRules" :image-size="200"></el-empty>
           <div v-else v-html="integralRules"></div>
@@ -59,10 +105,45 @@
         <el-button size="small" type="primary" @click="submitForm">确 定</el-button>
       </span>
     </el-dialog>
+    <el-dialog title="上传表彰" :visible.sync="dialogVisibleCite" width="40%">
+      <el-form :rules="rulesCite" ref="dataFormCite" :model="dataFormCite" label-width="100px">
+        <el-form-item label="表彰类型:" prop="type">
+          <el-select clearable size="small" style="width: 95%;" v-model="dataFormCite.type" placeholder="请选择表彰类型">
+            <el-option v-for="item in typeListCite" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item v-if="dataFormCite.type=='1'" label="集体人员:" prop="groupIds">
+          <el-select size="small" v-model="dataFormCite.groupIds" multiple filterable placeholder="请选择" style="width: 95%;">
+            <el-option :key="item.loginId" v-for="item in recipientsList" :label="item.deptName+'_'+item.userName+'_'+item.employeNo" :value="item.loginId">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="客户名称:" prop="customerName">
+          <el-input clearable style="width: 95%;" size="small" v-model="dataFormCite.customerName"></el-input>
+        </el-form-item>
+        <el-form-item label="表彰名称:" prop="title">
+          <el-input clearable style="width: 95%;" size="small" v-model="dataFormCite.title"></el-input>
+        </el-form-item>
+        <el-form-item label="表彰描述:" prop="title">
+          <el-input  type="textarea" :rows="2" clearable style="width: 95%;" size="small" v-model="dataFormCite.content"></el-input>
+        </el-form-item>
+        <el-form-item label="表彰附件:" prop="fileIds">
+          <el-upload :action="fileUrl" :file-list="dataFormCite.files" :on-success="handleAvatarSuccessCite"
+            :before-upload="beforeUploadFileCite" :on-remove="handleRemoveCite">
+            <el-button size="small" type="primary">点击上传</el-button>
+          </el-upload>
+        </el-form-item>
+       
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="submitFormCite">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script scoped>
-import { certificatePage, certificateUpload, notice, certificatType } from "@/api/allApi";
+import { certificatePage, certificateUpload, notice, certificatType,dictList, allUserList, citeList, uploadCite } from "@/api/allApi";
 import { handleTree } from '@/utils/index'
 export default {
   data() {
@@ -88,10 +169,39 @@ export default {
         title:'',
         fileIds: '',
         files:[],
+      },
+      typeListCite: [],
+      recipientsList:[],
+      dataListCite: [],
+      dialogVisibleCite: false,
+      rulesCite: {
+        type: [{ required: true, message: "请选择表彰类型", trigger: "blur" }],
+        groupIds: [{ required: true, message: "请选择集体人员", trigger: "blur" }],
+        customerName: [{ required: true, message: "请填写客户名称", trigger: "blur" }],
+        title: [{ required: true, message: "请填写表彰名称", trigger: "blur" }],
+        fileIds: [{ required: true, message: "请上传附件", trigger: "blur" }],
+        content: [{ required: true, message: "请填写表彰描述", trigger: "blur" }],
+      },
+      totalCite: 0,
+      listQueryCite: {
+        page: 1,
+        limit: 10,
+      },
+      dataFormCite: {
+        type: '',
+        groupIds:[],
+        customerName:'',
+        title:'',
+        fileIds: '',
+        files:[],
+        content:''
       }
     };
   },
   created() {
+    this.getTypeListCite();
+    this.getAllUserList();
+    this.getDataListCite();
     this.getTypeList();
     this.getDataList();
     this.getIntegralNotice();
@@ -192,6 +302,94 @@ export default {
       this.getDataList()
     },
 
+    getTypeListCite(){
+      dictList({dictType:'customer_treward_type'}).then(response=>{
+                this.typeListCite = response.data.data; 
+            })
+    },
+    getAllUserList() {
+            allUserList().then(response => {
+                this.recipientsList = response.data.data;
+            }).catch(() => {});
+        },
+    handleClick(tab, event) {
+      console.log(tab.name, event);
+    },
+    handleRemoveCite(file, fileList) {
+      console.log(file, fileList);
+      let fileIds = [];
+      for (let i in fileList) {
+        let id = fileList[i].response.data.id;
+        fileIds.push(id);
+      }
+      this.dataFormCite.fileIds = fileIds.join(",");
+    },
+    beforeUploadFileCite(file) {
+      console.log(file);
+      const size = file.size / 1024 / 1024;
+      console.log(size);
+        if(size > 10 ){
+          this.$message.error("文件大小不能超过10MB!");
+            return false;
+        }
+    },
+    handleAvatarSuccessCite(res, file, fileList) {
+      console.log(file, fileList);
+      console.log("------", "==========");
+      console.log("res = ", res);
+
+      let fileIds = [];
+      for (let i in fileList) {
+        let response = fileList[i].response;
+        if (response.errno && response.errno != "0") {
+          this.$message.error("该文件上传失败,已被移除,请重新上传!");
+          // 上传失败移除该 file 对象
+          fileList.splice(i, 1);
+        } else {
+          let id = fileList[i].response.data.id;
+          fileIds.push(id);
+        }
+      }
+      this.dataFormCite.fileIds = fileIds.join(",");
+    },
+    submitFormCite() {
+      this.$refs['dataFormCite'].validate((valid) => {
+        if (valid) {
+          uploadCite(this.dataFormCite)
+            .then((response) => {
+              this.dialogVisibleCite = false;
+              this.$notify({
+                title: "成功",
+                message: "表彰上传成功",
+                type: "success",
+                duration: 2000,
+              });
+              this.dataFormCite.type = [],
+              this.dataFormCite.fileIds = '',
+              this.dataFormCite.files = [],
+              this.getDataListCite();
+            })
+            .catch(() => { });
+        } else {
+          return false;
+        }
+      });
+    },
+    getDataListCite() {
+      citeList(this.listQueryCite).then(response => {
+        this.dataListCite = response.data.data.items;
+        this.totalCite = response.data.data.totalCite;
+      })
+    },
+    handleSizeChangeCite(val) {
+      this.listQueryCite.limit = val
+      this.getDataListCite()
+    },
+    handleCurrentChangeCite(val) {
+      this.listQueryCite.page = val
+      this.getDataListCite()
+    },
+
   },
 };
 </script>

+ 5 - 1
src/views/HomeView/MyCenter.vue

@@ -16,7 +16,11 @@
                             </el-option>
                         </el-select>
                         <el-button size="small" style="margin-right: 30px;" type="primary" @click="handleFilter">查询</el-button>
-                        <el-table size="small" :data="firstList" border style="margin-top: 30px;width: 100%">
+                        <el-table size="small" :data="firstList" border style="margin-top: 30px;width: 960px">
+                            <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
+                            <el-table-column align="center" prop="integralTypeName" label="积分类型"></el-table-column>
+                            <el-table-column align="center" prop="integral" label="积分"></el-table-column>
+                            <el-table-column align="center" prop="createTime" label="获取时间"></el-table-column>
                             <el-table-column align="center" type="index" width="50" label="序号"></el-table-column>
                             <el-table-column align="center" prop="integralTypeName" label="积分类型"></el-table-column>
                             <el-table-column align="center" prop="integral" label="积分"></el-table-column>