Browse Source

Signed-off-by: 1004749546@qq.com <1004749546@qq.com>
考评方案及考评项 提交

1004749546@qq.com 4 years ago
parent
commit
3deacbfaf4

+ 169 - 0
src/views/evaluation/evaluationItem/AddEvaIndexModal.vue

@@ -0,0 +1,169 @@
+<template>
+  <div>
+    <a-modal class="modalBox" :title="titleText" v-model="isshow" @cancle="cancel" :width="600">
+      <a-form :form="form" ref="form" @submit="handleSubmit">
+        <a-row :gutter="24">
+          <a-col :span="20">
+            <!-- 考评指标名称 -->
+            <a-form-item label="考评指标名称:" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
+              <a-input
+                allowClear
+                :maxLength="128"
+                v-decorator="[
+                  'formData.name',
+                  { initialValue: formData.name,
+                    rules: [{ required: true, message: '请输入考评指标名称!' }] },
+                ]"
+                placeholder="请输入考评指标名称" />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-form-item :wrapper-col="{ span: 24, offset: 10 }">
+          <a-button type="primary" @click="handleSubmit()">
+            确定
+          </a-button>
+          <a-button :style="{ marginLeft: '8px' }" @click="handleCancel()">
+            取消
+          </a-button>
+        </a-form-item>
+      </a-form>
+
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import {
+  STable,
+  VSelect
+} from '@/components'
+import {
+  saveAuth
+} from '@/api/tenants.js'
+export default {
+  name: 'AddEvaItemModal',
+  components: {
+    STable,
+    VSelect
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    // 要编辑的考评指标id
+    itemId: {
+      type: [String, Number],
+      default: ''
+    }
+  },
+  watch: {
+    visible (newValue, oldValue) {
+      this.isshow = newValue
+    },
+    isshow (newValue, oldValue) {
+      if (newValue) {
+
+      } else {
+        this.cancel()
+      }
+    }
+  },
+  data () {
+    return {
+      isshow: this.visible, // 弹框显示隐藏
+      form: this.$form.createForm(this, {
+        name: 'AddEvaIndexModal'
+      }),
+      formData: {
+        name: '' // 指标名称
+      }
+
+    }
+  },
+  computed: {
+    // 弹框标题
+    titleText () {
+      return this.itemId ? '编辑' : '新增'
+    }
+  },
+  methods: {
+    // 点击弹框x号触发事件
+    cancel (e) {
+      this.clear()
+      this.$emit('close')
+    },
+    // 保存提交
+    handleSubmit () {
+      const _this = this
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          console.log(values.formData, ' formData.type222222222')
+          // const params = Object.assign({
+          //   id: this.itemData.id
+          // }, values.formData)
+          // params.expireDate = moment(params.expireDate).format('YYYY-MM-DD')
+          // console.log(params, 'ppppppppppppp')
+          // saveAuth(params).then(res => {
+          //   console.log(res, 'res--save')
+          //   if (res.status + '' === '200') {
+          //     this.$message.success(res.message ? res.message : '保存成功')
+          //     this.$emit('refresh')
+          //     setTimeout(function () {
+          //       _this.cancel()
+          //     }, 300)
+          //   } else {
+          //     // this.$message.warning(res.message)
+          //   }
+          // })
+        }
+      })
+    },
+    // 取消
+    handleCancel () {
+      const _this = this
+      this.$confirm({
+        title: '提示',
+        content: '确定取消吗?',
+        okText: '确定',
+        cancelText: '取消',
+        onOk () {
+          _this.clear()
+          _this.cancel()
+        }
+      })
+    },
+    clear () {
+      this.form.resetFields()
+    }
+
+  },
+  beforeCreate () {
+    this.form = this.$form.createForm(this, {
+      name: 'AddEvaIndexModal'
+    })
+  }
+
+}
+</script>
+
+<style>
+	.modalBox {}
+
+	.ant-modal-footer {
+		display: none;
+	}
+
+	.time-text {
+		color: #1890FF;
+		padding: 0px 20px;
+		cursor: pointer;
+	}
+
+	.labelT {
+		position: absolute;
+		left: -135px;
+		top: 20px;
+		color: rgba(0, 0, 0, 0.85);
+	}
+</style>

+ 4 - 10
src/views/evaluation/evaluationItem/AddEvaModal.vue → src/views/evaluation/evaluationItem/AddEvaItemModal.vue

