Преглед изворни кода

企业导入和招聘信息导入

yanliming пре 1 година
родитељ
комит
bf63811f52

+ 128 - 0
src/views/base/enterpriseInfo-list.vue

@@ -44,6 +44,13 @@
           :disabled="multipleSelection.length==0"
           @click="handleBatchDelete"
         >删除选中项</el-button>
+        <el-button
+          type="primary"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          @click="batchImportVisible = true"
+        >导入</el-button>
       </el-row>
       <el-table
         :data="tableData"
@@ -96,11 +103,62 @@
         :title="modalTitle"
         @close="onDetailModalClose"
       ></enterpriseInfo-detail>
+      <el-dialog
+      title="批量导入企业"
+      :visible.sync="batchImportVisible"
+      :modal-append-to-body="false"
+      style="text-align: left"
+      :close-on-click-modal="false"
+    >
+      <el-form label-width="150px">
+        <el-form-item label="模板下载">
+          <el-link
+            href="http://oss.xiaoxinda.com/jk-temporary-workers/person.xls"
+            type="primary"
+            target="_blank"
+            >点击下载模板</el-link
+          >
+        </el-form-item>
+        <el-form-item label="上传文件">
+          <el-upload
+            class="upload-demo"
+            accept=".xls"
+            :action="uploadUrlXls"
+            :data="uploadXlsData"
+            :headers="headers"
+            :on-preview="handleBatchImportPreview"
+            name="uploadFile"
+            :multiple="true"
+            :limit="1"
+            :on-remove="handleBatchImportRemove"
+            :before-remove="beforeBatchImportRemove"
+            :before-upload="beforeUpload"
+            :on-exceed="handleBatchImportExceed"
+            :on-success="handleBatchImportSuccess"
+            :file-list="batchImportFileList"
+          >
+            <el-button size="small" type="primary" :loading="xlsLoading"
+              >点击上传</el-button
+            >
+            <div slot="tip" class="el-upload__tip">
+              只能上传xls文件,且不超过500kb
+            </div>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="batchImportVisible = false"
+          >关 闭</el-button
+        >
+      </div>
+    </el-dialog>
     </div>
   </template>
   <script>
+  import Constant from "@/constant";
   import enterpriseInfoApi from "@/api/base/enterpriseInfo";
   import enterpriseInfoDetail from "./enterpriseInfo-detail";
+  import { getToken } from "@/utils/auth"; // get token from cookie
   
   export default {
     name: 'baseEnterpriseInfoList',
@@ -133,6 +191,16 @@
           label: "name",
           children: "children"
         },
+        batchImportVisible: false,
+        xlsLoading: false,
+        batchImportFileList: [],
+        uploadUrlXls: Constant.serverUrl + "/base/enterpriseInfo/importXls",
+        uploadXlsData: {
+            subFolder: "enterpriseInfo",
+        },
+        headers: {
+            Authorization: getToken(),
+        },
       };
     },
     methods: {
@@ -277,6 +345,65 @@
           });
         });
       },
+      beforeUpload(file, fileList) {
+          //导入前判断
+          var self = this;
+          self.xlsLoading = true;
+          return true;
+      },
+              //批量导入-上传成功
+              handleBatchImportSuccess(response, file, fileList) {
+        var self = this;
+        self.xlsLoading = false;
+
+        if (response.result) {
+            self.$message.success(response.message);
+            this.batchImportFileList = [];
+            this.changePage(1);
+
+
+        } else {
+            //this.$message.error(response.message);
+            this.batchImportFileList = [];
+            this.changePage(1);
+
+            if (response.data != null) {
+            //下载有错误信息提示的报表
+            //window.open(response.data);
+            self.$message({
+                showClose: true,
+                dangerouslyUseHTMLString: true,
+                message:
+                response.message +
+                `,<a href="${response.data}" target="_blank">点击下载未导入的数据报表</a>&nbsp;`,
+                duration: 30000,
+            });
+            }
+        }
+
+        this.batchImportVisible = false;
+      },
+      //批量导入-预览
+      handleBatchImportPreview(file) {
+        console.log(file.url);
+      },
+      //批量导入-移除
+      handleBatchImportRemove(file, fileList) {
+        console.log(file, fileList);
+      },
+      //批量导入-移除前操作
+      beforeBatchImportRemove(file, fileList) {
+        console.log(file, fileList);
+      },
+      //批量导入-文件超出个数限制时的钩子
+      handleBatchImportExceed(files, fileList) {
+      this.$message.warning(
+          `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
+          files.length + fileList.length
+          } 个文件`
+        );
+      },
+      
       onDetailModalClose(refreshed) {
         this.showModal = false;
   
@@ -284,6 +411,7 @@
           this.changePage(this.pageIndex);
         }
       },
+      
     },
     mounted: function() {
       var self = this;

+ 18 - 4
src/views/base/recruitInformationInfo-detail.vue

@@ -45,11 +45,8 @@
           <el-form-item label="职位名称" prop="positionName">
             <el-input v-model="formModel.positionName" placeholder="请输入职位名称" style="width: 300px"></el-input>
           </el-form-item>
-          <el-form-item label="薪资待遇" prop="salary">
-            <el-input v-model="formModel.salary" placeholder="请输入薪资待遇" style="width: 300px"></el-input>
-          </el-form-item>
           <el-form-item label="结算方式" prop="settlementMethod">
-            <el-select v-model="formModel.settlementMethod"  style="width: 300px" filterable placeholder="请选择" clearable>
+            <el-select v-model="formModel.settlementMethod" @change="handChange"  style="width: 300px" filterable placeholder="请选择" clearable>
             <el-option
                   v-for="result in methodList"
                   :key="result.id"
@@ -58,6 +55,11 @@
                 ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="薪资待遇" prop="salary">
+            <el-input v-model="formModel.salary" placeholder="请输入薪资待遇" style="width: 300px">
+              <template slot="append">{{unit}}</template>
+            </el-input>
+          </el-form-item>
           <el-form-item label="招聘人数" prop="recruitingNumbers">
             <el-input-number v-model="formModel.recruitingNumbers" :min="0" label="招聘人数"  style="width: 300px"></el-input-number>
           </el-form-item>
@@ -145,6 +147,7 @@
           intendedIndustriesList:[],
           methodList:[],
           enterpriseList:[],
+          unit:"",
       };
     },
     created() {
@@ -209,6 +212,17 @@
           }
         });
       },
