From 3339cd48d37e3fe1b0dd7f4ea313c0cf2a8c0623 Mon Sep 17 00:00:00 2001
From: yz <yz_0812@outlook.com>
Date: 星期四, 18 二月 2021 04:58:55 +0800
Subject: [PATCH] 标签管理

---
 src/views/yunpan/fujian.vue |  271 +++++++++++++++++++++++++++++++-----------------------
 1 files changed, 156 insertions(+), 115 deletions(-)

diff --git a/src/views/yunpan/fujian.vue b/src/views/yunpan/fujian.vue
index eac8c3e..76872d1 100644
--- a/src/views/yunpan/fujian.vue
+++ b/src/views/yunpan/fujian.vue
@@ -146,13 +146,79 @@
         </el-form>
         <el-row style="margin: 10px;">
           <el-col :span="24">
-            <el-button class="hr-but-all" type="danger">新建标签</el-button>
-            <el-button type="primary">删除标签</el-button>
-            <el-popconfirm title="是否删除所选择的附件?">
-              <el-button slot="reference" class="hr-but-all" type="danger" @click="delfj()">删除附件</el-button>
+            <el-button class="hr-but-all" type="danger" @click="dialogFormVisible = true">新建标签</el-button>
+            <el-popconfirm title="是否删除标签?" @onConfirm="deldialogFormVisible = true">
+              <el-button slot="reference" class="hr-but" type="danger">删除标签</el-button>
             </el-popconfirm>
+
+            <el-dialog
+              title="新建标签"
+              :visible.sync="dialogFormVisible"
+              width="25%"
+              class="add-label"
+            >
+              <el-form ref="labelform" :model="labelform" :rules="rules">
+                <el-form-item
+                  label="标签名称:"
+                  :label-width="formLabelWidth"
+                  prop="labelname"
+                >
+                  <el-input v-model="labelform.labelname" autocomplete="off" />
+                </el-form-item>
+                <el-form-item
+                  label="标签code:"
+                  :label-width="formLabelWidth"
+                  prop="labelcode"
+                >
+                  <el-input v-model="labelform.labelcode" autocomplete="off" />
+                </el-form-item>
+                <el-form-item label="标签排序:" :label-width="formLabelWidth" prop="sort">
+                  <el-input-number
+                    v-model="labelform.sort"
+                    :min="0"
+                    :max="100"
+                    label="排序"
+                  />
+                </el-form-item></el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible = false">取 消</el-button>
+                <el-button
+                  type="primary"
+                  @click="addlabel('labelform')"
+                >确 定</el-button>
+              </div>
+            </el-dialog>
+            <el-dialog
+              title="删除标签"
+              :visible.sync="deldialogFormVisible"
+              width="25%"
+              class="add-label"
+            >
+              <el-form ref="dellabelform" :model="labelform" :rules="delrules">
+                <el-form-item
+                  label="标签名称:"
+                  :label-width="formLabelWidth"
+                  prop="labelid"
+                >
+                  <el-select v-model="labelform.labelid" placeholder="请选择标签名称">
+                    <el-option
+                      v-for="item in labelData"
+                      :key="item.labelid"
+                      :value="item.labelid"
+                      :label="item.labelname"
+                    />
+                  </el-select>
+                </el-form-item>
+              </el-form>
+              <div slot="footer" class="dialog-footer">
+                <el-button @click="deldialogFormVisible = false">取 消</el-button>
+                <el-button
+                  type="primary"
+                  @click="dellabel('dellabelform')"
+                >确 定</el-button>
+              </div>
+            </el-dialog>
             <el-button class="hr-but-all" type="danger" @click="downloadfj()">下载附件</el-button>
-            <el-button class="hr-but-all" type="danger" @click="dialogShow()">附件管理</el-button>
             <el-dialog title="附件管理" :visible.sync="dialogShowUploadfj" :fullscreen="true">
               <uploadfj @cancleChooseUser="cancleChooseUser()" />
             </el-dialog>
@@ -171,7 +237,7 @@
                 <el-button
                   type="text"
                   size="small"
-                  @click.native.prevent="deleteRow(scope.$index, tableData)"
+                  @click.native.prevent="dialogShow(scope.$index, tableData)"
                 >
                   上传
                 </el-button>
@@ -181,112 +247,15 @@
             <el-table-column prop="certificateNumb" label="身份证号" width="180" />
             <el-table-column prop="deptName" label="护卫点(部门)" width="180" />
             <el-table-column prop="jobName" label="岗位" width="100" />
-            <el-table-column prop="jljt" label="记录截图">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.jljt }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="zp" label="照片">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.zp }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="ldht" label="劳动合同">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.ldht }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="sfz" label="身份证">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.sfz }}</el-link>
-              </template>
-            </el-table-column>
+            <template v-for="(col) in labelData">
+              <el-table-column :key="col.labelid" :prop="col.labelcode" :label="col.labelname">
+                <template slot-scope="scope">
+                  <el-link type="primary"> {{ scope.row[col.labelcode] }}</el-link>
+                </template>
+              </el-table-column>
+            </template>
 
