facePriceHistory.vue 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <template>
  2. <div class="app-container">
  3. <div class="title-container">
  4. <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
  5. </div>
  6. <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
  7. <template slot="left">
  8. <el-input v-model="listQuery.userName" placeholder="口估人员" clearable style="width: 200px;float: left;"></el-input>
  9. <el-input v-model="listQuery.queryTarget" placeholder="口估标的" clearable style="margin-left: 20px;width: 400px;float: left;"></el-input>
  10. <el-select v-model="listQuery.queryType" placeholder="查询方式" clearable filterable style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
  11. <el-option label="地址" value="地址" />
  12. <el-option label="楼盘名" value="楼盘名" />
  13. </el-select>
  14. <el-select v-model="listQuery.limitDate" placeholder="口估范围" clearable filterable style="margin-left: 20px;width: 100px;float: left;" class="filter-item">
  15. <el-option label="两年内" value="两年内" />
  16. <el-option label="一年内" value="一年内" />
  17. <el-option label="半年内" value="半年内" />
  18. <el-option label="三月内" value="三月内" />
  19. <el-option label="一月内" value="一月内" />
  20. </el-select>
  21. <el-date-picker
  22. style="margin-left: 20px;float: left;"
  23. v-model="payDate"
  24. type="daterange"
  25. align="center"
  26. unlink-panels
  27. range-separator="至"
  28. start-placeholder="价值时点(开始)"
  29. end-placeholder="价值时点(结束)"
  30. :picker-options="pickerOptions"
  31. value-format="yyyy-MM-dd"
  32. ></el-date-picker>
  33. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList" round>搜索</el-button>
  34. <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch()">重置</el-button>
  35. </template>
  36. <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
  37. <el-table-column label="口估标的" align="center" width="300" prop="queryTarget">
  38. <template slot-scope="{row}">
  39. <span>{{ row.queryTarget}}</span>
  40. </template>
  41. </el-table-column>
  42. <!-- <el-table-column label="查询方式" align="center" prop="queryType">
  43. <template slot-scope="{row}">
  44. <span>{{ row.queryType}}</span>
  45. </template>
  46. </el-table-column> -->
  47. <el-table-column label="口估单价(元)" align="center" prop="facePrice">
  48. <template slot-scope="{row}">
  49. <span style="color: red;">{{ row.facePrice}}</span>
  50. </template>
  51. </el-table-column>
  52. <el-table-column label="口估面积(m²)" align="center" prop="faceAcreage">
  53. <template slot-scope="{row}">
  54. <span style="color: red;">{{ row.faceAcreage}}</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column label="口估总价(万)" align="center" prop="faceAmount">
  58. <template slot-scope="{row}">
  59. <span style="color: red;">{{ row.faceAmount ? (row.faceAmount / 10000).toFixed(2) + '万' : '-'}}</span>
  60. </template>
  61. </el-table-column>
  62. <el-table-column label="大友均价(元)" align="center" prop="dyAvgPrice">
  63. <template slot-scope="{row}">
  64. <span>{{ row.dyAvgPrice}}</span>
  65. </template>
  66. </el-table-column>
  67. <el-table-column label="系统成交价(元)" align="center" prop="dealPrice">
  68. <template slot-scope="{row}">
  69. <span>{{ row.dealPrice}}</span>
  70. </template>
  71. </el-table-column>
  72. <el-table-column label="系统挂牌价(元)" align="center" prop="upPrice">
  73. <template slot-scope="{row}">
  74. <span>{{ row.upPrice}}</span>
  75. </template>
  76. </el-table-column>
  77. <el-table-column label="价值时点" align="center" prop="valueTiming">
  78. <template slot-scope="{row}">
  79. <span>{{ row.valueTiming}}</span>
  80. </template>
  81. </el-table-column>
  82. <el-table-column label="口估人员" align="center" prop="userName">
  83. <template slot-scope="{row}">
  84. <span>{{ row.userName}}</span>
  85. </template>
  86. </el-table-column>
  87. <el-table-column label="大友案例个数" align="center" prop="dyExampleNum">
  88. <template slot-scope="{row}">
  89. <span>{{ row.dyExampleNum}}</span>
  90. </template>
  91. </el-table-column>
  92. <el-table-column label="系统案例个数" align="center" prop="externalExampleNum">
  93. <template slot-scope="{row}">
  94. <span>{{ row.externalExampleNum}}</span>
  95. </template>
  96. </el-table-column>
  97. <el-table-column label="查询范围" align="center" prop="limitDate">
  98. <template slot-scope="{row}">
  99. <span>{{ row.limitDate}}</span>
  100. </template>
  101. </el-table-column>
  102. <el-table-column label="操作" align="center" fixed="right">
  103. <template slot-scope="{row}">
  104. <el-button type="text" @click="genWords(row)">复制文案</el-button>
  105. </template>
  106. </el-table-column>
  107. </parentTable>
  108. </y-page-list-layout>
  109. </div>
  110. </template>
  111. <script>
  112. import YPageListLayout from '@/components/YPageListLayout'
  113. import Breadcrumb from '@/components/Breadcrumb'
  114. import {copyFacePriceWords} from '@/utils/personalUtil'
  115. export default {
  116. name: 'facePriceHistory',
  117. components: {
  118. Breadcrumb,
  119. YPageListLayout,
  120. },
  121. data() {
  122. return {
  123. pageData: { records: [] },
  124. listLoading: false,
  125. listQuery: {
  126. page: 1,
  127. size: 10,
  128. current: 1,
  129. descs: null,
  130. ascs: null,
  131. startDate: null,
  132. endDate: null,
  133. },
  134. payDate: '',
  135. pickerOptions: {
  136. shortcuts: [
  137. {
  138. text: '最近一周',
  139. onClick(picker) {
  140. const end = new Date()
  141. const start = new Date()
  142. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
  143. picker.$emit('pick', [start, end])
  144. },
  145. },
  146. {
  147. text: '最近一个月',
  148. onClick(picker) {
  149. const end = new Date()
  150. const start = new Date()
  151. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
  152. picker.$emit('pick', [start, end])
  153. },
  154. },
  155. {
  156. text: '最近三个月',
  157. onClick(picker) {
  158. const end = new Date()
  159. const start = new Date()
  160. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
  161. picker.$emit('pick', [start, end])
  162. },
  163. },
  164. ],
  165. },
  166. }
  167. },
  168. watch: {
  169. },
  170. created() {
  171. this.getPage();
  172. },
  173. methods: {
  174. getPage() {
  175. this.$api.personalFacePrice.getPage(this.listQuery).then(res => {
  176. if (res.code === 200) {
  177. this.pageData = res.data;
  178. }
  179. })
  180. },
  181. resetSearch() {
  182. this.$router.push({ query: {} });
  183. this.listQuery = {
  184. current: 1,
  185. size: 10,
  186. descs: 'created',
  187. }
  188. this.payDate = ''
  189. this.getPage();
  190. },
  191. searchList() {
  192. // 重置分页
  193. this.listQuery.page = 1
  194. this.listQuery.size = 10
  195. if (this.payDate) {
  196. this.listQuery.startDate = this.payDate[0]
  197. this.listQuery.endDate = this.payDate[1]
  198. }
  199. this.getPage()
  200. },
  201. genWords(row){
  202. let date = row.valueTiming.split('-')
  203. let location = "";
  204. let community ="";
  205. if (row.queryType==='地址'){
  206. location = "【坐落】"+row.queryTarget+"\n";
  207. }else{
  208. community = "【小区名称】 "+row.queryTarget+"\n";
  209. }
  210. let valueTimeStr = date[0]+'年'+date[1]+'月'+date[2]+'日';
  211. let faceWords = "\t★★口估结果★★ \n\n"+
  212. "【价值时点】"+valueTimeStr+" \n"+
  213. location+
  214. community+
  215. "【建筑面积】"+row.faceAcreage+"㎡\n"+
  216. "【单价】"+row.facePrice+"元/㎡\n"+
  217. "【总价】"+(row.faceAmount / 10000).toFixed(2)+"万\n"+
  218. "\n"+
  219. "【备注】本次口估按“精装修”进行估算!\n"
  220. copyFacePriceWords(faceWords);
  221. // this.$message({'type':'success','message': context+' 已复制!'});
  222. let html = faceWords.replace(/\n/g,"</br>")
  223. this.$message({ 'type':'success','duration':'5000',
  224. dangerouslyUseHTMLString: true,
  225. message: html
  226. });
  227. }
  228. },
  229. }
  230. </script>
  231. <style lang="scss" scoped>
  232. </style>