index.vue 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. <template>
  2. <div>
  3. <basicLayout
  4. style="padding-top:0 !important"
  5. ref="basicLayout"
  6. formPath="projectChange"
  7. tableName="projectTable"
  8. idName="sa_projectid"
  9. :apiId="{query:20221020143502,del:''}"
  10. :options="options"
  11. :detailPath="{path:'/projectChangeDetail',param:{tabIndex:tabIndex}}">
  12. <template #titleRight>
  13. <!-- <el-divider direction="vertical"></el-divider>
  14. <el-dropdown size="medium" @command="handleCommand">
  15. <span class="el-dropdown-link">
  16. {{tabName}}<i class="el-icon-arrow-down el-icon&#45;&#45;right"></i>
  17. </span>
  18. <el-dropdown-menu slot="dropdown">
  19. <el-dropdown-item v-for="(item,index) in editableTabs" :key="index" :command="item">{{item.title}}</el-dropdown-item>
  20. </el-dropdown-menu>
  21. </el-dropdown>-->
  22. </template>
  23. <template #custom >
  24. <div class="mt-10">
  25. <label class="search__label" >数据分类:</label>
  26. <el-select class="inline-24" v-model="tabName" placeholder="请选择数据分类" @change="selectChange" size="small" clearable>
  27. <el-option
  28. v-for="item in editableTabs"
  29. :key="item.name"
  30. :label="item.title"
  31. :value="item.name">
  32. </el-option>
  33. </el-select>
  34. </div>
  35. <div class="mt-10">
  36. <label class="search__label">项目类型:</label>
  37. <el-select class="inline-24" v-model="selectParam.projecttype" placeholder="请选择项目类型" @change="selectChange" size="small" clearable>
  38. <el-option
  39. v-for="item in projectType"
  40. :key="item.value"
  41. :label="item.value"
  42. :value="item.value">
  43. </el-option>
  44. </el-select>
  45. </div>
  46. <div class="mt-10">
  47. <label class="search__label">项目等级:</label>
  48. <el-select class="inline-24" v-model="selectParam.grade" placeholder="请选择项目等级" @change="selectChange" size="small" clearable>
  49. <el-option
  50. v-for="item in projectLead"
  51. :key="item.value"
  52. :label="item.value"
  53. :value="item.value">
  54. </el-option>
  55. </el-select>
  56. </div>
  57. <div class="mt-10">
  58. <label class="search__label">当前项目阶段:</label>
  59. <el-select class="inline-24" v-model="selectParam.stagename" placeholder="请选择项目阶段" @change="selectChange" size="small" clearable>
  60. <el-option
  61. v-for="item in option.stageList"
  62. :key="item.value"
  63. :label="item.value"
  64. :value="item.value">
  65. </el-option>
  66. </el-select>
  67. </div>
  68. <div class="mt-10">
  69. <label class="search__label">项目状态:</label>
  70. <el-select class="inline-24" v-model="selectParam.status" placeholder="请选择项目状态" @change="selectChange" size="small" clearable>
  71. <el-option
  72. v-for="item in option.statusTab"
  73. :key="item.value"
  74. :label="item.label"
  75. :value="item.value">
  76. </el-option>
  77. </el-select>
  78. </div>
  79. <div class="mt-10">
  80. <label class="search__label" >创建日期:</label>
  81. <el-date-picker
  82. style="margin-right: 24px !important;"
  83. size="small"
  84. @change="selectChange"
  85. value-format="yyyy-MM-dd"
  86. v-model="dateSelect"
  87. type="daterange"
  88. range-separator="至"
  89. start-placeholder="开始日期"
  90. end-placeholder="结束日期"
  91. clearable>
  92. </el-date-picker>
  93. </div>
  94. </template>
  95. <template v-slot:tbList="scope">
  96. <div v-if="scope.data.column.columnname === 'status'">
  97. <span style="color:#52c41a" v-if="scope.data.column.data[[scope.data.column.columnname]] == '跟进中'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  98. <span style="color:#fa8c16" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已成交'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  99. <span style="color:#999999" v-else-if="scope.data.column.data[[scope.data.column.columnname]] == '已失败'">{{scope.data.column.data[[scope.data.column.columnname]]}}</span>
  100. </div>
  101. <div v-else>
  102. {{scope.data.column.data[[scope.data.column.columnname]]?scope.data.column.data[[scope.data.column.columnname]]:'--'}}
  103. </div>
  104. </template>
  105. <template v-slot:tbOpreation="scope">
  106. </template>
  107. </basicLayout>
  108. </div>
  109. </template>
  110. <script>
  111. export default {
  112. name: "index",
  113. provide () {
  114. return {
  115. enterpriseList:() => this.enterpriseList,
  116. projectType:() => this.projectType,
  117. projectLead:() => this.projectLead,
  118. projectPanl:() => this.projectPanl
  119. }
  120. },
  121. data() {
  122. return {
  123. editableTabsValue:"我负责的",
  124. /* 企业列表 */
  125. enterpriseList:'',
  126. /* 企业列表 */
  127. projectType:'',
  128. projectLead:'',
  129. projectPanl:'',
  130. statusValue:"全部",
  131. dateSelect:'',
  132. options:[],
  133. option:{
  134. statusTab:[
  135. {
  136. value:"跟进中",
  137. label:"跟进中"
  138. },
  139. {
  140. value:"已成交",
  141. label:"已成交"
  142. },
  143. {
  144. value:"已失败",
  145. label:"已失败"
  146. }
  147. ],
  148. stageList:[
  149. {
  150. value:"阶段一",
  151. label:"阶段一"
  152. },
  153. {
  154. value:"阶段二",
  155. label:"阶段二"
  156. },
  157. {
  158. value:"阶段三",
  159. label:"阶段三"
  160. },
  161. {
  162. value:"阶段四",
  163. label:"阶段四"
  164. },
  165. {
  166. value:"阶段五",
  167. label:"阶段五"
  168. }
  169. ]
  170. },
  171. tabName:"1",
  172. tabIndex:"1",
  173. editableTabs: [ {
  174. title: '我负责的',
  175. name: "1",
  176. }, {
  177. title: '我参与的',
  178. name: "2",
  179. }, {
  180. title: '我下属负责的',
  181. name: "3",
  182. }, {
  183. title: '我下属参与的',
  184. name: "4",
  185. }],
  186. selectParam: {
  187. status:'',
  188. projecttype:'',
  189. grade:'',
  190. startdate:'',
  191. enddate:'',
  192. stagename:''
  193. },
  194. }
  195. },
  196. created () {
  197. /*this.getProjectPanl()*/
  198. this.getEnterprise()
  199. this.getSysetms()
  200. },
  201. methods: {
  202. /* 获取联系人:负责人列表 */
  203. async getAccount () {
  204. let res = await this.$api.requested({
  205. "id": "20221018150602",
  206. "content": {
  207. "sys_enterpriseid": 1,
  208. "pageNumber": 1,
  209. "pageSize": 20,
  210. "where": {
  211. "condition": ""
  212. }
  213. }
  214. })
  215. },
  216. async getSysetms () {
  217. /* 获取项目类型 */
  218. let res = await this.$store.dispatch('optiontypeselect','projecttype')
  219. this.projectType = res.data
  220. /* 获取项目等级 */
  221. let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
  222. this.projectLead = res2.data
  223. console.log(this.projectLead);
  224. },
  225. /** 获取公司数据 */
  226. async getEnterprise () {
  227. let res = await this.$api.requested({
  228. "id": 20221021095802,
  229. "content": {
  230. "pageNumber": 1,
  231. "pageSize": 99999,
  232. "where": {
  233. "condition": ""
  234. }
  235. },
  236. })
  237. this.enterpriseList = res.data
  238. },
  239. /* 获取项目模板 */
  240. /*async getProjectPanl () {
  241. let res = await this.$api.requested({
  242. "id": "20221019085604",
  243. "content": {
  244. "pageNumber": 1,
  245. "pageSize": 99999999,
  246. "where":{
  247. "condition":""
  248. }
  249. }
  250. })
  251. this.projectPanl = res.data
  252. },*/
  253. handleCommand(command){
  254. console.log("输出command")
  255. console.log(command)
  256. this.tabName = command.title
  257. this.tabIndex = command.name
  258. this.queryData(command.name)
  259. },
  260. queryData(id){
  261. console.log("执行")
  262. this.$refs['basicLayout'].param.content.type = id
  263. this.$refs['basicLayout'].param.content.isExport = false
  264. this.$refs['basicLayout'].listData()
  265. },
  266. selectChange () {
  267. console.log(this.projectType)
  268. console.log(this.projectLead)
  269. this.tabIndex = this.tabName
  270. if (this.dateSelect !== '' && this.dateSelect !== null){
  271. this.selectParam.startdate = this.dateSelect[0]
  272. this.selectParam.enddate = this.dateSelect[1]
  273. }else {
  274. this.selectParam.startdate = ''
  275. this.selectParam.enddate = ''
  276. }
  277. this.$refs.basicLayout.param.content.type = this.tabIndex
  278. this.$refs.basicLayout.param.content.where = this.selectParam
  279. this.$refs.basicLayout.listData()
  280. },
  281. /*onChangeTab(val){
  282. console.log(val)
  283. this.tabIndex = val
  284. this.queryData(val)
  285. },
  286. clearTime () {
  287. this.$refs['basicLayout'].param.content.where.startdate = ''
  288. this.$refs['basicLayout'].param.content.where.enddate = ''
  289. this.$refs['basicLayout'].listData()
  290. },
  291. timeChange (time) {
  292. this.$refs['basicLayout'].param.content.where.startdate = time[0]
  293. this.$refs['basicLayout'].param.content.where.enddate = time[1]
  294. this.$refs['basicLayout'].listData()
  295. }*/
  296. },
  297. mounted () {
  298. this.queryData(1)
  299. }
  300. }
  301. </script>
  302. <style scoped>
  303. </style>