-            <el-table-column prop="rzb" label="入职表">
-              <template slot-scope="scope">
-                <el-link type="primary">
-                  {{ scope.row.rzb }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="tjb" label="体检表">
-              <template slot-scope="scope">
-                <el-link type="primary">
-                  {{ scope.row.tjb }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="hz" label="回执">
-              <template slot-scope="scope">
-                <el-link type="primary">
-                  {{ scope.row.hz }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="yhk" label="银行卡">
-              <template slot-scope="scope">
-                <el-link type="primary">
-                  {{ scope.row.yhk }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="xgzj" label="相关证件">
-              <template slot-scope="scope">
-                <el-link type="primary">
-                  {{ scope.row.xgzj }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="xght" label="相关合同">
-              <template slot-scope="scope">
-                <el-link type="primary">{{ scope.row.xght }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="qj" label="请假">
-              <template slot-scope="scope">
-                <el-link type="primary">{{ scope.row.qj }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="cf" label="处罚">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.cf }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="czsq" label="辞职申请">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.czsq }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="lzsx" label="离职手续">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.lzsx }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="zl" label="自离">
-              <template slot-scope="scope">
-                <el-link type="primary">   {{ scope.row.zl }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="sb" label="社保">
-              <template slot-scope="scope">
-                <el-link type="primary">{{ scope.row.sb }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="syj" label="失业金">
-              <template slot-scope="scope">
-                <el-link type="primary">  {{ scope.row.syj }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="ywx" label="意外险">
-              <template slot-scope="scope">
-                <el-link type="primary">{{ scope.row.ywx }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="gs" label="工伤">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.gs }}</el-link>
-              </template>
-            </el-table-column>
-            <el-table-column prop="lz" label="劳资">
-              <template slot-scope="scope">
-                <el-link type="primary"> {{ scope.row.lz }}</el-link>
-              </template>
-            </el-table-column></el-table>
+          </el-table>
           <pagination
             v-show="total>0"
             :total="total"
@@ -308,6 +277,29 @@
   },
   data() {
     return {
+      deldialogFormVisible: false,
+      formLabelWidth: '100px',
+      dialogFormVisible: false,
+      labelform: {
+        labelname: '',
+        labelid: '',
+        labelcode: '',
+        sort: 0
+      },
+      rules: {
+        labelname: [
+          { required: true, message: '请输入标签名称', trigger: 'blur' },
+          { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' }
+        ],
+        labelcode: [
+          { required: true, message: '请输入标签code', trigger: 'blur' },
+          { min: 3, max: 10, message: '长度在 3 到 20 个字符', trigger: 'blur' }
+        ],
+        sort: [{ required: true, message: '请输入排序', type: 'number', trigger: 'blur' }]
+      },
+      delrules: {
+        labelid: [{ required: true, message: '请选择标签', trigger: 'change' }]
+      },
       dialogShowUploadfj: false,
       empName: '',
       queryform: {
@@ -363,6 +355,7 @@
         ]
       },
       tableData: [],
+      labelData: [],
       defaultProps: {
         children: 'children',
         label: 'label'
@@ -370,16 +363,53 @@
     }
   },
   mounted() {
+    this.initLabel()
     this.fetch()
   },
   methods: {
-    delfj() {
-
+    dellabel(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.$delete('hr/label', { ...this.labelform }).then(() => {
+            this.dialogFormVisible = false
+            this.$message({
+              message: this.$t('tips.deleteSuccess'),
+              type: 'success'
+            })
+            this.deldialogFormVisible = false
+            // 初始加载
+            this.initLabel()
+            this.fetch()
+          })
+        }
+      })
+    },
+    addlabel(formName) {
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          this.$post('hr/label', { ...this.labelform }).then(() => {
+            this.dialogFormVisible = false
+            this.$message({
+              message: this.$t('tips.createSuccess'),
+              type: 'success'
+            })
+            this.labelform.labelname = ''
+            this.labelform.sort = 0
+            this.labelform.labelcode = ''
+            // 初始加载
+            this.initLabel()
+            this.fetch()
+          })
+        }
+      })
     },
     downloadfj() {
-
+      this.$message({
+        message: '下载成功!',
+        type: 'success'
+      })
     },
-    dialogShow() {
+    dialogShow(index, tableData) {
       this.dialogShowUploadfj = true
     },
     cancleChooseUser() {
@@ -434,6 +464,11 @@
         this.tableData = data.rows
       })
     },
+    initLabel() {
+      this.$get('hr/label').then((r) => {
+        this.labelData = r.data.data
+      })
+    },
     advancedQueryShowMethods() {
       if (this.advancedQueryShow) {
         this.headerHeight = '70px'
@@ -457,8 +492,14 @@
 	margin-top: 10px;
 	height: 600px;
 }
+.el-input-number {
+	width: 100%;
+}
 </style>
 <style lang="scss">
+.add-lable {
+	text-align: initial;
+}
 .input-empName .el-input-group__append{
       padding: 0 15px 0 0;
 }

--
Gitblit v1.8.0