+      handChange(val){
+        if(val=="1"){
+          this.unit="元/日"
+        }
+        else if(val=="2"){
+          this.unit="元/周"
+        }
+        else if(val=="3"){
+          this.unit="元/月"
+        }
+      }
     },
     async mounted() {
       var self = this;

+ 127 - 1
src/views/base/recruitInformationInfo-list.vue

@@ -80,6 +80,13 @@
           :disabled="multipleSelection.length==0"
           @click="handleBatchDelete"
         >删除选中项</el-button>
+        <el-button
+          type="primary"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          @click="batchImportVisible = true"
+        >导入</el-button>
       </el-row>
       <el-table
         :data="tableData"
@@ -147,15 +154,66 @@
         :title="modalTitle3"
         @close="onDetailModalClose3"
       ></recruitInformationInfo-detail>
+      <el-dialog
+      title="批量导入企业"
+      :visible.sync="batchImportVisible"
+      :modal-append-to-body="false"
+      style="text-align: left"
+      :close-on-click-modal="false"
+    >
+      <el-form label-width="150px">
+        <el-form-item label="模板下载">
+          <el-link
+            href="http://oss.xiaoxinda.com/jk-temporary-workers/person.xls"
+            type="primary"
+            target="_blank"
+            >点击下载模板</el-link
+          >
+        </el-form-item>
+        <el-form-item label="上传文件">
+          <el-upload
+            class="upload-demo"
+            accept=".xls"
+            :action="uploadUrlXls"
+            :data="uploadXlsData"
+            :headers="headers"
+            :on-preview="handleBatchImportPreview"
+            name="uploadFile"
+            :multiple="true"
+            :limit="1"
+            :on-remove="handleBatchImportRemove"
+            :before-remove="beforeBatchImportRemove"
+            :before-upload="beforeUpload"
+            :on-exceed="handleBatchImportExceed"
+            :on-success="handleBatchImportSuccess"
+            :file-list="batchImportFileList"
+          >
+            <el-button size="small" type="primary" :loading="xlsLoading"
+              >点击上传</el-button
+            >
+            <div slot="tip" class="el-upload__tip">
+              只能上传xls文件,且不超过500kb
+            </div>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="batchImportVisible = false"
+          >关 闭</el-button
+        >
+      </div>
+    </el-dialog>
     </div>
   </template>
   <script>
+  import Constant from "@/constant";
   import recruitInformationInfoApi from "@/api/base/recruitInformationInfo";
   import enterpriseInfoDetail from "./enterpriseInfo-detail";
   import recruitPersonRelationList from "./recruitPersonRelation-list";
   import recruitInformationInfoDetail from "./recruitInformationInfo-detail";
   import dataDictionaryApi from "@/api/sys/dataDictionary";
-  
+  import { getToken } from "@/utils/auth"; // get token from cookie
+
   export default {
     name: 'baseRecruitInformationInfoList',
     data() {
@@ -209,6 +267,16 @@
           label: "name",
           children: "children"
         },
+        batchImportVisible: false,
+        xlsLoading: false,
+        batchImportFileList: [],
+        uploadUrlXls: Constant.serverUrl + "/base/recruitInformationInfo/importXls",
+        uploadXlsData: {
+            subFolder: "recruitInformationInfo",
+        },
+        headers: {
+            Authorization: getToken(),
+        },
       };
     },
     created() {
@@ -398,6 +466,64 @@
           this.changePage(this.pageIndex);
         }
       },
+      beforeUpload(file, fileList) {
+          //导入前判断
+          var self = this;
+          self.xlsLoading = true;
+          return true;
+      },
+              //批量导入-上传成功
+              handleBatchImportSuccess(response, file, fileList) {
+        var self = this;
+        self.xlsLoading = false;
+
+        if (response.result) {
+            self.$message.success(response.message);
+            this.batchImportFileList = [];
+            this.changePage(1);
+
+
+        } else {
+            //this.$message.error(response.message);
+            this.batchImportFileList = [];
+            this.changePage(1);
+
+            if (response.data != null) {
+            //下载有错误信息提示的报表
+            //window.open(response.data);
+            self.$message({
+                showClose: true,
+                dangerouslyUseHTMLString: true,
+                message:
+                response.message +
+                `,<a href="${response.data}" target="_blank">点击下载未导入的数据报表</a>&nbsp;`,
+                duration: 30000,
+            });
+            }
+        }
+
+        this.batchImportVisible = false;
+      },
+      //批量导入-预览
+      handleBatchImportPreview(file) {
+        console.log(file.url);
+      },
+      //批量导入-移除
+      handleBatchImportRemove(file, fileList) {
+        console.log(file, fileList);
+      },
+      //批量导入-移除前操作
+      beforeBatchImportRemove(file, fileList) {
+        console.log(file, fileList);
+      },
+      //批量导入-文件超出个数限制时的钩子
+      handleBatchImportExceed(files, fileList) {
+      this.$message.warning(
+          `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
+          files.length + fileList.length
+          } 个文件`
+        );
+      },
     },
     mounted: function() {
       var self = this;