index.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. <template>
  2. <view class="content-box">
  3. <view class="uni-list title-date-box">
  4. <view class="uni-list-cell">
  5. <view class="uni-list-cell-db display-flex-start">
  6. <picker mode="date" fields="year" @change="bindDateChange" class="picker-class">
  7. <view class="uni-input display-between items-center">{{dateYear}}年<image src="../../static/arrow_down.svg" mode="aspectFit"></image></view>
  8. </picker>
  9. <view style="font-size: 26rpx;margin-left: 20rpx;">1月~ </view>
  10. <picker :range="arrayMonth" :value="dateMonth" @change="bindDateMonthChange" class="picker-class">
  11. <view class="uni-input display-between items-center" style="color: #707070;">{{dateMonth}}月<image src="../../static/calendar_icon.svg" mode="aspectFit"></image></view>
  12. </picker>
  13. </view>
  14. </view>
  15. </view>
  16. <qiun-title-bar title="规上工业企业"/>
  17. <view class="block-box display-wrap items-center" style="justify-content: space-evenly;height: 340rpx;">
  18. <view class="block-box-content" style="background-color: #77AFCA;" @click="goScale('规上工业企业')">
  19. <view>规上工业企业</view>
  20. <view>{{standard_sized_count}}</view>
  21. </view>
  22. <view class="block-box-content" style="background-color: #A5C9D3;">
  23. <view>工业增加值增速</view>
  24. <view>同比增长{{standard_sized_increase_ratio}}%</view>
  25. </view>
  26. <view class="block-box-content" style="background-color: #8D7E95;" @click="goScale('先进制造业企业')">
  27. <view>先进制造业</view>
  28. <view>{{advanced_count}}</view>
  29. </view>
  30. <view class="block-box-content" style="background-color: #C1ABBC;">
  31. <view>先进制造业总产值</view>
  32. <view>同比增长{{advanced_increase_ratio}}%</view>
  33. </view>
  34. </view>
  35. <!-- <qiun-title-bar title="2021年规上工业任务目标"/> -->
  36. <view class="title-second">{{dateYear}}年规上工业任务目标</view>
  37. <view class="charts-box">
  38. <qiun-data-charts type="bar" background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="chartData"/>
  39. </view>
  40. <!-- <qiun-title-bar title="先进制造业产值(亿元)"/> -->
  41. <view class="title-second">先进制造业产值(亿元)</view>
  42. <view class="charts-box">
  43. <qiun-data-charts type="column" :chartData="chartData1" background="#4C4C4C"/>
  44. </view>
  45. <!-- <qiun-title-bar title="工业产值"/> -->
  46. <view class="title-second">工业产值</view>
  47. <view class="charts-box">
  48. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="chartData2"/>
  49. </view>
  50. <qiun-title-bar title="工业投资" style="border-top:10rpx solid #f2f2f2" />
  51. <view class="block-box display-around items-center">
  52. <view class="block-box-content" style="width:30%;background-color:#F2CD4F;" @click="goProject(0)">
  53. <view>在库项目</view>
  54. <view>{{industryData.instore_project_count}}</view>
  55. </view>
  56. <view class="block-box-content" style="width:30%;background-color: #9776F2;" @click="goProject(1)">
  57. <view>技改项目</view>
  58. <view>{{industryData.industrial_investment_project_count}}</view>
  59. </view>
  60. <view class="block-box-content" style="width:30%;background-color: #51A9E3;" @click="goProject(2)">
  61. <view>在谈项目</view>
  62. <view>{{industryData.discuss_project_count}}</view>
  63. </view>
  64. </view>
  65. <!-- <qiun-title-bar title="2021年工业投资任务目标"/> -->
  66. <view class="title-second">{{dateYear}}年工业投资任务目标</view>
  67. <view class="charts-box">
  68. <qiun-data-charts type="bar" background="#4C4C4C" :opts="{extra:{bar:{linearType:'custom',barBorderCircle:true}}}" :chartData="industryData.chartData"/>
  69. </view>
  70. <!-- <qiun-title-bar title="工业投资额"/> -->
  71. <view class="title-second">工业投资额</view>
  72. <view class="charts-box">
  73. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="industryData.chartData2"/>
  74. </view>
  75. <qiun-title-bar title="重点项目" style="border-top:10rpx solid #f2f2f2" />
  76. <view class="block-box display-around items-center">
  77. <view class="block-box-content" style="width:30%;background-color:#F2CD4F;" @click="goImportant(0)">
  78. <view>重点项目</view>
  79. <view>{{importantData.importent_project_count}}</view>
  80. </view>
  81. <view class="block-box-content" style="width:30%;background-color: #9776F2;" @click="goImportant(0)">
  82. <view>新建/续建</view>
  83. <view>{{importantData.new_project_count}}/{{importantData.continue_project_count}}</view>
  84. </view>
  85. <view class="block-box-content" style="width:30%;background-color: #51A9E3;">
  86. <view>总投资(万元)</view>
  87. <view>{{importantData.investment_count}}</view>
  88. </view>
  89. </view>
  90. <!-- <qiun-title-bar title="重点项目级别分布"/> -->
  91. <view class="title-second">重点项目级别分布</view>
  92. <view class="charts-box">
  93. <qiun-data-charts type="bar" background="#4C4C4C" :chartData="importantData.chartData" :opts="{xAxis:{format:'fix0'},extra:{bar:{linearType:'custom',barBorderCircle:true}}}" />
  94. </view>
  95. <!-- <qiun-title-bar title="工业投资额"/> -->
  96. <view class="title-second">工业投资额</view>
  97. <view class="charts-box">
  98. <qiun-data-charts type="demotype" :opts="{fontColor:'#666',xAxis:{boundaryGap:'justify'}}" :chartData="importantData.chartData2"/>
  99. </view>
  100. <qiun-title-bar title="科技创新指标" style="border-top:10rpx solid #f2f2f2;margin-bottom: 10rpx;" />
  101. <view class="block-box display-around items-center">
  102. <view class="block-box-content" style="width:47%;color: #555;" @click="goScale('科技创新企业','high_tech')">
  103. <view>国家高新技术企业</view>
  104. <view>{{techData.target.high ||'-'}}/<text style="color: red;">{{techData.finish.high ||'-'}}</text></view>
  105. </view>
  106. <view class="block-box-content" style="width:47%;color: #555;" @click="goScale('科技创新企业','tech')">
  107. <view>科技型中小企业</view>
  108. <view>{{techData.target.mini ||'-'}}/<text style="color: red;">{{techData.finish.mini ||'-'}}</text></view>
  109. </view>
  110. </view>
  111. <view class="display-around-column items-center" style="height: 620rpx; margin: 10rpx 0 10rpx 0;">
  112. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','standard_industry')">
  113. <view>累计研发投入规上工业企业</view>
  114. <view>{{techData.target.standard_industry ||'-'}}/<text style="color: red;">{{techData.finish.standard_industry ||'-'}}</text></view>
  115. </view>
  116. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','standard_service')">
  117. <view>累计研发投入规上服务业企业</view>
  118. <view>{{techData.target.standard_service ||'-'}}/<text style="color: red;">{{techData.finish.standard_service ||'-'}}</text></view>
  119. </view>
  120. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','rd_five_percent' )">
  121. <view>累计研发投入占主营业务5%的企业</view>
  122. <view>{{techData.target.rd_five_percent ||'-'}}/<text style="color: red;">{{techData.finish.rd_five_percent ||'-'}}</text></view>
  123. </view>
  124. <view class="block-box-content" style="width:97%;color: #555;" @click="goScale('科技创新企业','rd_five_million')">
  125. <view>累计研发投入500万以上的企业</view>
  126. <view>{{techData.target.rd_five_million ||'-'}}/<text style="color: red;">{{techData.finish.rd_five_million ||'-'}}</text></view>
  127. </view>
  128. </view>
  129. <qiun-title-bar title="各新城指标排序" style="border-top:10rpx solid #f2f2f2" />
  130. <view class="uni-list title-date-box" style="border: none;">
  131. <view class="uni-list-cell">
  132. <view class="uni-list-cell-db display-flex-start">
  133. <picker :range="arrayNewCity" :value="sortSelect" @change="bindDateCityChange" class="picker-class" style="width: 65%;">
  134. <view class="uni-input display-between items-center" style="color: #707070;">{{sortSelect}}<image src="../../static/arrow_down.svg" mode="aspectFit"></image></view>
  135. </picker>
  136. </view>
  137. </view>
  138. </view>
  139. <!-- <qiun-title-bar title="各新城规上工业企业数量"/> -->
  140. <view class="title-second">各新城{{sortSelect}}</view>
  141. <view class="charts-box">
  142. <qiun-data-charts type="column" :chartData="ereaData.chartDataBar" background="#4C4C4C"/>
  143. </view>
  144. <!-- <qiun-title-bar title="各新城规上工业企业数量占比"/> -->
  145. <view class="title-second">各新城{{sortSelect}}占比</view>
  146. <view class="charts-box" style="margin-bottom: 20rpx;">
  147. <qiun-data-charts type="pie" :chartData="ereaData.chartDataPie" :opts="{legend:{fontSize:10}}" background="#4C4C4C"/>
  148. </view>
  149. </view>
  150. </template>
  151. <script>
  152. import md5 from "@/common/md5.js";
  153. export default {
  154. data() {
  155. return{
  156. dateYear:new Date().getFullYear(),
  157. dateMonth:new Date().getMonth() + 1,
  158. arrayMonth:["1", "2","3", "4","5", "6","7", "8","9", "10","11", "12"],
  159. arrayNewCity:['规上工业企业数量','工业产值及增速','工业增加值增速','工业投资及增速','工业技改及增速'],
  160. sortSelect:'规上工业企业数量',
  161. standard_sized_count:'',
  162. standard_sized_increase_ratio:'',
  163. advanced_count:'',
  164. advanced_increase_ratio:'',
  165. chartData:{
  166. categories: [ "工业增加值增速","先进制造业总产值" ],
  167. series: [
  168. { name: "目标任务",
  169. otherData:[],
  170. data: [],
  171. format:'moreDataShow',
  172. textSize:10
  173. },
  174. { name: "目前已完成",
  175. otherData:[],
  176. data: [],
  177. format:'moreDataShow',
  178. textSize:10
  179. },
  180. ]
  181. },
  182. chartData1:{
  183. "categories": [],
  184. "series": [
  185. {
  186. "name": "先进制造业产值(亿元)",
  187. "data": [],
  188. }
  189. ]
  190. },
  191. chartData2:{
  192. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  193. "series": [
  194. {name: "本年度",data: [],textSize:1},
  195. {name: "上年度", data: [],textSize:1}
  196. ]
  197. },
  198. industryData:{
  199. discuss_project_count:'',
  200. industrial_investment_project_count:'',
  201. instore_project_count:'',
  202. chartData:{
  203. categories: ["在库项目", "技改项目"],
  204. series: [
  205. {
  206. name: "目标任务",
  207. data: [],
  208. otherData:[],
  209. format:'moreDataShow',
  210. textSize:10
  211. },
  212. {
  213. name: "目前已完成",
  214. data: [],
  215. otherData:[],
  216. format:'moreDataShow',
  217. textSize:10,
  218. },
  219. ]
  220. },
  221. chartData2:{
  222. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  223. "series": [
  224. {name: "本年度",data: [],textSize:1},
  225. {name: "上年度", data: [],textSize:1}
  226. ]
  227. }
  228. },
  229. importantData:{
  230. importent_project_count:'',
  231. new_project_count:'',
  232. continue_project_count:'',
  233. investment_count:'',
  234. chartData:{
  235. categories: ["市级", "新区级","新城级"],
  236. series: [
  237. {
  238. name: "数量",
  239. data: [],
  240. },
  241. ]
  242. },
  243. chartData2:{
  244. "categories": ["1月", "2月","3月", "4月","5月", "6月","7月", "8月","9月", "10月","11月", "12月"],
  245. "series": [
  246. {name: "本年度",data: [],textSize:1},
  247. {name: "上年度", data: [],textSize:1}
  248. ]
  249. }
  250. },
  251. techData:{
  252. target:{},
  253. finish:{}
  254. },
  255. ereaData:{
  256. chartDataBar:{
  257. "categories": [],
  258. "series": [
  259. {
  260. "name":'',
  261. "data": [],
  262. }
  263. ]
  264. },
  265. chartDataPie:{
  266. "categories": [],
  267. "series": [
  268. {
  269. "data": [
  270. // {
  271. // "name": "空港",
  272. // "value": 50
  273. // },
  274. // {
  275. // "name": "沣东",
  276. // "value": 30
  277. // },
  278. // {
  279. // "name": "秦汉",
  280. // "value": 20
  281. // },
  282. // {
  283. // "name": "泾河",
  284. // "value": 18
  285. // },
  286. // {
  287. // "name": "沣西",
  288. // "value": 8
  289. // }
  290. ]
  291. }
  292. ]
  293. },
  294. }
  295. }
  296. },
  297. onLoad() {
  298. this.topChartFn(this.dateYear,this.dateMonth)
  299. },
  300. methods:{
  301. topChartFn(year,month){
  302. this.getStandardChart(year,month);
  303. this.getAdvancedCompanyChart(year,month);
  304. this.getIndustryChart(year,month);
  305. this.getImportantChart(year,month);
  306. this.getTechInfo(year,month);
  307. this.getEreaInfos(year,month,1);
  308. },
  309. getStandardChart(y,m){
  310. let md5Sign = md5(
  311. "method=" +
  312. "stat" +
  313. "&timestamp=" +
  314. getApp().globalData.globalTimestamp +
  315. "&secret=" +
  316. getApp().globalData.secret
  317. );
  318. let url =
  319. getApp().globalData.shareUrl +
  320. "api/api.php" +
  321. "?method=stat&action=standard_target&timestamp=" +
  322. getApp().globalData.globalTimestamp +
  323. "&sign=" +
  324. md5Sign;
  325. uni.request({
  326. url: url,
  327. method: "POST",
  328. header: {
  329. "content-type": "application/x-www-form-urlencoded",
  330. },
  331. data: {
  332. year:y,
  333. month:m,
  334. },
  335. success: (res) => {
  336. if (res.data.code === 200) {
  337. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],targetRatio1 = '',targetRatio2 = '';
  338. this.standard_sized_count = res.data.data.standard_sized_count || '-';
  339. this.standard_sized_increase_ratio = res.data.data.standard_sized_increase_ratio || '-';
  340. this.advanced_count = res.data.data.advanced_count || '-';
  341. this.advanced_increase_ratio = res.data.data.advanced_increase_ratio || '-';
  342. if(res.data.data.target.length){
  343. res.data.data.target.forEach((item,index)=>{
  344. if(item.source === '2'){
  345. targetRatio2 = Number(item.increase_ratio) || 0
  346. }
  347. if(item.source === '1'){
  348. targetRatio1 = Number(item.increase_ratio) || 0
  349. }
  350. if(item.source !== '0'){
  351. targetData.push(Number(item.increase_balance))
  352. targetData1.push(Number(item.increase_ratio))
  353. }
  354. })
  355. }
  356. if(res.data.data.finish.length){
  357. res.data.data.finish.forEach((item,index)=>{
  358. if(item.source === '2'){
  359. let dataObj = {
  360. value:Number(item.increase_ratio),
  361. color:Number(item.increase_ratio) > targetRatio2 ? '#68d889' : '#cc0000'
  362. }
  363. finishData.push(Number(item.increase_balance))
  364. finishData1.push(dataObj)
  365. }
  366. if(item.source === '1'){
  367. let dataObj = {
  368. value:Number(item.increase_ratio),
  369. color:Number(item.increase_ratio) > targetRatio1 ? '#68d889' : '#cc0000'
  370. }
  371. finishData.push(Number(item.increase_balance))
  372. finishData1.push(dataObj)
  373. }
  374. })
  375. }
  376. this.chartData.series[0].data = targetData1.reverse()
  377. this.chartData.series[0].otherData = targetData.reverse()
  378. this.chartData.series[1].data = finishData1.reverse()
  379. this.chartData.series[1].otherData = finishData.reverse()
  380. }
  381. },
  382. fail: () => {
  383. console.log("连接失败");
  384. },
  385. });
  386. },
  387. getAdvancedCompanyChart(y,m){
  388. let md5Sign = md5(
  389. "method=" +
  390. "stat" +
  391. "&timestamp=" +
  392. getApp().globalData.globalTimestamp +
  393. "&secret=" +
  394. getApp().globalData.secret
  395. );
  396. let url =
  397. getApp().globalData.shareUrl +
  398. "api/api.php" +
  399. "?method=stat&action=advanced_company&timestamp=" +
  400. getApp().globalData.globalTimestamp +
  401. "&sign=" +
  402. md5Sign;
  403. uni.request({
  404. url: url,
  405. method: "POST",
  406. header: {
  407. "content-type": "application/x-www-form-urlencoded",
  408. },
  409. data: {
  410. year:y,
  411. month:m,
  412. },
  413. success: (res) => {
  414. if (res.data.code === 200) {
  415. let categoriesList = [],balanceList = [],lineBalanceList = [], lineLast = [];
  416. res.data.data.company_list.forEach((item)=>{
  417. categoriesList.push(item.short_name);
  418. balanceList.push(item.balance)
  419. })
  420. balanceList = balanceList.map((item)=>{ return (Number(item)/10000).toFixed(2)});
  421. // res.data.data.month_list.forEach((item)=>{
  422. // lineBalanceList.push(item.balance);
  423. // lineLast.push(item.last_balance)
  424. // })
  425. for(let key in res.data.data.month_list ){
  426. lineBalanceList.push(res.data.data.month_list[key].balance)
  427. lineLast.push(res.data.data.month_list[key].last_balance)
  428. }
  429. this.chartData1.categories = categoriesList;
  430. this.chartData1.series[0].data = balanceList;
  431. this.chartData2.series[0].data = lineBalanceList;
  432. this.chartData2.series[1].data = lineLast;
  433. }
  434. },
  435. fail: () => {
  436. console.log("连接失败");
  437. },
  438. });
  439. },
  440. industryFilter(data){
  441. let targetData = [],targetData1 = [],finishData = [],finishData1 = [],lineBalanceList = [], lineLast = [];
  442. this.industryData.discuss_project_count = data.discuss_project_count || '-';
  443. this.industryData.industrial_investment_project_count = data.industrial_investment_project_count || '-';
  444. this.industryData.instore_project_count = data.instore_project_count || '-';
  445. if(data.target.length){
  446. let targetList = data.target;
  447. targetData = [targetList[0].store_balance,targetList[0].tech_balance];
  448. targetData1 = [targetList[0].store_ratio,targetList[0].tech_ratio]
  449. }else{
  450. targetData = [0,0];targetData1 = [0,0]
  451. }
  452. if(data.finish.length){
  453. let finishList = data.finish;
  454. finishData = [finishList[0].store_balance,finishList[0].tech_balance];
  455. finishData1 = [finishList[0].store_ratio,finishList[0].tech_ratio]
  456. }else{
  457. finishData = [0,0];finishData1 = [0,0]
  458. }
  459. for(let key in data.month_list ){
  460. lineBalanceList.push(data.month_list[key].balance)
  461. lineLast.push(data.month_list[key].last_balance)
  462. }
  463. this.industryData.chartData.series[0].data = targetData
  464. this.industryData.chartData.series[0].otherData = targetData1
  465. this.industryData.chartData.series[1].data = finishData
  466. this.industryData.chartData.series[1].otherData = finishData1
  467. this.industryData.chartData2.series[0].data = lineBalanceList;
  468. this.industryData.chartData2.series[1].data = lineLast;
  469. },
  470. getIndustryChart(y,m){
  471. let md5Sign = md5(
  472. "method=" +
  473. "stat" +
  474. "&timestamp=" +
  475. getApp().globalData.globalTimestamp +
  476. "&secret=" +
  477. getApp().globalData.secret
  478. );
  479. let url =
  480. getApp().globalData.shareUrl +
  481. "api/api.php" +
  482. "?method=stat&action=industry&timestamp=" +
  483. getApp().globalData.globalTimestamp +
  484. "&sign=" +
  485. md5Sign;
  486. uni.request({
  487. url: url,
  488. method: "POST",
  489. header: {
  490. "content-type": "application/x-www-form-urlencoded",
  491. },
  492. data: {
  493. year:y,
  494. month:m,
  495. },
  496. success: (res) => {
  497. if (res.data.code === 200) {
  498. this.industryFilter(res.data.data)
  499. }
  500. },
  501. fail: () => {
  502. console.log("连接失败");
  503. },
  504. });
  505. },
  506. importantFilter(data){
  507. let lineBalanceList = [], lineLast = [];
  508. this.importantData.importent_project_count = data.importent_project_count || '-';
  509. this.importantData.new_project_count = data.new_project_count|| '-';
  510. this.importantData.continue_project_count = data.continue_project_count|| '-';
  511. this.importantData.investment_count = data.investment_count|| '-';
  512. this.importantData.chartData.series[0].data = [data.city_level_count,data.area_level_count,data.new_city_level_count]
  513. //this.importantData.chartData.series[0].data = [5,16,21]
  514. for(let key in data.month_list ){
  515. lineBalanceList.push(data.month_list[key].balance)
  516. lineLast.push(data.month_list[key].last_balance)
  517. }
  518. this.importantData.chartData2.series[0].data = lineBalanceList;
  519. this.importantData.chartData2.series[1].data = lineLast;
  520. },
  521. getImportantChart(y,m){
  522. let md5Sign = md5(
  523. "method=" +
  524. "stat" +
  525. "&timestamp=" +
  526. getApp().globalData.globalTimestamp +
  527. "&secret=" +
  528. getApp().globalData.secret
  529. );
  530. let url =
  531. getApp().globalData.shareUrl +
  532. "api/api.php" +
  533. "?method=stat&action=importent_project&timestamp=" +
  534. getApp().globalData.globalTimestamp +
  535. "&sign=" +
  536. md5Sign;
  537. uni.request({
  538. url: url,
  539. method: "POST",
  540. header: {
  541. "content-type": "application/x-www-form-urlencoded",
  542. },
  543. data: {
  544. year:y,
  545. month:m,
  546. },
  547. success: (res) => {
  548. if (res.data.code === 200) {
  549. this.importantFilter(res.data.data)
  550. }
  551. },
  552. fail: () => {
  553. console.log("连接失败");
  554. },
  555. });
  556. },
  557. getTechInfo(y,m){
  558. let md5Sign = md5(
  559. "method=" +
  560. "stat" +
  561. "&timestamp=" +
  562. getApp().globalData.globalTimestamp +
  563. "&secret=" +
  564. getApp().globalData.secret
  565. );
  566. let url =
  567. getApp().globalData.shareUrl +
  568. "api/api.php" +
  569. "?method=stat&action=tech_infos&timestamp=" +
  570. getApp().globalData.globalTimestamp +
  571. "&sign=" +
  572. md5Sign;
  573. uni.request({
  574. url: url,
  575. method: "POST",
  576. header: {
  577. "content-type": "application/x-www-form-urlencoded",
  578. },
  579. data: {
  580. year:y,
  581. month:m,
  582. },
  583. success: (res) => {
  584. if (res.data.code === 200) {
  585. this.techData.target = res.data.data.target;
  586. this.techData.finish = res.data.data.finish;
  587. }
  588. },
  589. fail: () => {
  590. console.log("连接失败");
  591. },
  592. });
  593. },
  594. ereaInfoFilter(data){
  595. let categoriesList = [], barData = [], pieData = [];
  596. for(let key in data.area_list ){
  597. categoriesList.push(data.area_list[key].name);
  598. barData.push(data.area_list[key].value)
  599. pieData.push(data.area_list[key])
  600. }
  601. this.ereaData.chartDataBar.categories = categoriesList;
  602. this.ereaData.chartDataPie.categories = categoriesList;
  603. this.ereaData.chartDataBar.series[0].name = "各新城" + this.sortSelect;
  604. this.ereaData.chartDataBar.series[0].data = barData;
  605. pieData.forEach((item)=>{item.value = Number(item.value)})
  606. this.ereaData.chartDataPie.series[0].data =pieData.filter((item)=>{return item.name !== '西咸新区'});
  607. },
  608. getEreaInfos(y,m,select){
  609. let md5Sign = md5(
  610. "method=" +
  611. "stat" +
  612. "&timestamp=" +
  613. getApp().globalData.globalTimestamp +
  614. "&secret=" +
  615. getApp().globalData.secret
  616. );
  617. let url =
  618. getApp().globalData.shareUrl +
  619. "api/api.php" +
  620. "?method=stat&action=erea_infos&timestamp=" +
  621. getApp().globalData.globalTimestamp +
  622. "&sign=" +
  623. md5Sign;
  624. uni.request({
  625. url: url,
  626. method: "POST",
  627. header: {
  628. "content-type": "application/x-www-form-urlencoded",
  629. },
  630. data: {
  631. year:y,
  632. month:m,
  633. source:select
  634. },
  635. success: (res) => {
  636. if (res.data.code === 200) {
  637. this.ereaInfoFilter(res.data.data)
  638. }
  639. },
  640. fail: () => {
  641. console.log("连接失败");
  642. },
  643. });
  644. },
  645. bindDateChange(e){
  646. this.dateYear = e.target.value
  647. this.topChartFn(this.dateYear,this.dateMonth)
  648. },
  649. bindDateMonthChange(e){
  650. this.dateMonth = this.arrayMonth[e.target.value]
  651. this.topChartFn(this.dateYear,this.dateMonth)
  652. },
  653. bindDateCityChange(e){
  654. this.sortSelect = this.arrayNewCity[e.target.value]
  655. let dataSelect = Number(e.target.value) + 1;
  656. this.getEreaInfos(this.dateYear,this.dateMonth,dataSelect)
  657. },
  658. goScale(title,techType){
  659. uni.navigateTo({
  660. url:'./largeScale/index?title=' + title + '&year=' + this.dateYear + '&month=' + this.dateMonth + '&tech=' + techType
  661. })
  662. },
  663. goProject(idx){
  664. uni.navigateTo({
  665. url:'./projectPage/index?idx=' + idx
  666. })
  667. },
  668. goImportant(idx){
  669. uni.navigateTo({
  670. url:'./importantPage/index?idx=' + idx
  671. })
  672. }
  673. }
  674. };
  675. </script>
  676. <style>
  677. .content-box {
  678. display: flex;
  679. flex-direction: column;
  680. flex: 1;
  681. }
  682. .title-date-box {
  683. margin-top: 10px;
  684. border-bottom: 1px solid #d7d7d7;
  685. padding-bottom: 10px;
  686. }
  687. .charts-box-title{
  688. width: 100%;
  689. height: 100rpx;
  690. }
  691. .charts-box {
  692. width: 100%;
  693. height: 600rpx;
  694. }
  695. .picker-class {
  696. border-radius: 10rpx;
  697. padding: 10rpx;
  698. width: 180rpx;
  699. font-size: 28rpx;
  700. background: #f5f5f5;
  701. margin-left: 20rpx;
  702. }
  703. .picker-class image {
  704. width: 26rpx;
  705. height: 26rpx;
  706. }
  707. .block-box-content {
  708. display: flex;
  709. flex-direction: column;
  710. justify-content: center;
  711. align-items: center;
  712. font-size: 30rpx;
  713. border-radius: 10rpx;
  714. width: 45%;
  715. height: 140rpx;
  716. color: #fff;
  717. background-color:#F2F2F2;
  718. }
  719. .title-second {
  720. width: 100%;
  721. height: 60rpx;
  722. line-height: 60rpx;
  723. text-align: center;
  724. font-size: 30rpx;
  725. /* font-weight: 550; */
  726. }
  727. </style>