Commit 3ed8aa61 authored by tianhongyang's avatar tianhongyang

内部合作 咨询机构合作 供应商合作记录

parent 8efdbf13
...@@ -41,3 +41,9 @@ export const getAreaListApi = () => request({ ...@@ -41,3 +41,9 @@ export const getAreaListApi = () => request({
url: "/area/all/withoutRegion", url: "/area/all/withoutRegion",
method: "get" method: "get"
}); });
//获取地区树
export const getAllAreaApi = () => request({
url: '/area/all',
method: 'get',
});
import request from '@/utils/request';
/**
* 获取(常合作业主单位、常合作施工单位、常合作集团)列表
* @param {*} data
* @returns
*/
export const getCooperativeOwnerUnitsListApi = (data) => request({
url: "/consultancy/detailPage",
method: "post",
data
});
\ No newline at end of file
import request from '@/utils/request';
/**
* 获取(常合作业主单位、常合作施工单位、常合作集团)列表
* @param {*} data
* @returns
*/
export const getConsultingAgencyCooperationListApi = (data) => request({
url: "/customerInfo/advisoryList",
method: "get",
data
});
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_181_024631"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_181_024631)"><g><g><g><rect x="0" y="0" width="16" height="16" rx="0" fill="#FFFFFF" fill-opacity="0.009999999776482582"/></g><g><path d="M3.9996778125,11.500654375L14.6663078125,11.500654375Q14.7156078125,11.500654375,14.7639078125,11.491044375Q14.8122078125,11.481434375,14.8577078125,11.462594375Q14.9032078125,11.443744375,14.9441078125,11.416384375Q14.9851078125,11.389024375,15.0199078125,11.354204375Q15.0547078125,11.319384375,15.0821078125,11.278434375Q15.1094078125,11.237494375,15.1283078125,11.191994375Q15.1471078125,11.146494375,15.1567078125,11.098194375Q15.1663078125,11.049894375,15.1663078125,11.000654375L15.1663078125,2.333984375Q15.1663078125,2.284738675,15.1567078125,2.236439275Q15.1471078125,2.188139375,15.1283078125,2.142642375Q15.1094078125,2.097145375,15.0821078125,2.056199375Q15.0547078125,2.015253375,15.0199078125,1.980431375Q14.9851078125,1.945609375,14.9441078125,1.918249375Q14.9032078125,1.8908903750000001,14.8577078125,1.872044375Q14.8122078125,1.853199375,14.7639078125,1.843591375Q14.7156078125,1.833984375,14.6663078125,1.833984375L1.3330078125,1.833984375Q1.2837621125,1.833984375,1.2354627125,1.843591375Q1.1871628125,1.853199375,1.1416658124999999,1.872044375Q1.0961688125,1.8908903750000001,1.0552228125,1.918249375Q1.0142768125,1.945609375,0.9794548125,1.980431375Q0.9446328125,2.015253375,0.9172728125,2.056199375Q0.8899138125,2.097145375,0.8710678125,2.142642375Q0.8522228125,2.188139375,0.8426148124999999,2.236439275Q0.8330078125,2.284738675,0.8330078125,2.333984375L0.8330078125,11.000654375Q0.8330078125,11.049894375,0.8426148124999999,11.098194375Q0.8522228125,11.146494375,0.8710678125,11.191994375Q0.8899138125,11.237484375,0.9172728125,11.278434375Q0.9446328125,11.319384375,0.9794548125,11.354204375Q1.0142768125,11.389024375,1.0552228125,11.416384375Q1.0961688125,11.443744375,1.1416658124999999,11.462584375Q1.1871628125,11.481434375,1.2354627125,11.491044375Q1.2837621125,11.500654375,1.3330078125,11.500654375L3.9996778125,11.500654375ZM14.1663078125,10.500654375L1.8330078125,10.500654375L1.8330078125,2.833984375L14.1663078125,2.833984375L14.1663078125,10.500654375Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M4.8330078125,7.333984375L4.8330078125,8.667314375Q4.8330078125,8.716564375,4.8426148125,8.764864375Q4.8522228125,8.813164375,4.8710678125,8.858664375Q4.8899138125,8.904154375000001,4.9172728125,8.945104375Q4.9446328125,8.986044375,4.9794548125,9.020874375Q5.0142768125,9.055694375,5.0552228125,9.083054375Q5.0961688125,9.110414375,5.1416658125,9.129254375Q5.1871628125,9.148104374999999,5.2354627125,9.157714375Q5.2837621125,9.167314375,5.3330078125,9.167314375Q5.3822535125,9.167314375,5.4305529125,9.157714375Q5.4788528125,9.148104374999999,5.5243498125,9.129254375Q5.5698468125,9.110414375,5.6107928125,9.083054375Q5.6517388125,9.055694375,5.6865608125,9.020874375Q5.7213828125,8.986044375,5.7487428125,8.945104375Q5.7761018125,8.904154375000001,5.7949478125,8.858664375Q5.8137928125,8.813164375,5.8234008125,8.764864375Q5.8330078125,8.716564375,5.8330078125,8.667314375L5.8330078125,7.333984375Q5.8330078125,7.284738675,5.8234008125,7.236439275Q5.8137928125,7.188139375,5.7949478125,7.142642375Q5.7761018125,7.097145375,5.7487428125,7.056199375Q5.7213828125,7.015253375,5.6865608125,6.980431375Q5.6517388125,6.945609375,5.6107928125,6.918249375Q5.5698468125,6.890890375,5.5243498125,6.872044375Q5.4788528125,6.853199375,5.4305529125,6.843591375Q5.3822535125,6.833984375,5.3330078125,6.833984375Q5.2837621125,6.833984375,5.2354627125,6.843591375Q5.1871628125,6.853199375,5.1416658125,6.872044375Q5.0961688125,6.890890375,5.0552228125,6.918249375Q5.0142768125,6.945609375,4.9794548125,6.980431375Q4.9446328125,7.015253375,4.9172728125,7.056199375Q4.8899138125,7.097145375,4.8710678125,7.142642375Q4.8522228125,7.188139375,4.8426148125,7.236439275Q4.8330078125,7.284738675,4.8330078125,7.333984375Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M7.5,11L7.5,13Q7.5,13.04925,7.509607,13.09754Q7.519215,13.14584,7.53806,13.19134Q7.556906,13.23684,7.584265,13.27778Q7.611625,13.31873,7.646447,13.35355Q7.681269,13.38838,7.722215,13.41573Q7.763161,13.44309,7.808658,13.46194Q7.854155,13.48078,7.9024549,13.49039Q7.9507543,13.5,8,13.5Q8.0492457,13.5,8.0975451,13.49039Q8.145845,13.48078,8.191342,13.46194Q8.236839,13.44309,8.277785,13.41573Q8.318731,13.38838,8.353553,13.35355Q8.388375,13.31873,8.415735,13.27779Q8.443094,13.23684,8.46194,13.19134Q8.480785000000001,13.14584,8.490393,13.09754Q8.5,13.04925,8.5,13L8.5,11Q8.5,10.9507543,8.490393,10.9024549Q8.480785000000001,10.854155,8.46194,10.808658Q8.443094,10.763161,8.415735,10.722215Q8.388375,10.681269,8.353553,10.646447Q8.318731,10.611625,8.277785,10.584265Q8.236839,10.556906,8.191342,10.53806Q8.145845,10.519214999999999,8.0975451,10.509607Q8.0492457,10.5,8,10.5Q7.9507543,10.5,7.9024549,10.509607Q7.854155,10.519214999999999,7.808658,10.53806Q7.763161,10.556906,7.722215,10.584265Q7.681269,10.611625,7.646447,10.646447Q7.611625,10.681269,7.584265,10.722215Q7.556906,10.763161,7.53806,10.808658Q7.519215,10.854155,7.509607,10.9024549Q7.5,10.9507543,7.5,11Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M7.5,6L7.5,8.66667Q7.5,8.715910000000001,7.509607,8.76421Q7.519215,8.81251,7.53806,8.85801Q7.556906,8.90351,7.584265,8.94445Q7.611625,8.9854,7.646447,9.02022Q7.681269,9.05504,7.722215,9.0824Q7.763161,9.10976,7.808658,9.12861Q7.854155,9.14745,7.9024549,9.15706Q7.9507543,9.16667,8,9.16667Q8.0492457,9.16667,8.0975451,9.15706Q8.145845,9.14745,8.191342,9.12861Q8.236839,9.10976,8.277785,9.0824Q8.318731,9.05504,8.353553,9.02022Q8.388375,8.9854,8.415735,8.94445Q8.443094,8.90351,8.46194,8.85801Q8.480785000000001,8.81251,8.490393,8.76421Q8.5,8.715910000000001,8.5,8.66667L8.5,6Q8.5,5.9507543,8.490393,5.9024549Q8.480785000000001,5.854155,8.46194,5.808658Q8.443094,5.763161,8.415735,5.722215Q8.388375,5.681269,8.353553,5.646447Q8.318731,5.611625,8.277785,5.584265Q8.236839,5.556906,8.191342,5.53806Q8.145845,5.519215,8.0975451,5.509607Q8.0492457,5.5,8,5.5Q7.9507543,5.5,7.9024549,5.509607Q7.854155,5.519215,7.808658,5.53806Q7.763161,5.556906,7.722215,5.584265Q7.681269,5.611625,7.646447,5.646447Q7.611625,5.681269,7.584265,5.722215Q7.556906,5.763161,7.53806,5.808658Q7.519215,5.854155,7.509607,5.9024549Q7.5,5.9507543,7.5,6Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M10.1669921875,4.666015625L10.1669921875,8.666015625Q10.1669921875,8.715265625,10.1765991875,8.763565625Q10.186207187499999,8.811855625,10.2050521875,8.857355625Q10.2238981875,8.902855625,10.2512571875,8.943795625Q10.2786171875,8.984745625,10.3134391875,9.019565625Q10.3482611875,9.054385625,10.3892071875,9.081745625Q10.4301531875,9.109105625,10.4756501875,9.127955625Q10.5211471875,9.146795625,10.5694470875,9.156405625Q10.6177464875,9.166015625,10.6669921875,9.166015625Q10.7162378875,9.166015625,10.7645372875,9.156405625Q10.8128371875,9.146795625,10.8583341875,9.127955625Q10.9038311875,9.109105625,10.9447771875,9.081745625Q10.9857231875,9.054385625,11.0205451875,9.019565625Q11.0553671875,8.984745625,11.0827271875,8.943795625Q11.1100861875,8.902855625,11.1289321875,8.857355625Q11.147777187500001,8.811855625,11.1573851875,8.763565625Q11.1669921875,8.715265625,11.1669921875,8.666015625L11.1669921875,4.666015625Q11.1669921875,4.616769925,11.1573851875,4.568470525Q11.147777187500001,4.520170625,11.1289321875,4.474673625Q11.1100861875,4.429176625,11.0827271875,4.388230625Q11.0553671875,4.347284625,11.0205451875,4.312462625Q10.9857231875,4.277640625,10.9447771875,4.250280625Q10.9038311875,4.222921625,10.8583341875,4.204075625Q10.8128371875,4.185230625,10.7645372875,4.175622625Q10.7162378875,4.166015625,10.6669921875,4.166015625Q10.6177464875,4.166015625,10.5694470875,4.175622625Q10.5211471875,4.185230625,10.4756501875,4.204075625Q10.4301531875,4.222921625,10.3892071875,4.250280625Q10.3482611875,4.277640625,10.3134391875,4.312462625Q10.2786171875,4.347284625,10.2512571875,4.388230625Q10.2238981875,4.429176625,10.2050521875,4.474673625Q10.186207187499999,4.520170625,10.1765991875,4.568470525Q10.1669921875,4.616769925,10.1669921875,4.666015625Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M4,14.166015625L12.00001,14.166015625Q12.04926,14.166015625,12.09756,14.156408625Q12.14586,14.146800625000001,12.19135,14.127955625Q12.23685,14.109109625,12.2778,14.081750625Q12.31874,14.054390625,12.35357,14.019568625Q12.38839,13.984746625,12.41575,13.943800625Q12.44311,13.902854625,12.46195,13.857357625Q12.4808,13.811860625,12.49041,13.763560725Q12.50001,13.715261325,12.50001,13.666015625Q12.50001,13.616769925,12.49041,13.568470525Q12.4808,13.520170625,12.46195,13.474673625Q12.44311,13.429176625,12.41575,13.388230625Q12.38839,13.347284625,12.35357,13.312462625Q12.31874,13.277640625,12.2778,13.250280625Q12.23685,13.222921625,12.19135,13.204075625Q12.14586,13.185230624999999,12.09756,13.175622625Q12.04926,13.166015625,12.00001,13.166015625L4,13.166015625Q3.9507543,13.166015625,3.9024549,13.175622625Q3.854155,13.185230624999999,3.808658,13.204075625Q3.763161,13.222921625,3.722215,13.250280625Q3.681269,13.277640625,3.646447,13.312462625Q3.611625,13.347284625,3.584265,13.388230625Q3.556906,13.429176625,3.5380599999999998,13.474673625Q3.519215,13.520170625,3.509607,13.568470525Q3.5,13.616769925,3.5,13.666015625Q3.5,13.715261325,3.509607,13.763560725Q3.519215,13.811860625,3.5380599999999998,13.857357625Q3.556906,13.902854625,3.584265,13.943800625Q3.611625,13.984746625,3.646447,14.019568625Q3.681269,14.054390625,3.722215,14.081750625Q3.763161,14.109109625,3.808658,14.127955625Q3.854155,14.146800625000001,3.9024549,14.156408625Q3.9507543,14.166015625,4,14.166015625Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g></g></g></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_181_024594"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_181_024594)"><g><path d="M6.8151546875,5.021609375000001L5.7810546875,5.241409375Q5.7393446875,5.250279375,5.6997346875,5.266079375Q5.6601246875,5.281879375,5.6237646875,5.304169375Q5.5874046875,5.326449375,5.5553346875,5.3545693750000005Q5.5232746875,5.382679375,5.4964346875,5.4158293749999995Q5.4696046875,5.448969375,5.448764687500001,5.486179375Q5.4279246875,5.523379375,5.4136946875,5.563579375Q5.3994546875000005,5.603779375,5.3922346875,5.645809375Q5.3850146875,5.687839374999999,5.3850146875,5.730489374999999L5.3850146875,5.7318693750000005Q5.3851546875,5.783719375,5.3959346875000005,5.8344393750000005Q5.4048046875,5.876149375,5.4206046875,5.915759375Q5.4364046875,5.955369375,5.4586946874999995,5.991729375Q5.4809746875,6.028099375,5.5090946875,6.060159375Q5.5372046875,6.092219375,5.5703546875,6.119059375Q5.6034946875,6.145899375,5.6407046875,6.166729375Q5.6779046875,6.187569375,5.7181046875,6.201809375Q5.7583046875,6.216039374999999,5.8003346875,6.223259375Q5.8423646875,6.230489374999999,5.8850146875,6.230489374999999L5.8863946875,6.230489374999999Q5.9382446875,6.230339375,5.9889646875,6.219559374999999L7.0230646875,5.999759375Q7.0905646875,5.985409375,7.1485046875,6.023029375L9.8481246875,7.776189375Q10.2535446875,8.039359375,10.7261246875,7.938889375L13.0644046875,7.441899375Q13.5371046875,7.341399375,13.8003046875,6.936109375Q14.0635046875,6.530819375,13.9630046875,6.058119375L13.7551046875,5.079999375Q13.6546046875,4.607329375,13.2493046875,4.344119375Q12.8440046875,4.080929375,12.3714046875,4.181379375L11.0112246875,4.470479375Q10.9436646875,4.484839375,10.8858246875,4.447269375L8.1861646875,2.694081375Q7.7808446875,2.4308843749999998,7.3081846875,2.531356375L1.3833496875,3.790712375Q1.3416356875,3.799578375,1.3020266875,3.815381375Q1.2624166875,3.831183375,1.2260556875,3.853465375Q1.1896946875,3.875748375,1.1576316875,3.9038663749999998Q1.1255696875,3.931984375,1.0987316875,3.965125375Q1.0718946875,3.998267375,1.0510566875,4.0354793749999995Q1.0302196875,4.072679375,1.0159836875,4.112879375Q1.0017486875000001,4.153079375,0.9945266875000001,4.1951093749999995Q0.9873046875,4.237139375,0.9873046875,4.279789375L0.9873066875000001,4.281169375Q0.9874496875000001,4.333019375,0.9982306875,4.383739375Q1.0189086875,4.481019375,1.0752416875,4.562989375Q1.1315736875,4.6449493749999995,1.2149846874999999,4.699119375Q1.3391976875,4.779789375,1.4873046875,4.779789375L1.4948042575,4.7797293750000005Q1.5435621875,4.778999375,1.5912596875,4.768859375L7.5161046875,3.509502375Q7.5836246875,3.495150375,7.6415246875,3.532750375L10.3411246875,5.285899375Q10.7463846875,5.549119375,11.2191346875,5.448629374999999L12.5792046875,5.159529375Q12.7423046875,5.124879375,12.7769046875,5.287899375L12.9848046875,6.266059375Q13.0195046875,6.429089375,12.8565046875,6.463749375L10.5181646875,6.960749375Q10.4506646875,6.975099375,10.3927646875,6.937519375L7.6931146875,5.184339375Q7.2877746875,4.921129375,6.8151546875,5.021609375000001Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g><g><path d="M10.21899875,10.092180625000001L10.21929875,10.092120625Q10.316588750000001,10.071440625000001,10.39854875,10.015110625Q10.48050875,9.958780625,10.53467875,9.875370625Q10.61534875,9.751150625,10.61534875,9.603040625L10.61528875,9.595550625Q10.61455875,9.546790625,10.60441875,9.499090625000001Q10.58374875,9.401810625,10.52740875,9.319840625Q10.47107875,9.237880625,10.38766875,9.183710625Q10.26345875,9.103050625,10.115348749999999,9.103040625L10.107848749999999,9.103100625Q10.05908875,9.103830625,10.01139875,9.113970625L8.97728875,9.333770625Q8.909738749999999,9.348130625,8.85189875,9.310560625L6.15223875,7.557376625Q5.7468787500000005,7.294155625,5.27423875,7.394642625L2.93595875,7.891671725Q2.46328005,7.992118625,2.20007175,8.397427625Q1.93687575,8.802718625,2.03734975,9.275400625L2.24526375,10.253540625Q2.34573175,10.726240624999999,2.75102175,10.989440625Q3.1563197499999998,11.252640625,3.62901875,11.152150625L4.98913875,10.863050625Q5.05667875,10.848690625,5.11457875,10.886290625L7.81418875,12.639450625Q8.219548750000001,12.902670624999999,8.69219875,12.802180625L14.61701875,11.542820625000001Q14.65871875,11.533950625,14.69831875,11.518150625Q14.73791875,11.502350625,14.77431875,11.480060625Q14.81061875,11.457780625,14.84271875,11.429660625Q14.87481875,11.401550625,14.90161875,11.368400625Q14.92841875,11.335260625,14.94931875,11.298060625Q14.97011875,11.260850625,14.98431875,11.220650625000001Q14.99861875,11.180450625,15.00581875,11.138420625Q15.01301875,11.096390625,15.01301875,11.053750625L15.01301875,11.052360625Q15.01291875,11.000510625,15.00211875,10.949790625Q14.99321875,10.908070625,14.97741875,10.868470625Q14.96161875,10.828860625,14.93931875,10.792490625Q14.91711875,10.756130625,14.88891875,10.724070625Q14.86081875,10.692010625,14.82771875,10.665170625Q14.79451875,10.638330625,14.75731875,10.617500625Q14.72011875,10.596660625,14.67991875,10.582420625000001Q14.63971875,10.568190625,14.59771875,10.560970625Q14.55571875,10.553740625,14.51301875,10.553740625L14.51161875,10.553750625Q14.45981875,10.553890625000001,14.40911875,10.564670625L8.48423875,11.824040625Q8.41675875,11.838390625,8.35882875,11.800780625L5.65918875,10.047600625Q5.25388875,9.784410625,4.78122875,9.884900625L3.42107175,10.174010625000001Q3.35355375,10.188360625,3.2956647500000003,10.150770625Q3.23776675,10.113170625,3.22340975,10.045620625L3.01549675,9.067490625Q3.0011437499999998,8.999960625,3.03874575,8.942060625Q3.07634075,8.884170625,3.14387575,8.869820625L5.482188750000001,8.372780625Q5.54966875,8.358433625,5.60759875,8.396046625L8.307198750000001,10.149190625Q8.71244875,10.412410625,9.18519875,10.311920624999999L10.21899875,10.092180625000001Z" fill-rule="evenodd" fill="#232323" fill-opacity="1"/></g></g></svg>
\ No newline at end of file
...@@ -634,9 +634,13 @@ export function getTreeSelectAreaList(nodeList = [], tree, idkey = "id") { ...@@ -634,9 +634,13 @@ export function getTreeSelectAreaList(nodeList = [], tree, idkey = "id") {
try { try {
if (Object.prototype.toString.call(nodeList) != "[object Array]") throw new Error("传入参数不是一个节点数组"); if (Object.prototype.toString.call(nodeList) != "[object Array]") throw new Error("传入参数不是一个节点数组");
const _result = [];
// 克隆源数据 // 克隆源数据
const _tempTree = JSON.parse(JSON.stringify(tree)); let _tempTree = JSON.parse(JSON.stringify(tree));
if (_tempTree instanceof Array) {
_tempTree = { childrenLength: _tempTree.length, children: _tempTree };
}
// 根据所选节点生成tree // 根据所选节点生成tree
const newTree = generateDirectSubtreeAndRemove(nodeList, _tempTree, idkey); const newTree = generateDirectSubtreeAndRemove(nodeList, _tempTree, idkey);
if (newTree) { if (newTree) {
...@@ -657,6 +661,7 @@ export function findParentStatus(nodeList, tree, idkey) { ...@@ -657,6 +661,7 @@ export function findParentStatus(nodeList, tree, idkey) {
const _temp = nodeList.map(item => { const _temp = nodeList.map(item => {
// 找节点parent // 找节点parent
const parent = findParentNode(tree, item, idkey); const parent = findParentNode(tree, item, idkey);
console.log("父节点", parent);
// 有parent // 有parent
if (parent) { if (parent) {
const count = parent.childrenLength; const count = parent.childrenLength;
......
...@@ -262,7 +262,7 @@ export default { ...@@ -262,7 +262,7 @@ export default {
if (selectNode?.length) { if (selectNode?.length) {
const nodeValueList = selectNode.map(item => item.value); const nodeValueList = selectNode.map(item => item.value);
console.log(nodeValueList); console.log(nodeValueList);
console.log(getTreeSelectAreaList(nodeValueList, { childrenLength: this.areaDataList.length, children: this.areaDataList }, "value")); console.log(getTreeSelectAreaList(nodeValueList, this.areaDataList, "value"));
} }
} }
}, },
......
...@@ -74,22 +74,22 @@ ...@@ -74,22 +74,22 @@
v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange"> v-else-if="!tableLoading" :height="'100%'" @handle-current-change="handleCurrentChange">
<!-- 项目列表 --> <!-- 项目列表 -->
<template slot="projectName" slot-scope="{data,row}"> <template slot="projectName" slot-scope="{data,row}">
<div v-if="row.projectName" class="no-line-feed ">{{row.projectName}}</div> <div v-if="row.projectName" class="no-line-feed">{{row.projectName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 业主单位 --> <!-- 业主单位 -->
<template slot="ownerName" slot-scope="{data,row}"> <template slot="ownerName" slot-scope="{data,row}">
<div v-if="row.ownerName" class="no-line-feed ">{{row.ownerName}}</div> <div v-if="row.ownerName" class="no-line-feed">{{row.ownerName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 项目承接单位 --> <!-- 项目承接单位 -->
<template slot="contractOrgName" slot-scope="{data,row}"> <template slot="contractOrgName" slot-scope="{data,row}">
<div v-if="row.contractOrgName" class="no-line-feed ">{{row.contractOrgName}}</div> <div v-if="row.contractOrgName" class="no-line-feed">{{row.contractOrgName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
<!-- 咨询机构名称 --> <!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="{data,row}"> <template slot="advisoryBodyName" slot-scope="{data,row}">
<div v-if="row.advisoryBodyName" class="no-line-feed ">{{row.advisoryBodyName}}</div> <div v-if="row.advisoryBodyName" class="no-line-feed">{{row.advisoryBodyName}}</div>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</table-list-com> </table-list-com>
......
<template> <template>
<div id="detailPart" class="sides-container"> <div id="detailPart" class="sides-container">
<!-- 搜索栏 --> <!-- 搜索栏 -->
<el-input placeholder="搜索" class="side-input" v-model="searchText" clearable @input="handleSearch(true)" @keyup.enter.native="handleSearch()"> <div class="search-bar-container">
<i slot="prefix" class="el-input__icon el-icon-search" @click="handleSearch()"></i> <el-input placeholder="请输入内容" class="side-input" v-model="searchText" clearable @input="handleSearch(true)"
</el-input> @keyup.enter.native="handleSearch()">
<i slot="prefix" class="el-input__icon el-icon-search" @click="handleSearch()"></i>
</el-input>
</div>
<el-menu ref="sideMenu" :unique-opened="true" :default-active="searchIndex" class="detail-menu" @open="handleOpen"> <el-menu ref="sideMenu" :unique-opened="true" :default-active="searchIndex" class="detail-menu" @open="handleOpen">
<template v-for="(item, index) in sideRoute"> <template v-for="(item, index) in sideRoute">
<!-- 一级菜单 --> <!-- 一级菜单 -->
<el-submenu :index="item.index" :key="item.index" v-if="item.children" class="top-level-menu" <el-submenu :index="item.index" :key="item.index" v-if="item.children" class="top-level-menu"
:disabled="!isCompanyId(item.title) || (item.title=='项目商机'&&statisticObj.business.landInfo<1&&statisticObj.business.busProposedProjectV1<1&&statisticObj.performance.specialDebt<1&&statisticObj.performance.bidPlan<1&&statisticObj.business.biddingAnnouncement<1&&statisticObj.business.proBiddingAnnouncement<1&&statisticObj.business.adminLicensing<1)"> :disabled="item.disabled || !isCompanyId(item.title) || (item.title=='项目商机'&&statisticObj.business.landInfo<1&&statisticObj.business.busProposedProjectV1<1&&statisticObj.performance.specialDebt<1&&statisticObj.performance.bidPlan<1&&statisticObj.business.biddingAnnouncement<1&&statisticObj.business.proBiddingAnnouncement<1&&statisticObj.business.adminLicensing<1)">
<template slot="title"> <template slot="title">
<span>{{item.title}}</span> <div class="top-level-menu-title">
<svg-icon :iconClass="item.icon"></svg-icon>
<span>{{item.title}}</span>
</div>
</template> </template>
<template v-for="(subItem,subIndex) of item.children"> <template v-for="(subItem,subIndex) of item.children">
...@@ -53,6 +59,7 @@ ...@@ -53,6 +59,7 @@
import { financial } from '@/api/detail/party-a/financial'; import { financial } from '@/api/detail/party-a/financial';
import { detailSideBar } from "@/utils"; import { detailSideBar } from "@/utils";
import { v4 } from "uuid"; import { v4 } from "uuid";
import SvgIcon from "@/components/SvgIcon";
export default { export default {
name: 'Sidebar', name: 'Sidebar',
props: { props: {
...@@ -81,12 +88,15 @@ export default { ...@@ -81,12 +88,15 @@ export default {
default: false default: false
} }
}, },
components: {
SvgIcon
},
data() { data() {
return { return {
searchText: '', searchText: '',
sideRoute: [ sideRoute: [
{ {
title: "企业经营", pathName: "", children: [ title: "企业经营", icon: "enterprise-management-detail-side", pathName: "", children: [
{ {
title: '企业概要', pathName: '', children: [ title: '企业概要', pathName: '', children: [
{ title: '企业速览', pathName: 'overview' }, { title: '企业速览', pathName: 'overview' },
...@@ -119,6 +129,13 @@ export default { ...@@ -119,6 +129,13 @@ export default {
{ title: '开标记录', pathName: 'bidrecords' } { title: '开标记录', pathName: 'bidrecords' }
] ]
}, },
{
title: '咨询业务往来', pathName: '', children: [
{ title: '常合作业主单位', pathName: 'cooperativeOwnerUnits' },
{ title: '常合作施工单位', pathName: 'cooperativeConstructionUnit' },
{ title: '常合作集团', pathName: 'cooperativeGroup' },
]
},
{ {
title: '城投分析', pathName: '', children: [ title: '城投分析', pathName: '', children: [
{ title: '区域经济', pathName: 'regionalEconomies' }, { title: '区域经济', pathName: 'regionalEconomies' },
...@@ -146,6 +163,19 @@ export default { ...@@ -146,6 +163,19 @@ export default {
{ title: '联系人', pathName: 'decisionMaking' }, { title: '联系人', pathName: 'decisionMaking' },
{ title: '跟进记录', pathName: 'gjjl' } { title: '跟进记录', pathName: 'gjjl' }
] ]
},
{
title: "内部合作", icon: "internal-cooperation-detail-side", pathName: "", children: [
{ title: '咨询机构合作', pathName: 'consultingAgencyCooperation' },
{
title: '供应商合作记录', pathName: '', children: [
{ title: '准入情况', pathName: 'accessCondition' },
{ title: '施工业绩', pathName: 'constructionPerformance' },
{ title: '在施工程情况', pathName: 'constructionSituation' },
{ title: '合作记录', pathName: 'cooperationRecord' },
]
},
]
} }
], ],
sideRoute1: [ sideRoute1: [
...@@ -183,6 +213,13 @@ export default { ...@@ -183,6 +213,13 @@ export default {
{ title: '开标记录', pathName: 'bidrecords' } { title: '开标记录', pathName: 'bidrecords' }
] ]
}, },
{
title: '咨询业务往来', pathName: '', children: [
{ title: '常合作业主单位', pathName: 'cooperativeOwnerUnits' },
{ title: '常合作施工单位', pathName: 'cooperativeConstructionUnit' },
{ title: '常合作集团', pathName: 'cooperativeGroup' },
]
},
{ {
title: '城投分析', pathName: '', children: [ title: '城投分析', pathName: '', children: [
{ title: '区域经济', pathName: 'regionalEconomies' }, { title: '区域经济', pathName: 'regionalEconomies' },
...@@ -210,6 +247,19 @@ export default { ...@@ -210,6 +247,19 @@ export default {
{ title: '联系人', pathName: 'decisionMaking' }, { title: '联系人', pathName: 'decisionMaking' },
{ title: '跟进记录', pathName: 'gjjl' } { title: '跟进记录', pathName: 'gjjl' }
] ]
},
{
title: "内部合作", icon: "internal-cooperation-detail-side", pathName: "", children: [
{ title: '咨询机构合作', pathName: 'consultingAgencyCooperation' },
{
title: '供应商合作记录', pathName: '', children: [
{ title: '准入情况', pathName: 'accessCondition' },
{ title: '施工业绩', pathName: 'constructionPerformance' },
{ title: '在施工程情况', pathName: 'constructionSituation' },
{ title: '合作记录', pathName: 'cooperationRecord' },
]
},
]
} }
], ],
defaultRoute: [], defaultRoute: [],
...@@ -244,6 +294,11 @@ export default { ...@@ -244,6 +294,11 @@ export default {
this.createSideBarWithServerData(val); this.createSideBarWithServerData(val);
} }
}, },
pathName: {
handler(newValue) {
this.searchIndex = this.findNodeIndex(this.sideRoute, newValue).index;
}
}
}, },
methods: { methods: {
sideBarInit() { sideBarInit() {
...@@ -275,10 +330,11 @@ export default { ...@@ -275,10 +330,11 @@ export default {
return item; return item;
}); });
}, },
financial(id) { getFinancial(id) {
financial({ cid: String(id) }).then(res => { financial({ cid: String(id) }).then(res => {
if ((res.code == 200 && !res.data) || !res.data?.totalAssets) { if ((res.code == 200 && !res.data) || !res.data?.totalAssets) {
this.sideRoute[1].disabled = true; this.$set(this.sideRoute[0], "disabled", true);
this.$set(this.sideRoute[1], "disabled", true);
this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute)); this.defaultRoute = JSON.parse(JSON.stringify(this.sideRoute));
} }
}); });
...@@ -437,33 +493,37 @@ export default { ...@@ -437,33 +493,37 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
#app { #app {
.sides-container { .sides-container {
width: 144px; width: 160px;
min-height: calc(100vh - 170px); min-height: calc(100vh - 170px);
padding-bottom: 20px; padding-bottom: 20px;
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
.side-input {
width: 128px; .search-bar-container {
margin-top: 16px; padding: 9px 8px;
margin-left: 8px; box-sizing: border-box;
border: 0; ::v-deep .side-input {
::v-deep .el-input__inner { width: 100%;
height: 32px;
background: #f3f3f4;
border-radius: 20px;
border: 0; border: 0;
&::placeholder { .el-input__inner {
color: #3d3d3d; height: 32px;
background: #f3f3f4;
border-radius: 20px;
border: 0;
&::placeholder {
color: #3d3d3d;
}
}
.el-icon-search {
line-height: 34px;
color: #0081ff;
cursor: pointer;
} }
}
.el-icon-search {
line-height: 34px;
color: #0081ff;
cursor: pointer;
} }
} }
.detail-menu { .detail-menu {
margin-top: 20px; margin-top: 9px;
border-right: 0; border-right: 0;
::v-deep .el-menu-item, ::v-deep .el-menu-item,
::v-deep .el-submenu__title { ::v-deep .el-submenu__title {
...@@ -530,6 +590,15 @@ export default { ...@@ -530,6 +590,15 @@ export default {
justify-content: space-between; justify-content: space-between;
padding: 9px 8px !important; padding: 9px 8px !important;
box-sizing: border-box; box-sizing: border-box;
.top-level-menu-title {
display: flex;
align-items: center;
& > span {
margin-left: 4px;
}
}
} }
// 二级菜单 // 二级菜单
......
<template> <template>
<div class="Tables"> <div class="Tables">
<div class="table-item"> <div class="table-item">
<el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" <el-table v-if="tableDataTotal>0" class="fixed-table" :class="headerFixed ? 'headerFixed':''" v-loading="tableLoading" :data="tableData"
v-loading="tableLoading" element-loading-text="Loading" ref="tableRef" v-horizontal-scroll="'hover'" border fit highlight-current-row
:data="tableData" :default-sort="defaultSort?defaultSort:{}" @sort-change="sortChange">
element-loading-text="Loading" <el-table-column v-if="isIndex" label="序号" :width="flexWidth(tableData)" align="left" :fixed="indexFixed" :resizable="false">
ref="tableRef"
v-horizontal-scroll="'hover'"
border
fit
highlight-current-row
:default-sort = "defaultSort?defaultSort:{}"
@sort-change="sortChange"
>
<el-table-column
v-if="isIndex"
label="序号"
:width="flexWidth(tableData)"
align="left"
:fixed="indexFixed"
:resizable="false">
<template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template> <template slot-scope="scope">{{ queryParams.pageNum * queryParams.pageSize - queryParams.pageSize + scope.$index + 1 }}</template>
</el-table-column> </el-table-column>
<template > <template>
<el-table-column <el-table-column v-for="(item,index) in forData" :key="index" :label="item.label" :prop="item.prop" :width="item.width"
v-for="(item,index) in forData" :min-width="item.minWidth" :align="item.align?item.align:'left'" :fixed="item.fixed"
:key="index" :sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false" :show-overflow-tooltip="item.showOverflowTooltip"
:label="item.label"
:prop="item.prop"
:width="item.width"
:min-width="item.minWidth"
:align="item.align?item.align:'left'"
:fixed="item.fixed"
:sortable="item.sortable ?item.sortable=='custom'? 'custom':true : false"
:resizable="false"> :resizable="false">
<template v-if="item.children&&item.children.length"> <template v-if="item.children&&item.children.length">
<el-table-column <el-table-column v-for="(cld, i) in item.children" :key="i" :prop="cld.prop" :label="cld.label" :width="cld.width" :resizable="false">
v-for="(cld, i) in item.children"
:key="i"
:prop="cld.prop"
:label="cld.label"
:width="cld.width"
:resizable="false">
<template slot-scope="cldscope"> <template slot-scope="cldscope">
<template v-if="cld.slot"> <template v-if="cld.slot">
<slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot> <slot :name="cld.prop" :row="cldscope.row" :data="cld"></slot>
...@@ -58,8 +30,8 @@ ...@@ -58,8 +30,8 @@
<template slot-scope="scope"> <template slot-scope="scope">
<slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot> <slot v-if="item.slot" :name="item.prop" :row="scope.row" :index="scope.$index" :data="item"></slot>
<span v-else> <span v-else>
{{ scope.row[item.prop] || '-' }} {{ scope.row[item.prop] || '-' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
...@@ -73,13 +45,14 @@ ...@@ -73,13 +45,14 @@
</div> </div>
</div> </div>
<div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize"> <div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal"
layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import NoData from '../component/noData' import NoData from '../component/noData';
export default { export default {
name: "Tables", name: "Tables",
props: { props: {
...@@ -135,128 +108,132 @@ export default { ...@@ -135,128 +108,132 @@ export default {
return { return {
current_page: this.queryParams.pageNum, current_page: this.queryParams.pageNum,
show_page: this.paging show_page: this.paging
} };
}, },
watch:{ watch: {
'queryParams.pageNum'(newVal,oldVal){ 'queryParams.pageNum'(newVal, oldVal) {
this.current_page=newVal this.current_page = newVal;
} }
}, },
created() { created() {
}, },
methods:{ methods: {
handleCurrentChange(e){ handleCurrentChange(e) {
if(this.MaxPage<e){ if (this.MaxPage < e) {
this.show_page = false this.show_page = false;
this.$nextTick(() => { this.$nextTick(() => {
this.current_page = this.queryParams.pageNum this.current_page = this.queryParams.pageNum;
this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`) this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`);
this.show_page = true this.show_page = true;
}) });
}else{ } else {
this.$emit('handle-current-change',e) this.$emit('handle-current-change', e);
} }
}, },
handleSizeChange(e){ handleSizeChange(e) {
this.$emit('handle-current-change',e) this.$emit('handle-current-change', e);
}, },
sortChange(e){ sortChange(e) {
this.$emit('sort-change',e) this.$emit('sort-change', e);
}, },
flexWidth(tableData) { flexWidth(tableData) {
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 59 let currentMax = this.queryParams.pageNum * this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 59;
// return currentMax.toString().length*25 + 'px' // return currentMax.toString().length*25 + 'px'
if(currentMax.toString().length>3){ if (currentMax.toString().length > 3) {
wdth = wdth + (currentMax.toString().length-3)*10 wdth = wdth + (currentMax.toString().length - 3) * 10;
} }
return wdth+'px' return wdth + 'px';
} }
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.Tables{ .Tables {
::v-deep .el-table__body tr.current-row > td.el-table__cell{ ::v-deep .el-table__body tr.current-row > td.el-table__cell {
background-color: #ffffff; background-color: #ffffff;
} }
/*::v-deep .el-table__fixed{ /*::v-deep .el-table__fixed{
height: calc(100% - 16px) !important; height: calc(100% - 16px) !important;
}*/ }*/
::v-deep .el-table__row{ ::v-deep .el-table__row {
&:nth-child(even){ &:nth-child(even) {
background-color: #F9FCFF; background-color: #f9fcff;
.more{ .more {
background: #F8FBFF; background: #f8fbff;
span{ span {
color: #0081FF; color: #0081ff;
}
}
}
&:nth-child(odd){
.more{
span{
color: #0081FF;
}
} }
} }
} }
.table-item{ &:nth-child(odd) {
::v-deep .el-table td.el-table__cell{ .more {
border-bottom: 0; span {
color: #0081ff;
}
} }
} }
::v-deep .el-table th.el-table__cell.is-leaf,::v-deep .el-table td.el-table__cell { }
border-bottom: 1px solid #E6EAF1; ::v-deep .table-item {
} .el-table td.el-table__cell {
::v-deep .el-table--border .el-table__cell { border-bottom: 0;
border-right: 1px solid #E6EAF1;
} }
::v-deep .el-table__body tr.hover-row.current-row>td, .el-table {
::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row>td, .cell {
::v-deep .el-table__body tr.hover-row.el-table__row--striped>td, font-size: 12px;
::v-deep .el-table__body tr.hover-row>td{
background-color:#DCEBFF !important;
.more{
background: #DCEBFF;
} }
} }
}
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td { ::v-deep .el-table th.el-table__cell.is-leaf,
background-color: #DCEBFF; ::v-deep .el-table td.el-table__cell {
} border-bottom: 1px solid #e6eaf1;
::v-deep .fixed-table{ }
overflow: visible; ::v-deep .el-table--border .el-table__cell {
border-right: 1px solid #e6eaf1;
}
::v-deep .el-table__body tr.hover-row.current-row > td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped.current-row > td,
::v-deep .el-table__body tr.hover-row.el-table__row--striped > td,
::v-deep .el-table__body tr.hover-row > td {
background-color: #dcebff !important;
.more {
background: #dcebff;
} }
::v-deep .el-table__header-wrapper{ }
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #dcebff;
}
::v-deep .fixed-table {
overflow: visible;
}
::v-deep .el-table__header-wrapper {
position: sticky;
top: 0;
z-index: 9;
}
::v-deep .el-table__fixed-header-wrapper {
position: sticky;
z-index: 9;
top: 0;
}
.headerFixed {
::v-deep .el-table__header-wrapper {
position: sticky; position: sticky;
top:0; top: 80px;
z-index: 9; z-index: 9;
} }
::v-deep .el-table__fixed-header-wrapper{ ::v-deep .el-table__fixed-header-wrapper {
position: sticky; position: sticky;
z-index: 9; z-index: 9;
top: 0; top: 80px;
} }
.headerFixed{
::v-deep .el-table__header-wrapper{
position: sticky;
top:80px;
z-index: 9;
}
::v-deep .el-table__fixed-header-wrapper{
position: sticky;
z-index: 9;
top:80px;
}
}
::v-deep .el-table__fixed{
overflow-x: clip;
overflow-y: clip;
}
} }
::v-deep .el-table__fixed {
overflow-x: clip;
overflow-y: clip;
}
}
</style> </style>
<template>
<div class="cooperative-owner-units">
<head-form-new title="常合作业主单位" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { getCooperativeOwnerUnitsListApi } from "@/api/consultingTransaction";
export default {
name: "cooperativeOwnerUnits",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10,
companyType: 1
},
forData: [
{ label: '限消令对象', prop: 'name', width: '215' },
],
formData: [
{ type: 4, fieldName: 'businessTypes', value: '', placeholder: '咨询机构业务', uid: this.getUid() },
{ type: 5, fieldName: 'time', value: '', placeholder: '合作频率', startTime: 'dateFrom', endTime: 'dateTo', uid: this.getUid() },
],
//列表
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
} catch (error) {
}
},
async handleQuery(params) {
try {
let data = params ? params : this.queryParams;
this.isSkeleton = true;
const res = await getCooperativeOwnerUnitsListApi(data);
this.tableData = res.rows ? res.rows : [];
this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
},
}
</script>
<style lang="scss" scoped>
.cooperative-owner-units {
background: #ffffff;
border-radius: 4px;
padding: 16px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
...@@ -32,6 +32,9 @@ ...@@ -32,6 +32,9 @@
<Bidagency v-if="currentPath.pathName=='bidagency'" :company-id="companyId" /> <Bidagency v-if="currentPath.pathName=='bidagency'" :company-id="companyId" />
<Hiscontract v-if="currentPath.pathName=='hiscontract'" :company-id="companyId" /> <Hiscontract v-if="currentPath.pathName=='hiscontract'" :company-id="companyId" />
<Bidrecords v-if="currentPath.pathName=='bidrecords'" :company-id="companyId" /> <Bidrecords v-if="currentPath.pathName=='bidrecords'" :company-id="companyId" />
<!-- 咨询业务往来 -->
<!-- 1.常合作业主单位 -->
<cooperative-owner-units v-if="currentPath.pathName=='cooperativeOwnerUnits'" :company-id="companyId"></cooperative-owner-units>
<!-- 投诚分析 --> <!-- 投诚分析 -->
<RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" :companyInfo="companyInfo" /> <RegionalEconomies v-if="currentPath.pathName=='regionalEconomies'" :company-id="companyId" :companyInfo="companyInfo" />
<LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" /> <LandAcquisition v-if="currentPath.pathName=='landAcquisition'" :company-id="companyId" />
...@@ -48,6 +51,11 @@ ...@@ -48,6 +51,11 @@
<!-- <Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" /> <!-- <Judgment v-if="currentPath.pathName=='judgment'" :company-id="companyId" />
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" /> <CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> --> <OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> -->
<!-- 内部合作 -->
<!-- 1、咨询机构合作 -->
<consulting-agency-cooperation v-if="currentPath.pathName=='consultingAgencyCooperation'"
:company-id="companyId"></consulting-agency-cooperation>
</template> </template>
<template v-if="customerId && isCustomer"> <template v-if="customerId && isCustomer">
<!-- 商务信息 --> <!-- 商务信息 -->
...@@ -98,6 +106,7 @@ import Supplier from "./dealings/supplier"; //业务往来-供应商 ...@@ -98,6 +106,7 @@ import Supplier from "./dealings/supplier"; //业务往来-供应商
import Bidagency from "./dealings/bidagency"; //业务往来-招标代理 import Bidagency from "./dealings/bidagency"; //业务往来-招标代理
import Hiscontract from "./dealings/hiscontract"; //业务往来-历史发包 import Hiscontract from "./dealings/hiscontract"; //业务往来-历史发包
import Bidrecords from "./dealings/bidrecords"; //业务往来-开标记录 import Bidrecords from "./dealings/bidrecords"; //业务往来-开标记录
import CooperativeOwnerUnits from "@/views/detail/party-a/consultingTransaction/cooperativeOwnerUnits"; //咨询业务往来 常合作业主单位
import LandAcquisition from "./urbanLnvestment/landAcquisition"; //投诚分析-城投拿地 import LandAcquisition from "./urbanLnvestment/landAcquisition"; //投诚分析-城投拿地
import RegionalEconomies from "./urbanLnvestment/regionalEconomies"; //投诚分析-区域经济 import RegionalEconomies from "./urbanLnvestment/regionalEconomies"; //投诚分析-区域经济
import SameRegion from "./urbanLnvestment/sameRegion"; //投诚分析-同地区城投 import SameRegion from "./urbanLnvestment/sameRegion"; //投诚分析-同地区城投
...@@ -115,9 +124,10 @@ import Preference from "./preference"; //招标偏好 ...@@ -115,9 +124,10 @@ import Preference from "./preference"; //招标偏好
import Cooperate from "./cooperate"; //合作情况 import Cooperate from "./cooperate"; //合作情况
import DecisionMaking from "./decisionMaking"; //决策链条 import DecisionMaking from "./decisionMaking"; //决策链条
import Gjjl from "../../project/projectList/component/gjjl"; //跟进记录 import Gjjl from "../../project/projectList/component/gjjl"; //跟进记录
// import { import ConsultingAgencyCooperation from "@/views/detail/party-a/internalCooperation/consultingAgencyCooperation"; //内部合作 咨询机构合作
// urbanInvestmentPage, import {
// } from '@/api/detail/party-a/urbanLnvestment'; urbanInvestmentPage,
} from '@/api/detail/party-a/urbanLnvestment';
export default { export default {
name: 'PartyA', name: 'PartyA',
components: { components: {
...@@ -160,7 +170,9 @@ export default { ...@@ -160,7 +170,9 @@ export default {
Preference, Preference,
Cooperate, Cooperate,
DecisionMaking, DecisionMaking,
Gjjl Gjjl,
CooperativeOwnerUnits,
ConsultingAgencyCooperation
}, },
data() { data() {
return { return {
...@@ -217,8 +229,6 @@ export default { ...@@ -217,8 +229,6 @@ export default {
if (titlename) { if (titlename) {
titlename.innerText = this.customerInfo.companyName; titlename.innerText = this.customerInfo.companyName;
} }
// }
// })
}); });
} }
} }
...@@ -249,9 +259,6 @@ export default { ...@@ -249,9 +259,6 @@ export default {
let companyId = this.$route.params.id; let companyId = this.$route.params.id;
await this.getCompanyId(companyId); await this.getCompanyId(companyId);
} }
if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path;
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
...@@ -269,7 +276,7 @@ export default { ...@@ -269,7 +276,7 @@ export default {
await this.getStatistic(); await this.getStatistic();
await this.handleQuery(); await this.handleQuery();
await this.association(this.$route.query.customerId); await this.association(this.$route.query.customerId);
this.$refs.sidebar.financial(data); this.$refs.sidebar.getFinancial(data);
} }
}, },
async getStatistic() { async getStatistic() {
...@@ -290,22 +297,21 @@ export default { ...@@ -290,22 +297,21 @@ export default {
provinceIds: [this.companyInfo.provinceId], provinceIds: [this.companyInfo.provinceId],
cityIds: [this.companyInfo.cityId], cityIds: [this.companyInfo.cityId],
}; };
// const result = await urbanInvestmentPage(data); const result = await urbanInvestmentPage(data);
// if (result.code == 200) { if (result.code == 200) {
// if (result.data.totalCount < 1) { if (result.data.totalCount < 1) {
// let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute)); let arr = JSON.parse(JSON.stringify(this.$refs.sidebar.sideRoute));
// arr[4].children[2].disabled = true; arr[1].children[5].children[2].disabled = true;
// this.$refs.sidebar.sideRoute = arr; this.$refs.sidebar.sideRoute = arr;
// } }
// } }
if (this.companyInfo && this.companyInfo.companyName) { if (this.companyInfo && this.companyInfo.companyName) {
this.$nextTick(() => { await this.$nextTick();
document.getElementById('tagTitle').innerText = this.companyInfo.companyName; document.getElementById('tagTitle').innerText = this.companyInfo.companyName;
let titlename = document.getElementById('tagTitles'); let titlename = document.getElementById('tagTitles');
if (titlename) { if (titlename) {
titlename.innerText = this.companyInfo.companyName; titlename.innerText = this.companyInfo.companyName;
} }
});
} }
} }
}, },
...@@ -353,7 +359,7 @@ export default { ...@@ -353,7 +359,7 @@ export default {
await this.$nextTick(); await this.$nextTick();
this.isCustomer = true; this.isCustomer = true;
this.isCompany = true; this.isCompany = true;
this.currentPath.pathName = 'overview'; this.currentPath.pathName = this.$route.query.path ? this.$route.query.path : 'overview';
} }
} }
} catch (err) { } catch (err) {
...@@ -364,7 +370,7 @@ export default { ...@@ -364,7 +370,7 @@ export default {
} else { } else {
await this.$nextTick(); await this.$nextTick();
this.isCompany = true; this.isCompany = true;
this.currentPath.pathName = 'overview'; this.currentPath.pathName = this.$route.query.path ? this.$route.query.path : 'overview';
} }
}, },
...@@ -390,7 +396,7 @@ export default { ...@@ -390,7 +396,7 @@ export default {
width: 100%; width: 100%;
background: #ffffff; background: #ffffff;
border-radius: 4px; border-radius: 4px;
margin-left: 160px; margin-left: 176px;
::v-deep .el-table__header-wrapper { ::v-deep .el-table__header-wrapper {
position: sticky; position: sticky;
top: 0; top: 0;
...@@ -421,7 +427,7 @@ export default { ...@@ -421,7 +427,7 @@ export default {
margin-right: 16px; margin-right: 16px;
position: fixed; position: fixed;
background: #ffffff; background: #ffffff;
width: 144px; width: 160px;
height: calc(100% - 156px); height: calc(100% - 156px);
#detailPart { #detailPart {
...@@ -432,9 +438,9 @@ export default { ...@@ -432,9 +438,9 @@ export default {
} }
.part-right { .part-right {
margin-left: 160px; margin-left: 176px;
height: 100%; height: 100%;
width: calc(100% - 160px); width: calc(100% - 176px);
overflow: hidden; overflow: hidden;
.part-common-container-style { .part-common-container-style {
......
<template>
<div class="consulting-agency-cooperation">
<head-form-new title="咨询机构合作" :form-data="formData" :query-params="queryParams" :total="tableDataTotal" :isExcel="true"
@handle-search="handleSearch" ref="searchFormNew" />
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables v-if="!isSkeleton" :indexFixed="true" :tableData="tableData" :forData="forData" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" @handle-current-change="handleCurrentChange">
<!-- 项目列表 -->
<template slot="projectName" slot-scope="scope">
<span v-if="scope.row.projectName" style="color: #0081FF;cursor: pointer;"
@click="viewProjectDetail(scope.row)">{{scope.row.projectName}}</span>
<span v-else>-</span>
</template>
<!-- 省市区 -->
<template slot="provinceName" slot-scope="scope">
<span>{{`${scope.row.provinceName}${scope.row.provinceName || scope.row.cityName ? " - " : ""}${scope.row.cityName}`}}</span>
</template>
<!-- 业主单位 -->
<template slot="ownerName" slot-scope="scope">
<span v-if="scope.row.ownerName" style="color: #0081FF;cursor: pointer;" @click="viewEnterprise(scope.row)">{{scope.row.ownerName}}</span>
<span v-else>-</span>
</template>
<!-- 项目承接单位 -->
<template slot="contractOrgName" slot-scope="scope">
<span v-if="scope.row.contractOrgName" style="color: #0081FF;cursor: pointer;"
@click="viewEnterprise(scope.row)">{{scope.row.contractOrgName}}</span>
<span v-else>-</span>
</template>
<!-- 咨询机构名称 -->
<template slot="advisoryBodyName" slot-scope="scope">
<span v-if="scope.row.advisoryBodyName" style="color: #0081FF;cursor: pointer;"
@click="viewEnterprise(scope.row)">{{scope.row.advisoryBodyName}}</span>
<span v-else>-</span>
</template>
</tables>
</div>
</template>
<script>
import skeleton from '../component/skeleton';
import mixin from '@/views/detail/party-a/mixins/mixin';
import { getConsultingAgencyCooperationListApi } from "@/api/internalCooperation";
import { getAllAreaApi } from "@/api/common";
import { getTreeSelectAreaList } from "@/utils";
export default {
name: "consultingAgencyCooperation",
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
return {
queryParams: {
advisoryBodyCid: this.companyId,
pageNum: 1,
pageSize: 10,
},
forData: [
{ label: '项目列表', prop: 'projectName', width: '222', slot: true, showOverflowTooltip: true },
{ label: '项目编码', prop: 'projectCode', width: '123' },
{ label: '省市', prop: 'provinceName', minWidth: '110', slot: true },
{ label: '项目承接类型', prop: 'isinvestproject', width: '102', showOverflowTooltip: true },
{ label: '工程基础大类', prop: 'projectType1', width: '98', showOverflowTooltip: true },
{ label: '工程类别明细', prop: 'projectType', width: '98', showOverflowTooltip: true },
{ label: '项目负责人姓名', prop: 'projectLeader', width: '110' },
{ label: '项目负责人专业', prop: 'projectLeaderMajor', width: "110" },
{ label: '项目负责人联系电话', prop: 'projectLeaderPhone', width: "135" },
{ label: '合同金额(元)', prop: 'contractOrigValue', width: "110", align: "right" },
{ label: '业主单位', prop: 'ownerName', slot: true, width: "185", showOverflowTooltip: true },
{ label: '项目承接单位', prop: 'contractOrgName', width: "196", slot: true },
{ label: '咨询机构名称', prop: 'advisoryBodyName', width: "172", slot: true },
{ label: '创建时间', prop: 'loadTime', width: "172" },
],
formData: [
{
type: 7, fieldName: 'businessTypes', value: '', placeholder: '项目省市', uid: this.getUid(), options: [], props: {
multiple: true,
value: "value",
label: "value",
// checkStrictly: true
}
},
{ type: 4, fieldName: 'causeAction', value: '', placeholder: '项目承接类型', options: [], uid: this.getUid() },
{ type: 4, fieldName: 'causeAction', value: '', placeholder: '工程类别明细', options: [], uid: this.getUid() },
{ type: 3, fieldName: 'advisoryBodyName', value: '', placeholder: '请输入', uid: this.getUid() },
],
//列表
tableLoading: false,
tableData: [],
tableDataTotal: 0,
isSkeleton: true,
areaList: []
};
},
//可访问data属性
created() {
this.initDetail();
},
//计算集
computed: {
},
//方法集
methods: {
async initDetail() {
try {
await this.handleQuery();
await this.getAllArea();
} catch (error) {
}
},
async getAllArea() {
try {
const area = await getAllAreaApi();
if (area.code == 200) {
this.areaList = area.data;
this.$set(this.formData[0], "options", this.areaList);
console.log();
}
} catch (error) {
}
},
async handleQuery(params) {
try {
let data = params ? params : this.queryParams;
this.isSkeleton = true;
const res = await getConsultingAgencyCooperationListApi(data);
this.tableData = res.rows ? res.rows : [];
this.tableDataTotal = res.total ? res.total : 0;
} catch (error) {
console.log(error);
} finally {
this.isSkeleton = false;
}
},
async handleSearch() {
try {
const areaSearchList = this.$refs["searchFormNew"].$refs["cascader"][0].getCheckedNodes();
if (areaSearchList?.length) {
const valueList = areaSearchList.map(item => item.value);
const result = getTreeSelectAreaList(valueList, this.areaList, "value");
console.log(result);
}
} catch (error) {
}
},
// 跳转项目详情
viewProjectDetail(row) {
},
viewEnterprise(row) {
}
}
}
</script>
<style lang="scss" scoped>
.consulting-agency-cooperation {
background: #ffffff;
border-radius: 4px;
padding: 16px;
input {
border: 1px solid #efefef;
}
::v-deep .el-form-item {
margin-right: 8px !important;
}
.query-box {
margin: 10px 0 20px;
}
.cell-span {
display: inline-block;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
cursor: pointer;
> span {
display: inline-block;
width: 37px;
position: absolute;
right: 0;
bottom: 0;
background-color: #fff;
z-index: 1;
}
}
@import "@/assets/styles/search-common.scss";
}
</style>
...@@ -72,7 +72,7 @@ export default { ...@@ -72,7 +72,7 @@ export default {
let res = await projectTenderDataGroup({ cid: this.companyId, type: this.activeIndex }); let res = await projectTenderDataGroup({ cid: this.companyId, type: this.activeIndex });
if (res.code == 200 && res.data) { if (res.code == 200 && res.data) {
this.isSkeleton = false; this.isSkeleton = false;
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => {prev + cur},0); let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur, 0);
this.viewData = data.map(item => { this.viewData = data.map(item => {
let it = { name: item.name, value: item.value, percent: parseFloat(Number(Number(item.value) / Number(totalVal) * 100).toFixed(2)) }; let it = { name: item.name, value: item.value, percent: parseFloat(Number(Number(item.value) / Number(totalVal) * 100).toFixed(2)) };
return it; return it;
......
...@@ -45,7 +45,6 @@ export default { ...@@ -45,7 +45,6 @@ export default {
tableLoading: false, tableLoading: false,
tableData: [], tableData: [],
tableDataTotal: 0, tableDataTotal: 0,
showList: [],
isSkeleton: true isSkeleton: true
}; };
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment