index.vue 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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
  97. v-if="scope.data.column.columnname == 'grade'"
  98. >
  99. <p v-if="scope.data.column.data[scope.data.column.columnname] !== ''">
  100. {{projectLead&&projectLead.find(item => item.rowindex==scope.data.column.data[scope.data.column.columnname]) && projectLead.find(item => item.rowindex==scope.data.column.data[scope.data.column.columnname]).value}}
  101. </p>
  102. <p v-else>&#45;&#45;</p>
  103. </div>-->
  104. <div v-if="scope.data.column.data[scope.data.column.columnname] && scope.data.column.columnname != 'operation'">{{scope.data.column.data[[scope.data.column.columnname]]}}</div>
  105. <div v-else>
  106. --
  107. </div>
  108. </template>
  109. <template v-slot:tbOpreation="scope">
  110. </template>
  111. </basicLayout>
  112. </div>
  113. </template>
  114. <script>
  115. export default {
  116. name: "index",
  117. provide () {
  118. return {
  119. enterpriseList:() => this.enterpriseList,
  120. projectType:() => this.projectType,
  121. projectLead:() => this.projectLead,
  122. projectPanl:() => this.projectPanl
  123. }
  124. },
  125. data() {
  126. return {
  127. editableTabsValue:"我负责的",
  128. /* 企业列表 */
  129. enterpriseList:'',
  130. /* 企业列表 */
  131. projectType:'',
  132. projectLead:'',
  133. projectPanl:'',
  134. statusValue:"全部",
  135. dateSelect:'',
  136. options:[],
  137. option:{
  138. statusTab:[
  139. {
  140. value:"跟进中",
  141. label:"跟进中"
  142. },
  143. {
  144. value:"已成交",
  145. label:"已成交"
  146. },
  147. {
  148. value:"已失败",
  149. label:"已失败"
  150. }
  151. ],
  152. stageList:[
  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. value:"阶段五",
  171. label:"阶段五"
  172. }
  173. ]
  174. },
  175. tabName:"1",
  176. tabIndex:"1",
  177. editableTabs: [ {
  178. title: '我负责的',
  179. name: "1",
  180. }, {
  181. title: '我参与的',
  182. name: "2",
  183. }, {
  184. title: '我下属负责的',
  185. name: "3",
  186. }, {
  187. title: '我下属参与的',
  188. name: "4",
  189. }],
  190. selectParam: {
  191. status:'',
  192. projecttype:'',
  193. grade:'',
  194. startdate:'',
  195. enddate:'',
  196. stagename:''
  197. },
  198. }
  199. },
  200. created () {
  201. /*this.getProjectPanl()*/
  202. this.getEnterprise()
  203. this.getSysetms()
  204. },
  205. methods: {
  206. /* 获取联系人:负责人列表 */
  207. async getAccount () {
  208. let res = await this.$api.requested({
  209. "id": "20221018150602",
  210. "content": {
  211. "sys_enterpriseid": 1,
  212. "pageNumber": 1,
  213. "pageSize": 20,
  214. "where": {
  215. "condition": ""
  216. }
  217. }
  218. })
  219. },
  220. async getSysetms () {
  221. /* 获取项目类型 */
  222. let res = await this.$store.dispatch('optiontypeselect','projecttype')
  223. this.projectType = res.data
  224. /* 获取项目等级 */
  225. let res2 = await this.$store.dispatch('optiontypeselect','projectgrade')
  226. this.projectLead = res2.data
  227. console.log(this.projectLead);
  228. },
  229. /** 获取公司数据 */
  230. async getEnterprise () {
  231. let res = await this.$api.requested({
  232. "id": 20221021095802,
  233. "content": {
  234. "pageNumber": 1,
  235. "pageSize": 99999,
  236. "where": {
  237. "condition": ""
  238. }
  239. },
  240. })
  241. this.enterpriseList = res.data
  242. },
  243. /* 获取项目模板 */
  244. /*async getProjectPanl () {
  245. let res = await this.$api.requested({
  246. "id": "20221019085604",
  247. "content": {
  248. "pageNumber": 1,
  249. "pageSize": 99999999,
  250. "where":{
  251. "condition":""
  252. }
  253. }
  254. })
  255. this.projectPanl = res.data
  256. },*/
  257. handleCommand(command){
  258. console.log("输出command")
  259. console.log(command)
  260. this.tabName = command.title
  261. this.tabIndex = command.name
  262. this.queryData(command.name)
  263. },
  264. queryData(id){
  265. console.log("执行")
  266. this.$refs['basicLayout'].param.content.type = id
  267. this.$refs['basicLayout'].param.content.isExport = false
  268. this.$refs['basicLayout'].listData()
  269. },
  270. selectChange () {
  271. console.log(this.projectType)
  272. console.log(this.projectLead)
  273. this.tabIndex = this.tabName
  274. if (this.dateSelect !== '' && this.dateSelect !== null){
  275. this.selectParam.startdate = this.dateSelect[0]
  276. this.selectParam.enddate = this.dateSelect[1]
  277. }else {
  278. this.selectParam.startdate = ''
  279. this.selectParam.enddate = ''
  280. }
  281. this.$refs.basicLayout.param.content.type = this.tabIndex
  282. this.$refs.basicLayout.param.content.where = this.selectParam
  283. this.$refs.basicLayout.listData()
  284. },
  285. /*onChangeTab(val){
  286. console.log(val)
  287. this.tabIndex = val
  288. this.queryData(val)
  289. },
  290. clearTime () {
  291. this.$refs['basicLayout'].param.content.where.startdate = ''
  292. this.$refs['basicLayout'].param.content.where.enddate = ''
  293. this.$refs['basicLayout'].listData()
  294. },
  295. timeChange (time) {
  296. this.$refs['basicLayout'].param.content.where.startdate = time[0]
  297. this.$refs['basicLayout'].param.content.where.enddate = time[1]
  298. this.$refs['basicLayout'].listData()
  299. }*/
  300. },
  301. mounted () {
  302. this.queryData(1)
  303. }
  304. }
  305. </script>
  306. <style scoped>
  307. </style>