longPosterContent.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <template>
  2. <view>
  3. <!-- 账单 -->
  4. <view class="form-input">
  5. <view class="input-label">标题</view>
  6. <view class="input-box ddflex">
  7. <input v-model="title" class="fflex" placeholder="请填写"/>
  8. </view>
  9. </view>
  10. <view class="form-input">
  11. <view class="input-label">统计时间</view>
  12. <picker mode="date" fields="year" :value="time" @change="timeChange">
  13. <view class="input-box ddflex">
  14. <view class="fflex">{{time?time:'请选择'}}</view>
  15. <image class="rico" src="../../static/pages/images/more.png"></image>
  16. </view>
  17. </picker>
  18. </view>
  19. <view class="form-input">
  20. <view class="input-label">文本一</view>
  21. <picker :range="text1List" range-key="name" :value="text1Index" @change="(e)=>{textChange(e,1)}">
  22. <view class="input-box ddflex">
  23. <view class="fflex">{{text1Index>-1?text1List[text1Index].name:'请选择'}}</view>
  24. <image class="rico" src="../../static/pages/images/more.png"></image>
  25. </view>
  26. </picker>
  27. </view>
  28. <view class="form-input">
  29. <view class="input-label">文本二</view>
  30. <view class="input-box ddflex">
  31. <input v-model="text2Title" class="fflex" placeholder="请填写"/>
  32. </view>
  33. <view class="input-box ddflex">
  34. <textarea v-model="text2Content" placeholder="请填写"></textarea>
  35. </view>
  36. </view>
  37. <view class="form-input">
  38. <view class="input-label">文本三</view>
  39. <picker :range="text3List" range-key="name" :value="text3Index" @change="(e)=>{textChange(e,3)}">
  40. <view class="input-box ddflex">
  41. <view class="fflex">{{text3Index>-1?text3List[text3Index].name:'请选择'}}</view>
  42. <image class="rico" src="../../static/pages/images/more.png"></image>
  43. </view>
  44. </picker>
  45. </view>
  46. <view style="height: 150rpx;"></view>
  47. <view class="share-btn">
  48. <view class="btn" @click="submit">保存</view>
  49. </view>
  50. </view>
  51. </template>
  52. <script>
  53. const app = getApp();
  54. const req = require("../../utils/request.js");
  55. export default {
  56. components: {},
  57. props: {},
  58. data() {
  59. return {
  60. time:'',
  61. title:'',
  62. text1Index:-1,
  63. text1List:[],
  64. text3Index:-1,
  65. text3List:[],
  66. text2Title:'',
  67. text2Content:'',
  68. codeDetail:[]
  69. }
  70. },
  71. onLoad(options) {
  72. this.getTextsList()
  73. },
  74. onShow() {
  75. },
  76. methods: {
  77. // 获取各下拉框的选项并初始化数据
  78. getTextsList(){
  79. let pages = getCurrentPages(); //获取所有页面栈实例列表
  80. let prevPage = pages[pages.length - 2]; //上一页页面实例
  81. this.codeDetail = prevPage.$vm.codeDetail
  82. this.time = prevPage.$vm.time
  83. this.title = prevPage.$vm.title
  84. this.text2Title = prevPage.$vm.dataForm[1].title
  85. this.text2Content = prevPage.$vm.dataForm[1].data.value
  86. this.codeDetail.map(item=>{
  87. if(item.chineseName == '文本一') {
  88. this.text1List = item.selectValues
  89. if(prevPage.$vm.dataForm[0].code){
  90. this.text1Index = this.text1List.findIndex(item=>item.code==prevPage.$vm.dataForm[0].code)
  91. }
  92. }
  93. if(item.chineseName == '文本三') {
  94. this.text3List = item.selectValues
  95. if(prevPage.$vm.dataForm[2].code){
  96. this.text3Index = this.text3List.findIndex(item=>item.code==prevPage.$vm.dataForm[2].code)
  97. }
  98. }
  99. })
  100. console.log(this.text1List)
  101. },
  102. timeChange(e){
  103. this.time = e.detail.value
  104. },
  105. textChange(e,type){
  106. if(type==1){
  107. this.text1Index = e.detail.value
  108. }
  109. if(type==3){
  110. this.text3Index = e.detail.value
  111. }
  112. },
  113. async submit(){
  114. if(!this.title) return req.msg("请填写标题")
  115. if(!this.time) return req.msg('请选择统计时间')
  116. if(this.text1Index<0) return req.msg('请选择文本一')
  117. if(!this.text2Title) return req.msg('请填写文本二')
  118. if(!this.text2Content) return req.msg('请填写文本二内容')
  119. if(this.text3Index<0) return req.msg('请选择文本三')
  120. let pages = getCurrentPages(); //获取所有页面栈实例列表
  121. let prevPage = pages[pages.length - 2]; //上一页页面实例
  122. prevPage.$vm.title = this.title
  123. prevPage.$vm.time = this.time
  124. prevPage.$vm.dataForm = await this.getSubmitData()
  125. uni.navigateBack()
  126. },
  127. // 获取选择后的文本数据
  128. getSubmitData(){
  129. return new Promise(async (r,j)=>{
  130. let dataForm = []
  131. let textData = await this.getTextData(this.text1List[this.text1Index].code+','+this.text3List[this.text3Index].code)
  132. dataForm.push({
  133. chineseName:'文本一',
  134. title:this.text1List[this.text1Index].name,
  135. code:this.text1List[this.text1Index].code,
  136. data:JSON.parse(textData[this.text1List[this.text1Index].code])
  137. })
  138. dataForm.push({
  139. chineseName:'文本二',
  140. title:this.text2Title,
  141. code:'',
  142. data:{value:this.text2Content}
  143. })
  144. dataForm.push({
  145. chineseName:'文本三',
  146. title:this.text3List[this.text3Index].name,
  147. code:this.text3List[this.text3Index].code,
  148. data:JSON.parse(textData[this.text3List[this.text3Index].code])
  149. })
  150. r(dataForm)
  151. })
  152. },
  153. getTextData(code){
  154. return new Promise(async (r,j)=>{
  155. let param = {
  156. startTime:'2023-01-01 00:00:00',
  157. endTime:'2023-12-31 23:59:59',
  158. code:code
  159. }
  160. param.startTime = this.time+'-01-01 00:00:00'
  161. param.endTime = this.time+'12-31 23:59:59'
  162. req.getRequest('/api/material/longPoster/data',param,res=>{
  163. r(res)
  164. })
  165. })
  166. }
  167. },
  168. mounted() {
  169. }
  170. }
  171. </script>
  172. <style>
  173. @import "./longPosterContent.css";
  174. </style>