Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

evaluate-list.vue 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <!-- 评价列表 -->
  2. <template>
  3. <view style="padding: 30rpx">
  4. <evaluate-tab-item :tabs="state.tabs" @tabClick="tabClick" />
  5. <view class="list" :class="state.type === '2' ? 'btn-divider' : ''">
  6. <evaluate-issue-item
  7. :dataList="state.dataList"
  8. v-if="state.type === '1'"
  9. />
  10. <evaluate-business-item
  11. :dataList="state.dataList"
  12. v-if="state.type === '2'"
  13. />
  14. <evaluate-equity-item
  15. :dataList="state.dataList"
  16. v-if="state.type === '3'"
  17. />
  18. <evaluate-salesman-item
  19. :dataList="state.dataList"
  20. v-if="state.type === '4'"
  21. />
  22. </view>
  23. </view>
  24. <view class="evaluate-btn" v-if="state.type === '2'">
  25. <submit-button
  26. title="去评价"
  27. @submit="$util.navTo('/subpackage/orders/order-evaluate')"
  28. ></submit-button>
  29. </view>
  30. </template>
  31. <script setup lang="ts">
  32. import evaluateTabItem from "./components/evaluate-tab-item";
  33. import evaluateIssueItem from "./components/evaluate-issue-item";
  34. import evaluateEquityItem from "./components/evaluate-equity-item";
  35. import evaluateBusinessItem from "./components/evaluate-business-item";
  36. import evaluateSalesmanItem from "./components/evaluate-salesman-item";
  37. import { onLoad } from "@dcloudio/uni-app";
  38. import { reactive } from "vue";
  39. import { request } from "@/utils/network/request";
  40. import { stringToJson } from "@/utils/network/encryption";
  41. const state = reactive({
  42. type: "", //评价列表类型 1-发行产品评价 2-业务办理满意度评价 3-权益产品评价 4-业务员满意度评价(暂无UI)
  43. tabs: ["全部", "好评", "中评", "差评"],
  44. curCheckTab: "全部", //当前选择的tab
  45. dataList: [], //评价列表
  46. });
  47. onLoad((options) => {
  48. console.log("options",options)
  49. state.type = options.type;
  50. uni.setNavigationBarTitle({
  51. title: options.title,
  52. });
  53. if (state.type === "2") {
  54. state.tabs = [...state.tabs, "业务类型"];
  55. }
  56. fetchList();
  57. });
  58. /* tab点击 */
  59. const tabClick = (tab) => {
  60. console.log("tab",tab)
  61. state.curCheckTab = tab;
  62. };
  63. /* 根据不同条件获取数据 */
  64. const fetchList = () => {
  65. switch (state.type) {
  66. case "1": //发行产品评价
  67. requestData("11", { type: state.curCheckTab });
  68. break;
  69. case "2": //业务办理满意度评价
  70. requestData("22", { type: state.curCheckTab });
  71. break;
  72. case "3": //权益产品评价
  73. requestData("33", { type: state.curCheckTab });
  74. break;
  75. case "4": //业务员满意度评价
  76. requestData("44", { type: state.curCheckTab });
  77. break;
  78. default:
  79. break;
  80. }
  81. };
  82. /*请求评价列表*/
  83. const requestData = (code, data) => {
  84. const options = {
  85. type: 2,
  86. data: data,
  87. method: "POST",
  88. showLoading: true,
  89. };
  90. // request(code,options).then((res)=>{
  91. // state.dataList = stringToJson(res.bizContent).list;
  92. // })
  93. //TODO 构造假数据
  94. state.dataList = [
  95. {
  96. name: "张三",
  97. time: "2021-10-01 10:10",
  98. score: "4.5",
  99. evaluate: "好评",
  100. title: "产品A",
  101. content:
  102. "这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价",
  103. },
  104. {
  105. name: "李四",
  106. time: "2022-10-01 10:10",
  107. score: "3.0",
  108. evaluate: "中评",
  109. title: "产品B",
  110. content:
  111. "这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价",
  112. },
  113. {
  114. name: "河西笑傲",
  115. time: "2023-10-01 10:10",
  116. score: "2.8",
  117. evaluate: "差评",
  118. title: "产品C",
  119. content:
  120. "这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价这里是评价",
  121. },
  122. ];
  123. };
  124. </script>
  125. <style>
  126. page {
  127. background-color: #eef7f7;
  128. box-sizing: border-box;
  129. }
  130. </style>
  131. <style lang="scss" scoped>
  132. .list {
  133. margin-top: 30rpx;
  134. }
  135. .btn-divider {
  136. margin-bottom: 180rpx;
  137. }
  138. .evaluate-btn {
  139. width: 100%;
  140. position: fixed;
  141. bottom: 0rpx;
  142. padding: 30rpx 40rpx;
  143. background-color: #eef7f7;
  144. text-align: center;
  145. box-sizing: border-box;
  146. }
  147. </style>