Selaa lähdekoodia

修改招聘会,上传回执

lrf402788946 5 vuotta sitten
vanhempi
commit
c74bb7b830

+ 19 - 2
src/components/upload.vue

@@ -23,6 +23,7 @@
 </template>
 
 <script>
+import _ from 'lodash';
 export default {
   name: 'upload',
   props: {
@@ -59,14 +60,30 @@ export default {
       return true;
     },
     outLimit() {
-      this.$message.error('只允许上传1张头像');
+      this.$message.error('只允许上传1张');
     },
     onSuccess(response, file, fileList) {
       //将文件整理好传回父组件
       this.$emit('upload', { type: this.type, data: response });
     },
     defalutProcess(val) {
-      this.$set(this, `fileList`, [{ name: this.type, url: this.data }]);
+      if (typeof val === 'object' && _.get(val, length) !== undefined && val.length > 0) {
+        let newArr = [];
+        val.map(item => {
+          let object = {};
+          object.name = item.name;
+          object.url = `${item.uri}`;
+          newArr.push(object);
+        });
+        this.$set(this, `fileList`, newArr);
+      } else if (typeof val === 'object' && _.get(val, length) === undefined) {
+        let object = {};
+        object.name = val.name;
+        object.url = `${val.uri}`;
+        this.$set(this, `fileList`, [object]);
+      } else if (typeof val === 'string') {
+        this.$set(this, `fileList`, [{ name: '附件', url: val }]);
+      }
     },
   },
 };

+ 11 - 10
src/store.js

@@ -43,14 +43,14 @@ const api = {
   message: '/adminapi/verify/sendmessage',
   checkMessage: '/adminapi/verify/check_message',
   // 关注数
-  stucorp: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ' / jobs'}/studentcorp`,
-  stucorpsearch: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ' / jobs'}/studentcorp`,
-  stucorplist: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ' / jobs'}/studentcorp`,
-  stucorpupdate: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ' / jobs'}/studentcorp`,
-  stucorpdelete: `/adminapi${process.env.NODE_ENV === 'development' ? '' : ' / jobs'}/studentcorp/{id}`,
+  stucorp: `/adminapi/studentcorp`,
+  stucorpsearch: `/adminapi/studentcorp`,
+  stucorplist: `/adminapi/studentcorp`,
+  stucorpupdate: `/adminapi/studentcorp`,
+  stucorpdelete: `/adminapi$/studentcorp/{id}`,
   //待办事项
