longPosterContent2.vue 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <template>
  2. <!-- 日报信息 -->
  3. <view>
  4. <view class="form-input">
  5. <view class="input-label">报表类型</view>
  6. <picker :range="formList" range-key="name" :value="formIndex" @change="formTypeChange">
  7. <view class="input-box ddflex">
  8. <view class="fflex">{{formIndex>-1?formList[formIndex].name:'请选择'}}</view>
  9. <image class="rico" src="../../static/pages/images/more.png"></image>
  10. </view>
  11. </picker>
  12. </view>
  13. <view class="form-input">
  14. <view class="input-label">统计时间</view>
  15. <picker mode="date" :fields="formType==1?'year':formType==2?'month':'day'" :value="time" @change="timeChange">
  16. <view class="input-box ddflex">
  17. <view class="fflex">{{time?time:'请选择'}}</view>
  18. <image class="rico" src="../../static/pages/images/more.png"></image>
  19. </view>
  20. </picker>
  21. </view>
  22. <view class="form-input">
  23. <view class="input-label">文本一</view>
  24. <picker :range="text1List" range-key="name" :value="text1Index" @change="(e)=>{textChange(e,1)}">
  25. <view class="input-box ddflex">
  26. <view class="fflex">{{text1Index>-1?text1List[text1Index].name:'请选择'}}</view>
  27. <image class="rico" src="../../static/pages/images/more.png"></image>
  28. </view>
  29. </picker>
  30. </view>
  31. <view class="form-input">
  32. <view class="input-label">文本二</view>
  33. <picker :range="text2List" range-key="name" :value="text2Index" @change="(e)=>{textChange(e,2)}">
  34. <view class="input-box ddflex">
  35. <view class="fflex">{{text2Index>-1?text2List[text2Index].name:'请选择'}}</view>
  36. <image class="rico" src="../../static/pages/images/more.png"></image>
  37. </view>
  38. </picker>
  39. </view>
  40. <view class="form-input">
  41. <view class="input-label">文本三</view>
  42. <picker :range="text3List" range-key="name" :value="text3Index" @change="(e)=>{textChange(e,3)}">
  43. <view class="input-box ddflex">
  44. <view class="fflex">{{text3Index>-1?text3List[text3Index].name:'请选择'}}</view>
  45. <image class="rico" src="../../static/pages/images/more.png"></image>
  46. </view>
  47. </picker>
  48. </view>
  49. <view class="form-input">
  50. <view class="input-label">文本四</view>
  51. <picker :range="text4List" range-key="name" :value="text4Index" @change="(e)=>{textChange(e,4)}">
  52. <view class="input-box ddflex">
  53. <view class="fflex">{{text4Index>-1?text4List[text4Index].name:'请选择'}}</view>
  54. <image class="rico" src="../../static/pages/images/more.png"></image>
  55. </view>
  56. </picker>
  57. </view>
  58. <view style="height: 150rpx;"></view>
  59. <view class="share-btn">
  60. <view class="btn" @click="submit">保存</view>
  61. </view>
  62. </view>
  63. </template>
  64. <script>
  65. const app = getApp();
  66. const req = require("../../utils/request.js");
  67. export default {
  68. components: {},
  69. props: {},
  70. data() {
  71. return {
  72. formIndex:0,
  73. formList:[{name:'年报',value:1},{name:'月报',value:2},{name:'日报',value:3}],
  74. formType:1,
  75. time:'',
  76. text1Index:-1,
  77. text1List:[],
  78. text2Index:-1,
  79. text2List:[],
  80. text3Index:-1,
  81. text3List:[],
  82. text4Index:-1,
  83. text4List:[],
  84. codeDetail:[]
  85. }
  86. },
  87. onLoad(options) {
  88. this.getTextsList()
  89. },
  90. onShow() {
  91. },
  92. methods: {
  93. // 获取各下拉框的选项并初始化数据
  94. getTextsList(){
  95. let pages = getCurrentPages(); //获取所有页面栈实例列表
  96. let prevPage = pages[pages.length - 2]; //上一页页面实例
  97. this.codeDetail = prevPage.$vm.codeDetail
  98. this.formType = prevPage.$vm.formType
  99. this.formIndex = this.formList.findIndex(item=>item.value==prevPage.$vm.formType)
  100. this.time = prevPage.$vm.time
  101. this.codeDetail.map(item=>{
  102. if(item.chineseName == '文本一') {
  103. this.text1List = item.selectValues
  104. if(prevPage.$vm.dataForm[0].code){
  105. this.text1Index = this.text1List.findIndex(item=>item.code==prevPage.$vm.dataForm[0].code)
  106. }
  107. }
  108. if(item.chineseName == '文本二') {
  109. this.text2List = item.selectValues
  110. if(prevPage.$vm.dataForm[1].code){
  111. this.text2Index = this.text2List.findIndex(item=>item.code==prevPage.$vm.dataForm[1].code)
  112. }
  113. }
  114. if(item.chineseName == '文本三') {
  115. this.text3List = item.selectValues
  116. if(prevPage.$vm.dataForm[2].code){
  117. this.text3Index = this.text3List.findIndex(item=>item.code==prevPage.$vm.dataForm[2].code)
  118. }
  119. }
  120. if(item.chineseName == '文本四') {
  121. this.text4List = item.selectValues
  122. if(prevPage.$vm.dataForm[3].code){
  123. this.text4Index = this.text4List.findIndex(item=>item.code==prevPage.$vm.dataForm[3].code)
  124. }
  125. }
  126. })
  127. },
  128. formTypeChange(e){
  129. this.formIndex = e.detail.value
  130. this.formType = this.formList[this.formIndex].value
  131. this.time = ''
  132. },
  133. timeChange(e){
  134. this.time = e.detail.value
  135. },
  136. textChange(e,type){
  137. if(type==1){
  138. this.text1Index = e.detail.value
  139. }
  140. if(type==2){
  141. this.text2Index = e.detail.value
  142. }
  143. if(type==3){
  144. this.text3Index = e.detail.value
  145. }
  146. if(type==4){
  147. this.text4Index = e.detail.value
  148. }
  149. },
  150. async submit(){
  151. if(!this.time) return req.msg('请选择统计时间')
  152. if(this.text1Index<0) return req.msg('请选择文本一')
  153. if(this.text2Index<0) return req.msg('请选择文本二')
  154. if(this.text3Index<0) return req.msg('请选择文本三')
  155. if(this.text4Index<0) return req.msg('请选择文本四')
  156. let pages = getCurrentPages(); //获取所有页面栈实例列表
  157. let prevPage = pages[pages.length - 2]; //上一页页面实例
  158. prevPage.$vm.formType = this.formType
  159. prevPage.$vm.time = this.time
  160. prevPage.$vm.dataForm = await this.getSubmitData()
  161. uni.navigateBack()
  162. },
  163. // 获取选择后的文本数据
  164. getSubmitData(){
  165. return new Promise(async (r,j)=>{
  166. let dataForm = []
  167. let textData = await this.getTextData(this.text1List[this.text1Index].code+','+this.text2List[this.text2Index].code+','+this.text3List[this.text3Index].code+','+this.text4List[this.text4Index].code)
  168. dataForm.push({
  169. chineseName:'文本一',
  170. title:this.text1List[this.text1Index].name,
  171. code:this.text1List[this.text1Index].code,
  172. data:JSON.parse(textData[this.text1List[this.text1Index].code])
  173. })
  174. dataForm.push({
  175. chineseName:'文本二',
  176. title:this.text2List[this.text2Index].name,
  177. code:this.text2List[this.text2Index].code,
  178. data:JSON.parse(textData[this.text2List[this.text2Index].code])
  179. })
  180. dataForm.push({
  181. chineseName:'文本三',
  182. title:this.text3List[this.text3Index].name,
  183. code:this.text3List[this.text3Index].code,
  184. data:JSON.parse(textData[this.text3List[this.text3Index].code])
  185. })
  186. dataForm.push({
  187. chineseName:'文本四',
  188. title:this.text4List[this.text4Index].name,
  189. code:this.text4List[this.text4Index].code,
  190. data:JSON.parse(textData[this.text4List[this.text4Index].code])
  191. })
  192. r(dataForm)
  193. })
  194. },
  195. getTextData(code){
  196. return new Promise(async (r,j)=>{
  197. let param = {
  198. startTime:'2023-01-01 00:00:00',
  199. endTime:'2023-12-31 23:59:59',
  200. code:code
  201. }
  202. if(this.formType==1){
  203. param.startTime = this.time+'-01-01 00:00:00'
  204. param.endTime = this.time+'12-31 23:59:59'
  205. }else if(this.formType==2) {
  206. //获取当月最后一天的日期
  207. let date = new Date()
  208. var year = date.getFullYear(); //获取年份
  209. var month = date.getMonth() + 1; //获取月份
  210. var lastDate = new Date(year, month , 0).getDate(); //获取当月最后一日
  211. month = month < 10 ? '0' + month : month ; //月份补 0
  212. param.startTime = this.time+'-01 00:00:00'
  213. param.endTime = [year,month ,lastDate ].join("-")+' 23:59:59'
  214. }else if(this.formType==3){
  215. param.startTime = this.time+' 00:00:00'
  216. param.endTime = this.time+' 23:59:59'
  217. }
  218. req.getRequest('/api/material/longPoster/data',param,res=>{
  219. r(res)
  220. })
  221. })
  222. }
  223. },
  224. mounted() {
  225. }
  226. }
  227. </script>
  228. <style>
  229. @import "./longPosterContent.css";
  230. </style>