@@ -58,7 +58,7 @@ import {
   saveAuth
 } from '@/api/tenants.js'
 export default {
-  name: 'AddEvaModal',
+  name: 'AddEvaItemModal',
   components: {
     STable,
     VSelect
@@ -68,7 +68,7 @@ export default {
       type: Boolean,
       default: false
     },
-    // 要编辑的方案id
+    // 要编辑的项目id
     itemId: {
       type: [String, Number],
       default: ''
@@ -90,7 +90,7 @@ export default {
     return {
       isshow: this.visible, // 弹框显示隐藏
       form: this.$form.createForm(this, {
-        name: 'AddEvaModal'
+        name: 'AddEvaItemModal'
       }),
       formData: {
         name: '', // 方案名称
@@ -112,10 +112,6 @@ export default {
       this.clear()
       this.$emit('close')
     },
-    // 使用权限改变
-    scopeTypeChange (v) {
-      this.formData.scopeType = v
-    },
     // 保存提交
     handleSubmit () {
       const _this = this
@@ -158,14 +154,12 @@ export default {
     },
     clear () {
       this.form.resetFields()
-	  // 重置时 下拉框不起作用,对下拉框单独设置
-	  this.form.setFields({ 'formData.scopeType': { value: [], errors: '' } })
     }
 
   },
   beforeCreate () {
     this.form = this.$form.createForm(this, {
-      name: 'AddEvaModal'
+      name: 'AddEvaItemModal'
     })
   }
 

+ 11 - 8
src/views/evaluation/evaluationItem/EvaluationItem.vue

@@ -43,9 +43,9 @@
       </template>
     </s-table>
     <!-- 新增/编辑 弹窗 -->
-    <add-evaModal :itemId="itemId" :visible="openAddModal" @refresh="$refs.table.refresh()" @close="openAddModal=false"></add-evaModal>
+    <add-evaItemModal :itemId="itemId" :visible="openAddModal" @refresh="$refs.table.refresh()" @close="openAddModal=false"></add-evaItemModal>
     <!-- 设置弹窗 -->
-    <!-- <set-evaModal :itemId="itemId" :visible="openSetting" @refresh="$refs.table.refresh()" @close="openSetting=false"></set-evaModal> -->
+    <set-evaItemModal :itemId="itemId" :itemName="itemName" :visible="openSetting" @close="openSetting=false"></set-evaItemModal>
   </a-card>
 
 </template>
@@ -59,16 +59,16 @@ import {
   getTenantsList,
   enable
 } from '@/api/tenants.js'
-import addEvaModal from './AddEvaModal.vue'
-// import setEvaModal from './SetEvaModal.vue'
+import addEvaItemModal from './AddEvaItemModal.vue'
+import setEvaItemModal from './SetEvaItemModal.vue'
 import moment from 'moment'
 export default {
   name: 'EvaluationPlanList',
   components: {
     STable,
     VSelect,
-    addEvaModal
-    // setEvaModal
+    addEvaItemModal,
+    setEvaItemModal
   },
   data () {
     return {
@@ -77,7 +77,8 @@ export default {
       pageSize: 10,
       openAddModal: false, // 打开新增弹窗
 	  openSetting: false, // 打开设置弹窗
-      itemId: '', // 要编辑的租户id
+      itemId: '', // 要编辑的考评项id
+      itemName: '', // 要编辑的考评项名称
       // 查询参数
       queryParam: {
         name: '',
@@ -179,7 +180,7 @@ export default {
       const _this = this
       this.$confirm({
         title: '警告',
-        content: '删除后无法恢复,确认删除?',
+        content: '删除考评项目时,其关联的考评指标将被同步删除,确认删除吗?',
         okText: '确定',
         cancelText: '取消',
         onOk () {
@@ -197,6 +198,8 @@ export default {
     // 打开设置弹框
     handleSet (row) {
       this.openSetting = true
+	  this.itemId = row.id
+	  this.itemName = row.name
 	  console.log(this.openSetting)
     },
     // 重置

+ 177 - 0
src/views/evaluation/evaluationItem/SetEvaItemModal.vue

@@ -0,0 +1,177 @@
+<template>
+  <div>
+    <a-modal class="modalBox" title="设置考评指标" v-model="isshow" @cancle="cancel" :width="'60%'">
+      <a-row :gutter="24" class="header">
+        <span>请给考评项目为【{{ itemName }}】设置考评指标</span>
+        <a-button type="primary" @click="openModal">新增</a-button>
+      </a-row>
+      <s-table
+        ref="table"
+        size="default"
+        :rowKey="(record) => record.id"
+        :columns="columns"
+        :data="loadData"
+        bordered>
+        <!-- 操作 -->
+        <template slot="action" slot-scope="text, record">
+          <a-icon type="edit" class="actionBtn blue" @click="openModal(record)" />
+          <a-icon type="delete" class="actionBtn red" @click="delect(record)" />
+        </template>
+      </s-table>
+      <!-- 新增/编辑 弹窗 -->
+      <add-evaIndexModal :itemId="itemIndexId" :visible="openAddModal" @refresh="$refs.table.refresh()" @close="openAddModal=false"></add-evaIndexModal>
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import {
+  STable,
+  VSelect
+} from '@/components'
+import {
+  getTenantsList
+} from '@/api/tenants.js'
+import addEvaIndexModal from './AddEvaIndexModal.vue'
+export default {
+  name: 'SetEvaItemModal',
+  components: {
+    STable,
+    VSelect,
+    addEvaIndexModal
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    // 要编辑的考评项id
+    itemId: {
+      type: [String, Number],
+      default: ''
+    },
+    // 要编辑的考评项名称
+    itemName: {
+      type: String,
+      default: ''
+    }
+  },
+  watch: {
+    visible (newValue, oldValue) {
+      this.isshow = newValue
+    },
+    isshow (newValue, oldValue) {
+      if (newValue) {
+        // this.$refs.table.refresh()
+      } else {
+        this.cancel()
+      }
+    }
+  },
+  data () {
+    return {
+      isshow: this.visible, // 弹框显示隐藏
+      openAddModal: false, // 是否打开编辑/新增弹框
+      itemIndexId: '', // 考评指标id
+      // 表头
+      columns: [{
+        title: '序号',
+        dataIndex: 'no',
+        width: '40',
+        align: 'center'
+      },
+      {
+        title: '考评指标名称',
+        dataIndex: 'name',
+        align: 'center'
+      },
+      {
+        title: '操作',
+        width: '200',
+        align: 'center',
+        scopedSlots: {
+          customRender: 'action'
+        }
+      }
+      ],
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        return getTenantsList(Object.assign(parameter, this.queryParam)).then(res => {
+          if (res.status == 200) {
+            const no = (res.data.pageNo - 1) * res.data.pageSize
+            for (let i = 0; i < res.data.list.length; i++) {
+              const _item = res.data.list[i]
+              _item.no = no + i + 1
+              _item.status = _item.status + '' === '1'
+            }
+            return res.data
+          }
+        })
+      }
+    }
+  },
+  computed: {},
+  methods: {
+    // 点击弹框x号触发事件
+    cancel (e) {
+      this.$emit('close')
+    },
+    // 打开新增/编辑 弹窗
+    openModal (row) {
+      this.itemIndexId = row ? row.id : ''
+      this.openAddModal = true
+    },
+    // 删除考评指标
+    delect (row) {
+      const _this = this
+      this.$confirm({
+        title: '警告',
+        content: '删除后无法恢复,确认删除?',
+        okText: '确定',
+        cancelText: '取消',
+        onOk () {
+          // deleteItem({
+          // 	id: row.id
+          // }).then(res => {
+          // 	if (res.status == 200) {
+          // 		_this.$message.success('删除成功')
+          // 		_this.$refs.table.refresh()
+          // 	}
+          // })
+        }
+      })
+    }
+  },
+  beforeCreate () {
+    this.form = this.$form.createForm(this, {
+      name: 'SetEvaItemModal'
+    })
+  }
+
+}
+</script>
+
+<style scoped>
+	.header {
+		font-size: 16px;
+		font-weight: 600;
+		margin-bottom: 20px;
+	}
+
+	.header span {
+		margin-right: 20px;
+	}
+
+	.actionBtn {
+		font-size: 20px;
+		padding: 0 10px;
+	}
+
+	.blue {
+		color: #1890FF;
+	}
+
+	.red {
+		color: red;
+	}
+</style>

+ 31 - 33
src/views/evaluation/evaluationPlan/EvaluationPlan.vue

@@ -21,9 +21,13 @@
       </a-form>
     </div>
     <a-divider />
-    <div class="table-operator">
+    <a-row type="flex" justify="space-between">
       <a-button type="primary" icon="plus" @click="openModal">新建</a-button>
-    </div>
+      <a-col @click="handleDefaultSet">
+        <a-icon type="setting" class="setting-icon" />
+        <span class="setting">默认方案设置</span>
+      </a-col>
+    </a-row>
     <s-table
       ref="table"
       size="default"
@@ -44,8 +48,10 @@
     </s-table>
     <!-- 新增/编辑 弹窗 -->
     <add-evaModal :itemId="itemId" :visible="openAddModal" @refresh="$refs.table.refresh()" @close="openAddModal=false"></add-evaModal>
-    <!-- 设置弹窗 -->
-    <set-evaModal :itemId="itemId" :visible="openSetting" @refresh="$refs.table.refresh()" @close="openSetting=false"></set-evaModal>
+    <!-- 选择考评项弹窗 -->
+    <set-evaModal :itemId="itemId" :visible="openSetting" @close="openSetting=false"></set-evaModal>
+    <!-- 设置默认方案弹窗 -->
+    <set-evaDefaultModal :itemId="itemId" :visible="openDefaultSetting" @close="openDefaultSetting=false"></set-evaDefaultModal>
   </a-card>
 
 </template>
@@ -61,6 +67,7 @@ import {
 } from '@/api/tenants.js'
 import addEvaModal from './AddEvaModal.vue'
 import setEvaModal from './SetEvaModal.vue'
+import setEvaDefaultModal from './SetEvaDefaultModal.vue'
 import moment from 'moment'
 export default {
   name: 'EvaluationPlanList',
@@ -68,7 +75,8 @@ export default {
     STable,
     VSelect,
     addEvaModal,
-    setEvaModal
+    setEvaModal,
+    setEvaDefaultModal
   },
   data () {
     return {
@@ -76,12 +84,12 @@ export default {
       pageNo: 1,
       pageSize: 10,
       openAddModal: false, // 打开新增弹窗
-	  openSetting: false, // 打开设置弹窗
+	  openSetting: false, // 打开选择考评项弹窗
+	  openDefaultSetting: false, // 打开设置默认方案弹窗
       itemId: '', // 要编辑的租户id
       // 查询参数
       queryParam: {
         name: '',
-        contactPhone: '',
         status: '' // 状态
       },
       // 表头
@@ -174,6 +182,10 @@ export default {
       this.itemId = row ? row.id : ''
       this.openAddModal = true
     },
+    // 打开默认方案设置弹窗
+    handleDefaultSet () {
+      this.openDefaultSetting = true
+    },
     // 删除
     delect (row) {
       const _this = this
@@ -211,7 +223,7 @@ export default {
   }
 }
 </script>
-<style>
+<style scoped>
 	.table-page-search-wrapper,
 	.addButton {
 		margin-bottom: 0;
@@ -220,35 +232,21 @@ export default {
 	.table-page-search-wrapper .ant-form-inline .ant-form-item {
 		margin-bottom: 10px;
 	}
-
-	.textCount {
-		border: 1px solid #91d5ff;
-		background-color: #e6f7ff;
-		padding: 10px 0;
-		border-radius: 5px;
-		padding-left: 20px;
-		margin: 10px 0;
-	}
-
-	.action-button {
-		line-height: 40px;
-		white-space: nowrap;
-		padding: 5px 10px;
-		background-color: #1890ff;
-		border-radius: 4px;
-		color: #fff;
-		margin-right: 5px;
-	}
-
-	.menu-text {
-		background-color: #f90;
-	}
-
 	.actionBtn {
 		font-size: 20px;
 		padding: 0 10px;
 	}
-
+	.setting-icon {
+		font-size: 20px;
+		margin-right: 5px;
+		color: #1890FF;
+	}
+	.setting {
+		font-size: 16px;
+		color: #1890FF;
+		border-bottom: 1px solid #1890FF;
+		cursor: pointer;
+	}
 	.blue {
 		color: #1890FF;
 	}

+ 191 - 0
src/views/evaluation/evaluationPlan/SetEvaDefaultModal.vue

@@ -0,0 +1,191 @@
+<template>
+  <div>
+    <a-modal class="modalBox" title="默认方案设置" v-model="isshow" @cancle="cancel" :width="600">
+      <a-form :form="form" ref="form" @submit="handleSubmit">
+        <a-row :gutter="24">
+          <a-col :span="20">
+            <!-- 视频巡店默认方案 -->
+            <a-form-item label="视频巡店默认方案:" :label-col="{ span: 7 }" :wrapper-col="{ span: 16 }">
+              <v-select
+                ref="orgType"
+                allowClear
+                @change="scopeTypeChange"
+                v-decorator="[
+                  'formData.scopeType',
+                  { initialValue: formData.scopeType,
+                    rules: [{ required: true, message: '请选择视频巡店默认方案!' }] },
+                ]"
+                code="STORE_AUTH_TYPE"></v-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="20">
+            <!-- 现场巡店默认方案 -->
+            <a-form-item label="现场巡店默认方案:" :label-col="{ span: 7 }" :wrapper-col="{ span: 16 }">
+              <v-select
+                ref="orgType"
+                allowClear
+                @change="scopeTypeChange"
+                v-decorator="[
+                  'formData.scopeType',
+                  { initialValue: formData.scopeType,
+                    rules: [{ required: true, message: '请选择现场巡店默认方案!' }] },
+                ]"
+                code="STORE_AUTH_TYPE"></v-select>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-form-item :wrapper-col="{ span: 24, offset: 10 }">
+          <a-button type="primary" @click="handleSubmit()">
+            确定
+          </a-button>
+          <a-button :style="{ marginLeft: '8px' }" @click="handleCancel()">
+            取消
+          </a-button>
+        </a-form-item>
+      </a-form>
+
+    </a-modal>
+  </div>
+</template>
+
+<script>
+import {
+  STable,
+  VSelect
+} from '@/components'
+import {
+  saveAuth
+} from '@/api/tenants.js'
+export default {
+  name: 'AddEvaModal',
+  components: {
+    STable,
+    VSelect
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    // 要编辑的方案id
+    itemId: {
+      type: [String, Number],
+      default: ''
+    }
+  },
+  watch: {
+    visible (newValue, oldValue) {
+      this.isshow = newValue
+    },
+    isshow (newValue, oldValue) {
+      if (newValue) {
+
+      } else {
+        this.cancel()
+      }
+    }
+  },
+  data () {
+    return {
+      isshow: this.visible, // 弹框显示隐藏
+      form: this.$form.createForm(this, {
+        name: 'AddEvaModal'
+      }),
+      formData: {
+        name: '', // 方案名称
+        scopeType: [], // 适用类型
+        remarks: '' // 方案说明
+      }
+
+    }
+  },
+  computed: {
+  },
+  methods: {
+    // 点击弹框x号触发事件
+    cancel (e) {
+      this.clear()
+      this.$emit('close')
+    },
+    // 使用权限改变
+    scopeTypeChange (v) {
+      this.formData.scopeType = v
+    },
+    // 保存提交
+    handleSubmit () {
+      const _this = this
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          console.log(values.formData, ' formData.type222222222')
+          // const params = Object.assign({
+          //   id: this.itemData.id
+          // }, values.formData)
+          // params.expireDate = moment(params.expireDate).format('YYYY-MM-DD')
+          // console.log(params, 'ppppppppppppp')
+          // saveAuth(params).then(res => {
+          //   console.log(res, 'res--save')
+          //   if (res.status + '' === '200') {
+          //     this.$message.success(res.message ? res.message : '保存成功')
+          //     this.$emit('refresh')
+          //     setTimeout(function () {
+          //       _this.cancel()
+          //     }, 300)
+          //   } else {
+          //     // this.$message.warning(res.message)
+          //   }
+          // })
+        }
+      })
+    },
+    // 取消
+    handleCancel () {
+      const _this = this
+      this.$confirm({
+        title: '提示',
+        content: '确定取消吗?',
+        okText: '确定',
+        cancelText: '取消',
+        onOk () {
+          _this.clear()
+          _this.cancel()
+        }
+      })
+    },
+    clear () {
+      this.form.resetFields()
+	  // 重置时 下拉框不起作用,对下拉框单独设置
+	  this.form.setFields({ 'formData.scopeType': { value: [], errors: '' } })
+    }
+
+  },
+  beforeCreate () {
+    this.form = this.$form.createForm(this, {
+      name: 'AddEvaModal'
+    })
+  }
+
+}
+</script>
+
+<style>
+	.modalBox {}
+
+	.ant-modal-footer {
+		display: none;
+	}
+
+	.time-text {
+		color: #1890FF;
+		padding: 0px 20px;
+		cursor: pointer;
+	}
+
+	.labelT {
+		position: absolute;
+		left: -135px;
+		top: 20px;
+		color: rgba(0, 0, 0, 0.85);
+	}
+</style>