-  notice: `${process.env.NODE_ENV === 'development' ? '/napi' : '/api'}/message`,
-  noticeDelete: `${process.env.NODE_ENV === 'development' ? '/napi' : '/api'}/message/{id}`,
+  notice: `/api/msg/message`, //${process.env.NODE_ENV === 'development' ? '/napi' : '/api'}
+  noticeDelete: `/api/msg/message/{id}`,
 };
 
 export default new Vuex.Store({
@@ -281,18 +281,19 @@ export default new Vuex.Store({
     },
     // 招聘会
     async jobfairOperation({ state }, { type, data }) {
+      let { skip, limit } = data;
       let result;
       if (type === 'add') {
         let { info, corpid, corpname } = data;
         result = await this.$axios.$post(api.fairs, info, {}, { corpid: corpid, corpname: corpname });
       }
       if (type === 'list') {
-        let { schid } = data;
-        result = await this.$axios.$get(api.fairs, {}, { schid: schid });
+        let { schid, status } = data;
+        result = await this.$axios.$get(api.fairs, {}, { schid: schid, status: status, skip: skip, limit: limit });
       }
       if (type === 'myList') {
         let { schid, fairid, corpid, status } = data;
-        result = await this.$axios.$get(api.faircorps, {}, { schid: schid, fairid: fairid, corpid: corpid, status: status });
+        result = await this.$axios.$get(api.faircorps, {}, { schid: schid, fairid: fairid, corpid: corpid, status: status, skip: skip, limit: limit });
       }
       if (type === 'search') {
         let { id } = data;

+ 10 - 9
src/views/jobs/jobfair/index.vue

@@ -8,7 +8,7 @@
         <list :dataList="firstList" :totalRow="firstTotalRow" @changePage="search" type="first"></list>
       </template>
       <template v-slot:main2>
-        <list :dataList="myList" :totalRow="myTotalRow" @changePage="search" @delete="handleDelete" type="my"></list>
+        <list :dataList="myList" :totalRow="myTotalRow" @changePage="search" @delete="handleDelete" type="my" @receipt="receipt"></list>
       </template>
     </list-tab>
   </div>
@@ -43,13 +43,6 @@ export default {
   },
   methods: {
     ...mapActions(['jobfairOperation']),
-    // changePage({ type, currentPage }) {
-    //   //type=>哪个标签页
-    //   //currentPage=>标签页的当前页,用来计算skip的
-    //   if (type === 'myList') this.mySearch(currentPage);
-    //   else this.search(currentPage);
-    //   //根据type查询对应的数据
-    // },
     async search({ type, currentPage }) {
       let skip = 0;
       if (currentPage) {
@@ -58,7 +51,7 @@ export default {
       let newType = type === 'my' ? 'myList' : 'list';
       let result = await this.jobfairOperation({
         type: newType,
-        data: { corpid: type === 'my' ? this.user.corpid : undefined, skip: skip, limit: this.$limit },
+        data: { corpid: type === 'my' ? this.user.corpid : undefined, skip: skip, limit: this.$limit, status: type !== 'my' ? '0' : undefined },
       });
       if (`${result.errcode}` === '0') {
         //给this=>vue的实例下在中的list属性,赋予result。data的值
@@ -111,6 +104,14 @@ export default {
         this.$message.error(result.errmsg ? result.errmsg : '删除失败');
       }
     },
+    async receipt(item) {
+      let result = await this.jobfairOperation({ type: 'applyUpdate', data: { id: item.id, info: { receipt_letter: item.receipt_letter } } });
+      if (`${result.errcode}` === '0') {
+        this.$message.success('保存回执');
+      } else {
+        this.$message.error(result.errmsg || '操作失败');
+      }
+    },
   },
 };
 </script>

+ 33 - 10
src/views/jobs/jobfair/list.vue

@@ -9,12 +9,14 @@
       </el-col>
     </el-row> -->
     <el-table :data="list" border style="width: 100%">
-      <el-table-column fixed type="index" label="序号" width="80" align="center"> </el-table-column>
-      <el-table-column prop="title" label="双选会名称">
+      <!-- <el-table-column fixed type="index" label="序号" width="80" align="center"> </el-table-column> -->
+      <el-table-column prop="title" label="双选会名称" width="200">
         <template v-slot="scoped">
           <el-row>
             <el-col :span="24">
-              <el-link type="primary" @click="$router.push({ path: '/jobs/jobfair/info', query: { id: scoped.row.id } })">{{ scoped.row.title }}</el-link>
+              <el-link type="primary" @click="$router.push({ path: '/jobs/jobfair/info', query: { id: type === 'my' ? scoped.row.fairid : scoped.row.id } })">
+                {{ scoped.row.title }}
+              </el-link>
             </el-col>
           </el-row>
         </template>
@@ -23,9 +25,10 @@
       <el-table-column prop="city" label="城市" width="120"></el-table-column>
       <el-table-column prop="schname" label="学校" width="150" sortable></el-table-column>
       <el-table-column prop="time" label="时间" width="150" sortable></el-table-column>
+      <el-table-column prop="booth" label="展位号" width="150" sortable v-if="type === 'my'"></el-table-column>
       <el-table-column prop="status" label="状态" v-if="type === 'my'" sortable>
         <template v-slot="scoped">
-          {{ `${scoped.row.status}` === '0' ? '审核' : `${scoped.row.status}` === '1' ? '审核成功' : '审核失败' }}
+          {{ `${scoped.row.status}` === '0' ? '审核成功' : `${scoped.row.status}` === '1' ? '审核' : '审核失败' }}
         </template>
       </el-table-column>
       <el-table-column fixed="right" label="操作">
@@ -34,7 +37,7 @@
             <el-row>
               <el-col :span="24">
                 <el-button
-                  v-if="`${scoped.row.status}` !== '1'"
+                  v-if="`${scoped.row.status}` !== '0'"
                   type="text"
                   size="small"
                   @click="$router.push({ path: '/jobs/jobfair/detail', query: { id: scoped.row.id } })"
@@ -43,7 +46,7 @@
                 <el-button v-else type="text" size="small" :disabled="true">已参加</el-button>
               </el-col>
               <el-col :span="24">
-                <el-button v-if="`${scoped.row.status}` !== '1'" type="text" size="small" @click="toFeedback()">上传回执</el-button>
+                <el-button v-if="`${scoped.row.status}` !== '1'" type="text" size="small" @click="toFeedback(scoped.row)">上传回执</el-button>
               </el-col>
               <el-col :span="24">
                 <el-button size="mini" type="text" @click="handleDelete(scoped.row.id)">删除</el-button>
@@ -72,13 +75,21 @@
         </el-pagination>
       </el-col>
     </el-row>
-    <el-dialog title="上传回执" :visible.sync="dialog" width="30%">
-      上传回执,还没调好接口
+    <el-dialog title="上传回执" :visible.sync="dialog" width="30%" center>
+      <el-row style="text-align:center;">
+        <el-col :span="24">
+          <upload :url="`/files/corp/receipt/${info.id}/upload`" :limit="1" :data="info.receipt_letter" type="receipt_letter" @upload="uploadSuccess"></upload>
+        </el-col>
+        <el-col :span="24" style="padding-top:1rem">
+          <el-button type="primary" @click="saveReceipt()">保&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;存</el-button>
+        </el-col>
+      </el-row>
     </el-dialog>
   </div>
 </template>
 
 <script>
+import upload from '@/components/upload.vue';
 export default {
   name: 'jobfairlist',
   props: {
@@ -86,11 +97,14 @@ export default {
     dataList: { type: Array, defalut: () => [] },
     totalRow: { type: Number, defalut: 20 },
   },
-  components: {},
+  components: {
+    upload,
+  },
   data: () => ({
     keyword: '',
     currentPage: 1,
     list: [],
+    info: {},
     dialog: false,
   }),
   created() {},
@@ -115,12 +129,21 @@ export default {
       this.currentPage = val;
       this.$emit('changePage', { type: this.type, currentPage: this.currentPage });
     },
-    toFeedback() {
+    toFeedback(item) {
+      this.$set(this, `info`, item);
       this.dialog = true;
     },
     handleDelete(id) {
       this.$emit('delete', { id: id });
     },
+    uploadSuccess({ type, data }) {
+      this.$set(this.info, `${type}`, { name: data.name, uri: data.uri });
+    },
+    saveReceipt() {
+      this.$emit(`receipt`, this.info);
+      this.$set(this, `info`, {});
+      this.$set(this, `dialog`, false);
+    },
   },
 };
 </script>

+ 0 - 1
src/views/jobs/profile/detail.vue

@@ -27,7 +27,6 @@
 
 <script>
 import backBar from '@/components/back-bar.vue';
-import upload from '@/components/upload.vue';
 import formItem from '@/components/form-item.vue';
 import detailLayout from '@/layout/detail-layout.vue';
 import WangEditor from '@/components/wang-editor.vue';