index.vue 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <template>
  2. <div>
  3. <basicLayout
  4. ref="list"
  5. tableName="salerTable"
  6. idName="sa_accountclassid"
  7. :apiId="{query:20230717100204}"
  8. :options="options"
  9. :isExport="false"
  10. @listCreate="listCreate"
  11. >
  12. <div slot="custom" style="display:flex">
  13. <div class="mt-10">
  14. <label class="search__label" >部门:</label>
  15. <el-select class="inline-16" v-model="dep" size="small" placeholder="请选择部门" clearable @change="depChange">
  16. <el-option
  17. v-for="item in selectList.dep"
  18. :key="item.departmentid"
  19. :label="item.depname"
  20. :value="item.departmentid"
  21. ></el-option>
  22. </el-select>
  23. </div>
  24. <div class="mt-10">
  25. <label class="search__label" >人员:</label>
  26. <el-select class="inline-16" v-model="people" size="small" placeholder="请选择部门" clearable @change="peopleChange">
  27. <el-option
  28. v-for="item in selectList.hr"
  29. :key="item.userid"
  30. :label="item.name"
  31. :value="item.userid"
  32. ></el-option>
  33. </el-select>
  34. </div>
  35. <div class="mt-10" style="margin-right:10px">
  36. <label class="search__label" >范围:</label>
  37. <el-date-picker
  38. size="small"
  39. @change="timeChange"
  40. value-format="yyyy-MM-dd"
  41. v-model="dateSelect"
  42. type="daterange"
  43. range-separator="至"
  44. start-placeholder="开始日期"
  45. end-placeholder="结束日期"
  46. clearable>
  47. </el-date-picker>
  48. </div>
  49. </div>
  50. <template v-slot:tbList="scope">
  51. <div v-if="scope.data.column.columnname === 'sys_tag'">
  52. <el-tag v-for="(item,index) in scope.data.column.data.sys_tag" size="mini" style="margin-right:10px" :key="index">{{ item }}</el-tag>
  53. </div>
  54. <div v-else-if="scope.data.column.columnname === 'industry'">
  55. <el-tag v-for="(item,index) in scope.data.column.data.industry" size="mini" style="margin-right:10px" :key="index">{{ item }}</el-tag>
  56. </div>
  57. <div v-else-if="scope.data.column.columnname === 'grade'">
  58. {{ grade(scope.data.column.data.grade) }}
  59. </div>
  60. <div v-else-if="scope.data.column.columnname === 'leader'">
  61. {{ scope.data.column.data.leader[0] && scope.data.column.data.leader[0].name }}
  62. </div>
  63. <div v-else>
  64. {{scope.data.column.data[[scope.data.column.columnname]]}}
  65. </div>
  66. </template>
  67. <template v-slot:tbOpreation="scope">
  68. <el-button type="text" size="small" @click="goDetail(scope.data.data)">详 情</el-button>
  69. </template>
  70. </basicLayout>
  71. <Detail ref="Detail" v-if="Object.keys(detail).length" :data="detail"></Detail>
  72. </div>
  73. </template>
  74. <script>
  75. import Detail from './modules/detail'
  76. export default {
  77. name: "index",
  78. components:{Detail},
  79. data() {
  80. return {
  81. options:[],
  82. list:[],
  83. detail:{},
  84. total:0,
  85. editableTabs:[
  86. {
  87. templetname:'我负责的',
  88. templetid:1
  89. },
  90. {
  91. templetname:'我参与的',
  92. templetid:2
  93. },
  94. {
  95. templetname:'我下属负责的',
  96. templetid:3
  97. },
  98. {
  99. templetname:'我下属参与的',
  100. templetid:4
  101. },
  102. {
  103. templetname:'我创建的',
  104. templetid:5
  105. }
  106. ],
  107. param:{
  108. "id":20221012164402,
  109. "content":{
  110. "pageNumber": 1,
  111. "pageSize": 20,
  112. "type":'',
  113. "deleted": 0,
  114. "isExport": false,
  115. "isend": 0,
  116. where:{
  117. a:''
  118. }
  119. }
  120. },
  121. dep:'',
  122. people:'',
  123. selectList:[],
  124. dateSelect:[]
  125. }
  126. },
  127. computed: {
  128. grade () {
  129. return (n) => {
  130. let result
  131. switch (n) {
  132. case 0:
  133. result = '无'
  134. break;
  135. case 1:
  136. result = '等级一'
  137. break;
  138. case 2:
  139. result = '等级二'
  140. break;
  141. case 3:
  142. result = '等级三'
  143. break;
  144. case 4:
  145. result = '等级四'
  146. break;
  147. case 5:
  148. result = '等级一五'
  149. break;
  150. }
  151. return result
  152. }
  153. }
  154. },
  155. methods:{
  156. listCreate (param) {
  157. console.log(param);
  158. param.content.type = ''
  159. param.content.dataid = ''
  160. },
  161. goDetail (data) {
  162. this.detail= {}
  163. this.$router.push({
  164. path:'salerportrait',
  165. query: {
  166. id:data.hrid
  167. }
  168. })
  169. setTimeout(() => {
  170. this.detail = data
  171. this.$nextTick(() => {
  172. this.$refs.Detail.dialogFormVisible=true
  173. })
  174. })
  175. },
  176. async getDepAndpeople () {
  177. let res = await this.$api.requested({
  178. "id": 20230620102004,
  179. "content": {
  180. }
  181. })
  182. this.selectList = res.data
  183. console.log(this.selectList,'范围选择数据');
  184. },
  185. timeChange () {
  186. this.$refs.list.param.content.where.begindate = this.dateSelect[0]
  187. this.$refs.list.param.content.where.enddate = this.dateSelect[1]
  188. this.$refs.list.listData()
  189. },
  190. depChange(){
  191. this.people = ''
  192. this.$refs.list.param.content.type = 1
  193. this.$refs.list.param.content.dataid = this.dep
  194. this.$refs.list.listData()
  195. },
  196. peopleChange(){
  197. this.dep = ''
  198. this.$refs.list.param.content.type = 0
  199. this.$refs.list.param.content.dataid = this.people
  200. this.$refs.list.listData()
  201. },
  202. handleSizeChange(val) {
  203. // console.log(`每页 ${val} 条`);
  204. this.param.content.pageSize = val
  205. this.listData()
  206. },
  207. handleCurrentChange(val) {
  208. // console.log(`当前页: ${val}`);
  209. this.param.content.pageNumber = val
  210. this.listData()
  211. },
  212. },
  213. created () {
  214. this.getDepAndpeople()
  215. this.people = JSON.parse(sessionStorage.getItem('active_account')).name
  216. }
  217. }
  218. </script>
  219. <style scoped>
  220. </style>