wangxy 2 дней назад
Родитель
Сommit
2ae8ae288a
2 измененных файлов с 82 добавлено и 6 удалено
  1. 7 0
      src/api/his/fraudUsers.js
  2. 75 6
      src/views/his/fraudUsers/index.vue

+ 7 - 0
src/api/his/fraudUsers.js

@@ -44,3 +44,10 @@ export function syncFraudUsers() {
     method: 'post'
   })
 }
+
+export function importTemplate() {
+  return request({
+    url: '/his/fraudUsers/importTemplate',
+    method: 'get'
+  })
+}

+ 75 - 6
src/views/his/fraudUsers/index.vue

@@ -55,6 +55,15 @@
           v-hasPermi="['his:fraudUsers:remove']"
         >删除</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="info"
+          icon="el-icon-upload2"
+          size="mini"
+          @click="handleImport"
+          v-hasPermi="['his:fraudUsers:add']"
+        >导入</el-button>
+      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -64,7 +73,7 @@
       <el-table-column label="名称" align="center" prop="name" />
       <el-table-column label="手机号" align="center" prop="phone" />
       <el-table-column label="地址" align="center" prop="address" show-overflow-tooltip />
-      <el-table-column label="职位" align="center" prop="position" />
+      <el-table-column label="原因" align="center" prop="position" show-overflow-tooltip />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
         <template slot-scope="scope">
           <el-button
@@ -104,8 +113,8 @@
         <el-form-item label="地址" prop="address">
           <el-input v-model="form.address" placeholder="请输入地址" />
         </el-form-item>
-        <el-form-item label="职位" prop="position">
-          <el-input v-model="form.position" placeholder="请输入职位" />
+        <el-form-item label="原因" prop="position">
+          <el-input v-model="form.position" type="textarea" placeholder="请输入原因" />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -113,11 +122,41 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-upload
+        ref="upload"
+        :limit="1"
+        accept=".xlsx, .xls"
+        :headers="upload.headers"
+        :action="upload.url + '?updateSupport=' + upload.updateSupport"
+        :disabled="upload.isUploading"
+        :on-progress="handleFileUploadProgress"
+        :on-success="handleFileSuccess"
+        :auto-upload="false"
+        drag
+      >
+        <i class="el-icon-upload"></i>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <div class="el-upload__tip text-center" slot="tip">
+          <div class="el-upload__tip" slot="tip">
+            <el-checkbox v-model="upload.updateSupport" /> 是否更新已存在手机号的数据
+          </div>
+          <span>仅允许导入 xls、xlsx 格式。名称/手机号/地址/原因均可为空。</span>
+          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
+        </div>
+      </el-upload>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { listFraudUsers, getFraudUsers, addFraudUsers, updateFraudUsers, delFraudUsers, syncFraudUsers } from "@/api/his/fraudUsers";
+import { listFraudUsers, getFraudUsers, addFraudUsers, updateFraudUsers, delFraudUsers, importTemplate } from "@/api/his/fraudUsers";
+import { getToken } from "@/utils/auth";
 
 export default {
   name: "FraudUsers",
@@ -132,6 +171,14 @@ export default {
       dataList: [],
       title: "",
       open: false,
+      upload: {
+        open: false,
+        title: "",
+        isUploading: false,
+        updateSupport: 0,
+        headers: { Authorization: "Bearer " + getToken() },
+        url: process.env.VUE_APP_BASE_API + "/his/fraudUsers/importData"
+      },
       queryParams: {
         pageNum: 1,
         pageSize: 10,
@@ -228,8 +275,8 @@ export default {
     handleDelete(row) {
       const ids = row.id || this.ids;
       this.$confirm('是否确认删除所选数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+        confirmButtonText: "确 定",
+        cancelButtonText: "取 消",
         type: "warning"
       }).then(function() {
         return delFraudUsers(ids);
@@ -237,6 +284,28 @@ export default {
         this.getList();
         this.msgSuccess("删除成功");
       }).catch(function() {});
+    },
+    handleImport() {
+      this.upload.title = "职业打假人导入";
+      this.upload.open = true;
+    },
+    importTemplate() {
+      importTemplate().then(response => {
+        this.download(response.msg);
+      });
+    },
+    handleFileUploadProgress() {
+      this.upload.isUploading = true;
+    },
+    handleFileSuccess(response) {
+      this.upload.open = false;
+      this.upload.isUploading = false;
+      this.$refs.upload.clearFiles();
+      this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+      this.getList();
+    },
+    submitFileForm() {
+      this.$refs.upload.submit();
     }
   }
 };