详细前两个接口文档

main
严飞永 4 weeks ago
parent 9772a3c8a8
commit a9077cf271

@ -5,7 +5,7 @@ VUE_APP_TITLE = 苏州工业园区工业上楼项目系统
ENV = 'development'
# 苏州工业园区工业上楼项目系统/开发环境
VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_API = ''
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

@ -10,16 +10,26 @@ export function getBasicInformationById(id) {
// 企业--基本信息==修改
export function updateBasicInformation(data) {
return request({
return request({
url: `/gysl/basicInformation/edit`,
method: 'post',
})
data
});
}
// 通过主键查询单条基本信息(企业规划信息)
export function getProgrammeInformationById(id) {
return request({
url: `/gysl/planInformation/{id}`,
return request({
url: `/gysl/planInformation/${id}`,
method: 'get'
});
}
});
}
// 修改规划信息
export function updateProgrammeInformation(data) {
return request({
url: `/gysl/planInformation/edit`,
method: 'post',
data
});
}

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4206"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4206)"><g><path d="M5.05314,9.57462C5.05314,8.08898,5.89531,6.76824,7.09847,6.14913L7.09847,4.41607L5.65477,3.50812L4.01046,4.08592L4.01046,3.01271L7.94064,1.1968L7.94064,5.86029C8.22144,5.77766,8.50212,5.73658,8.82296,5.73658C9.30426,5.73658,9.74531,5.81909,10.1464,5.98411L10.1464,0.949383L8.66259,0L3.28862,2.51754L3.28862,4.33333L0.200618,5.40631L0.200618,11.8857L0,11.8857L0,12.6698L1.00264,12.6698L1.00264,5.98411L4.93282,4.58098L4.93282,12.5873L6.4568,12.5873C5.61463,11.8857,5.05314,10.8126,5.05314,9.57462ZM1.2433,7.59369L4.29127,6.68573L4.29127,5.2826L1.2433,6.35558L1.2433,7.59369ZM12.0714,9.57451C12.0714,7.7174,10.5876,6.23164,8.78292,6.23164C6.97825,6.23164,5.4943,7.75871,5.4943,9.61582C5.4943,11.4729,6.97825,13,8.78281,13C10.5876,13,12.0714,11.4317,12.0714,9.57451ZM1.2433,9.28567L4.29116,8.70809L4.29116,7.30462L1.24319,8.08886L1.2433,9.28567ZM8.62858,7.70512C8.70221,7.66855,8.78802,7.66855,8.86165,7.70512L10.367,8.37782C10.4686,8.42671,10.4686,8.54284,10.3789,8.59173L8.74802,9.42314L7.11709,8.59173C7.02743,8.54284,7.03367,8.42671,7.12289,8.38379L8.62858,7.70512ZM9.00495,9.59448L10.3914,8.83031C10.4748,8.78131,10.5885,8.83616,10.5885,8.92797L10.5885,10.4751C10.5885,10.5605,10.5405,10.6337,10.4628,10.6766L9.08268,11.4472C8.99302,11.4961,8.87938,11.4348,8.87938,11.3429L8.87938,9.79599C8.87938,9.71038,8.92722,9.63728,9.00495,9.59448ZM6.90844,8.92808C6.90844,8.83628,7.02208,8.78142,7.10549,8.83031L8.48562,9.6009C8.56334,9.64382,8.6113,9.71692,8.6113,9.80253L8.6113,11.3495C8.61665,11.4349,8.50346,11.4962,8.4196,11.4473L7.03981,10.6767C6.95639,10.6338,6.90844,10.5606,6.90844,10.4752L6.90844,8.92808ZM1.2433,11.0191L4.29116,10.7714L4.29116,9.36829L1.24319,9.82227L1.2433,11.0191ZM1.2433,12.6285L4.29127,12.5872L4.29127,11.3905L1.2433,11.6382L1.2433,12.6285Z" fill-rule="evenodd" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4207"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4207)"><g><path d="M11.9182,0.219709C11.8542,0.085523,11.7207,0.000234604,11.5742,0L0.383378,0C0.236714,-0.00013865,0.10285,0.0850079,0.038649,0.219271C-0.0255516,0.353534,-0.00881445,0.513335,0.0817507,0.630794L4.81778,6.76616L4.81873,11.4235L7.13887,13L7.13887,6.76811L11.8749,0.630794C11.9654,0.513473,11.9822,0.353895,11.9182,0.219709ZM7.89245,8.4499C7.89245,8.09038,8.17898,7.79907,8.53209,7.79961L12.3613,7.79961C12.7141,7.79961,13,8.09076,13,8.4499L13,12.3497C13,12.7089,12.7141,13,12.3613,13L8.53113,13C8.17875,13,7.89245,12.7085,7.89245,12.3497L7.89245,8.4499ZM11.7236,10.3998L11.7236,9.1002L9.17077,9.1002L9.17077,10.3998L11.7236,10.3998Z" fill-rule="evenodd" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4209"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4209)"><g><path d="M5.99904,0L11.6462,1.59981C11.8584,1.65958,12.0035,1.8358,11.9999,2.03511L11.9999,8.40272C11.9888,8.44597,11.7226,9.49418,10.5663,10.5092C9.54037,11.4113,7.02496,12.614,6.48141,12.8515L6.20579,12.9744C6.13316,13.0077,6.0028,13.0093,5.93017,12.9744L5.65455,12.8515C5.59321,12.8217,5.52419,12.7968,5.37909,12.7287C4.44995,12.2935,2.31981,11.2899,1.43177,10.5092C0.277521,9.49418,0.0113127,8.44597,0.0000182653,8.40272L0.0000182653,2.03511C-0.00186424,1.8358,0.141515,1.65958,0.35376,1.59981L5.99904,0ZM6.50353,8.28809L7.41588,8.28809C7.71378,8.28809,7.95583,8.07212,7.95599,7.80633L7.9541,7.80633L7.9541,7.78645C7.9541,7.52066,7.71205,7.30469,7.41416,7.30469L6.5018,7.30469L6.5018,6.45915C7.30623,6.26796,7.87222,5.57527,7.89826,4.84101C7.90014,4.82939,7.90014,4.81777,7.90014,4.80616C7.90138,4.7995,7.90098,4.79363,7.90057,4.78755C7.90036,4.78443,7.90014,4.78125,7.90014,4.77788C7.89073,4.44728,7.78092,4.1101,7.56491,3.83927C7.31909,3.53036,6.99328,3.31104,6.59294,3.17975C5.88546,2.94895,5.00291,3.15987,4.52258,3.67985C4.24507,3.9805,4.08867,4.31781,4.0515,4.70482C4.01981,5.04368,4.12413,5.40591,4.32147,5.69494C4.51144,5.97235,4.79631,6.21659,5.12951,6.35278C5.22818,6.39253,5.32685,6.42416,5.42552,6.45076C5.42552,6.45915,5.42364,6.46741,5.42364,6.47735L5.42364,9.43441C5.42364,9.70021,5.66569,9.91618,5.96358,9.91618C6.26148,9.91618,6.50353,9.70021,6.50353,9.43441L6.50353,8.28809ZM6.63389,5.22633C6.63201,5.22801,6.62636,5.23473,6.62087,5.24299C6.59671,5.26958,6.57067,5.29449,6.54447,5.31745C6.52408,5.33746,6.50165,5.35566,6.47749,5.37231C6.44204,5.39219,6.42353,5.40381,6.41788,5.40885C6.37505,5.43208,6.33411,5.4521,6.2894,5.47197C6.22242,5.49353,6.15167,5.51186,6.08092,5.52348C6.00829,5.52852,5.93566,5.52852,5.86303,5.52348C5.79228,5.51018,5.72342,5.49353,5.65455,5.47197C5.60247,5.44874,5.55023,5.42214,5.50192,5.39387C5.50003,5.39219,5.4925,5.38715,5.48325,5.38225C5.45344,5.36056,5.42552,5.33732,5.39948,5.31409C5.3772,5.29589,5.35666,5.27434,5.33626,5.25432C5.31399,5.22269,5.30097,5.20617,5.29532,5.20114C5.26928,5.16293,5.24685,5.12639,5.22457,5.0865C5.20041,5.02674,5.17986,4.96361,5.16684,4.90049C5.16135,4.83568,5.16135,4.77088,5.16684,4.70608C5.18175,4.64295,5.20041,4.58151,5.22457,4.52006C5.25079,4.4732,5.28001,4.42773,5.3121,4.38387C5.31399,4.38219,5.31963,4.37548,5.32512,4.36722C5.34944,4.34062,5.37548,4.31571,5.40152,4.29248C5.42191,4.2726,5.44607,4.25427,5.4685,4.23607C5.50396,4.2162,5.52247,4.20458,5.52811,4.19954C5.5699,4.17686,5.61277,4.1558,5.65659,4.13641C5.72357,4.11486,5.79432,4.09652,5.86507,4.08491C5.9377,4.08001,6.01033,4.08001,6.08296,4.08491C6.15371,4.0982,6.22258,4.11486,6.29144,4.13641C6.34396,4.15981,6.39492,4.18588,6.44408,4.21452C6.44612,4.2162,6.45349,4.22123,6.46274,4.22613C6.49255,4.24783,6.52047,4.27106,6.54651,4.2943C6.56879,4.31249,6.58934,4.33405,6.60973,4.35406C6.63201,4.38569,6.64503,4.40221,6.65067,4.40725C6.67609,4.44454,6.69969,4.48278,6.72142,4.52188C6.74558,4.58333,6.76613,4.64645,6.77915,4.70958C6.78292,4.74107,6.7848,4.77424,6.7848,4.80587C6.78292,4.8375,6.78103,4.87082,6.77915,4.90231C6.76425,4.96711,6.74558,5.02856,6.72142,5.09C6.69521,5.13691,6.66598,5.18243,6.63389,5.22633ZM6.06602,11.986L6.06978,11.9877Q6.07167,11.9877,6.07527,11.986L6.06602,11.986Z" fill-rule="evenodd" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4220"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4220)"><g><path d="M11.7,0L1.3,0C0.581288,0,0,0.581288,0,1.3L0,11.7C0,12.4187,0.581288,13,1.3,13L11.7,13C12.4187,13,13,12.4187,13,11.7L13,1.3C13,0.581288,12.4187,0,11.7,0ZM4.54921,9.75079C4.54921,10.1094,4.25857,10.4,3.9,10.4L3.24921,10.4C2.89064,10.4,2.59842,10.1094,2.59842,9.75079L2.59842,6.5C2.59842,6.14143,2.88906,5.84921,3.24921,5.84921L3.9,5.84921C4.25857,5.84921,4.54921,6.13985,4.54921,6.5L4.54921,9.75079ZM7.8,9.75079C7.8,10.1094,7.50936,10.4,7.15079,10.4L6.5,10.4C6.14143,10.4,5.84921,10.1094,5.84921,9.75079L5.84921,3.24921C5.84921,2.89064,6.13985,2.59842,6.5,2.59842L7.15079,2.59842C7.50936,2.59842,7.8,2.88906,7.8,3.24921L7.8,9.75079ZM11.0492,9.75079C11.0492,10.1094,10.7586,10.4,10.4,10.4L9.74921,10.4C9.39064,10.4,9.09842,10.1094,9.09842,9.75079L9.09842,7.8C9.09842,7.44143,9.38906,7.14921,9.74921,7.14921L10.4,7.14921C10.7586,7.14921,11.0492,7.43985,11.0492,7.8L11.0492,9.75079Z" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4208"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4208)"><g><path d="M3.63382,1.14974L3.63382,10.8467C3.63382,11.4524,3.14564,11.9438,2.54385,11.9438L1.08997,11.9438C0.488178,11.9438,0,11.4524,0,10.8467L0,1.14974C0,0.858491,0.115388,0.579751,0.319535,0.374269C0.523682,0.168788,0.800612,0.0526459,1.08997,0.0526459L2.54385,0.0526459C2.83321,0.0526459,3.11014,0.168788,3.31429,0.374269C3.51843,0.579751,3.63382,0.860278,3.63382,1.14974ZM8.17832,1.14974L8.17832,10.8467C8.17832,11.1379,8.06293,11.4167,7.85878,11.6222C7.65463,11.8276,7.37771,11.9438,7.08835,11.9438L5.63447,11.9438C5.03267,11.9438,4.5445,11.4524,4.5445,10.8467L4.5445,1.14974C4.5445,0.858491,4.65988,0.579751,4.86403,0.374269C5.06818,0.168788,5.34511,0.0526459,5.63447,0.0526459L7.08835,0.0526459C7.69014,0.0526459,8.17832,0.544015,8.17832,1.14974ZM12.311,0.906735L13.9832,10.4572C14.0879,11.054,13.6921,11.6239,13.0992,11.7294L11.6666,11.9831C11.0737,12.0885,10.5074,11.6901,10.4026,11.0933L8.7304,1.54283C8.62567,0.946044,9.02153,0.376056,9.61445,0.270635L11.0453,0.0169097C11.6399,-0.0885112,12.2062,0.309944,12.311,0.906735ZM1.36157,2.79717C1.11127,2.79717,0.907124,3.00265,0.907124,3.25459C0.907124,3.50652,1.11127,3.71201,1.36157,3.71201L2.27047,3.71201C2.52077,3.71201,2.72492,3.50652,2.72492,3.25459C2.72492,3.00265,2.52077,2.79717,2.27047,2.79717L1.36157,2.79717ZM5.90607,3.71201C5.65577,3.71201,5.45162,3.91749,5.45162,4.16943C5.45162,4.42136,5.65577,4.62685,5.90607,4.62685L6.81497,4.62685C7.06527,4.62685,7.26942,4.42136,7.26942,4.16943C7.26942,3.91749,7.06527,3.71201,6.81497,3.71201L5.90607,3.71201ZM1.36157,4.62685C1.11127,4.62685,0.907124,4.83233,0.907124,5.08427C0.907124,5.3362,1.11127,5.54169,1.36157,5.54169L2.27047,5.54169C2.52077,5.54169,2.72492,5.3362,2.72492,5.08427C2.72492,4.83233,2.52077,4.62685,2.27047,4.62685L1.36157,4.62685ZM1.36157,6.45653C1.11127,6.45653,0.907124,6.66201,0.907124,6.91395C0.907124,7.16588,1.11127,7.37137,1.36157,7.37137L2.27047,7.37137C2.52077,7.37137,2.72492,7.16588,2.72492,6.91395C2.72492,6.66201,2.52077,6.45653,2.27047,6.45653L1.36157,6.45653ZM5.90607,5.54169C5.65577,5.54169,5.45162,5.74717,5.45162,5.99911C5.45162,6.25105,5.65577,6.45653,5.90607,6.45653L6.81497,6.45653C7.06527,6.45653,7.26942,6.25105,7.26942,5.99911C7.26942,5.74717,7.06527,5.54169,6.81497,5.54169L5.90607,5.54169Z" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="14" height="14" viewBox="0 0 14 14"><defs><clipPath id="master_svg0_7_4203"><rect x="0" y="0" width="14" height="14" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_7_4203)"><g><path d="M6.6914,8.51842L6.6914,11.8711C6.6914,11.9053,6.6914,12.0079,6.75865,12.0079L8.43991,13L0.672503,13C0.302626,13,0,12.6921,0,12.3158L0,0.68421C0,0.307895,0.302626,0,0.672503,0L10.4238,0C10.7937,0,11.0963,0.307895,11.0963,0.68421L11.0963,7.49211L9.78492,6.70526L9.61679,6.70526L6.75865,8.38158C6.6914,8.41579,6.6914,8.45,6.6914,8.51842ZM1.68126,4.51579Q1.64763,4.51579,1.64763,4.58421L1.68126,4.61842L1.54676,5.74737C1.51313,5.81579,1.58038,5.88421,1.68126,5.88421L2.82451,5.74737L2.89176,5.71316L5.64902,2.94211C5.71627,2.87368,5.71627,2.80526,5.64902,2.73684L4.64027,1.74474C4.57302,1.67632,4.50577,1.67632,4.43852,1.74474L1.68126,4.51579ZM9.75129,7.42368L12.0042,8.72368C12.0714,8.75789,12.0714,8.7921,12.0714,8.86053L12.0714,11.4947C12.0714,11.5289,12.0714,11.6316,12.0042,11.6316L9.75129,12.9316L9.58317,12.9316L7.33028,11.6316C7.26303,11.5974,7.26303,11.5632,7.26303,11.4947L7.26303,8.86053C7.26303,8.82632,7.26303,8.72368,7.33028,8.72368L9.58317,7.42368L9.75129,7.42368ZM5.8844,9.23684C5.98527,9.23684,6.05253,9.16842,6.05253,9.06579L6.05253,8.38158C6.05253,8.27895,5.98527,8.21053,5.8844,8.21053L1.51313,8.21053C1.41226,8.21053,1.34501,8.27895,1.34501,8.38158L1.34501,9.06579C1.34501,9.16842,1.41226,9.23684,1.51313,9.23684L5.8844,9.23684ZM8.47354,10.1947C8.47354,10.8789,9.01154,11.4263,9.68404,11.4263C10.3565,11.4263,10.8945,10.8789,10.8945,10.1947C10.8945,9.51053,10.3565,8.96316,9.68404,8.96316C9.01154,8.96316,8.47354,9.51053,8.47354,10.1947ZM4.53939,11.2895C4.64027,11.2895,4.70752,11.2211,4.70752,11.1184L4.70752,10.4342C4.70752,10.3316,4.64027,10.2632,4.53939,10.2632L1.51313,10.2632C1.41226,10.2632,1.34501,10.3316,1.34501,10.4342L1.34501,11.1184C1.34501,11.2211,1.41226,11.2895,1.51313,11.2895L4.53939,11.2895Z" fill-rule="evenodd" fill="#3D424C" fill-opacity="1" style="mix-blend-mode:passthrough"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

@ -23,7 +23,9 @@
</div>
<!-- 内容区 -->
<div class="content">
<div class="picturediv"></div>
<div class="picturediv">
<img v-if="form.fj" :src="form.fj" alt="项目代表性照片" style="width: 100%; height: auto;">
</div>
<div class="descriptionsdiv">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item v-for="(item, index) in descriptions" :key="index"
@ -37,144 +39,149 @@
</div>
</div>
<!-- 添加或编辑项目对话框 -->
<el-dialog :title="title" :visible.sync="dialogVisible" width="100rem" append-to-body>
<el-form :model="form" label-width="180px">
<el-row>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设地点">
<el-input v-model="form.jsdd"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位">
<el-input v-model="form.xmfrdwxz"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="重点发展产业">
<el-input v-model="form.prioritize"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位性质">
<el-select v-model="form.nature" placeholder="请选择">
<el-option label="国企" value="国企"></el-option>
<el-option label="民企" value="民企"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设模式">
<el-select v-model="form.jsms" placeholder="请选择">
<el-option label="新供地实施" value="新供地实施"></el-option>
<el-option label="其他模式" value="其他模式"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="施工单位">
<el-input v-model="form.sgdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目标签">
<el-input v-model="form.label"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设计单位">
<el-input v-model="form.sjdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目负责人">
<el-input v-model="form.projectLeader"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="总投资额(万元)">
<el-input v-model.number="form.ztze"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式">
<el-input v-model="form.phone"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属功能区">
<el-select v-model="form.ssgnq" placeholder="请选择">
<el-option label="高端制造与国际贸易区" value="高端制造与国际贸易区"></el-option>
<el-option label="其他区域" value="其他区域"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工许可证发放时间">
<el-input v-model="form.issuingTime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="建设起止时间">
<el-date-picker v-model="form.begainTime" type="daterange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="竣工验收时间">
<el-input v-model="form.acceptanceTime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="现状分类">
<el-select v-model="form.xzfl" placeholder="请选择">
<el-option label="已建" value="已建"></el-option>
<el-option label="在建" value="在建"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设进度">
<el-input v-model="form.constructionProgress"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="项目法人单位简介">
<el-input v-model="form.unitIntroduction" type="textarea" rows="4"></el-input>
</el-form-item>
<el-form-item label="项目简介">
<el-input v-model="form.introduction" type="textarea" rows="4"></el-input>
</el-form-item>
<el-form-item label="项目代表性照片">
<el-input v-model="form.introduction" type="textarea" rows="4"></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="saveForm"> </el-button>
</span>
</el-dialog>
<el-dialog :title="title" :visible.sync="dialogVisible" width="70rem" append-to-body>
<el-form :model="form" :rules="rules" ref="form" label-width="180px">
<el-row>
<el-col :span="12">
<el-form-item label="项目名称">
<el-input v-model="form.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设地点">
<el-input v-model="form.jsdd"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位">
<el-input v-model="form.xmfrdwxz"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="重点发展产业">
<el-input v-model="form.prioritize
"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位性质">
<el-select v-model="form.nature" placeholder="请选择" style="width: 22.5rem;">
<el-option label="国企" value="国企"></el-option>
<el-option label="民企" value="民企"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设模式">
<el-select v-model="form.jsms" placeholder="请选择" style="width: 22.5rem;">
<el-option label="新供地实施" value="新供地实施"></el-option>
<el-option label="其他模式" value="其他模式"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="施工单位">
<el-input v-model="form.sgdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目标签">
<el-input v-model="form.label"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设计单位">
<el-input v-model="form.sjdw"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目负责人">
<el-input v-model="form.projectLeader"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="总投资额(万元)">
<el-input v-model.number="form.ztze"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式">
<el-input v-model="form.phone"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属功能区">
<el-select v-model="form.ssgnq" placeholder="请选择" value-key="value" style="width: 22.5rem;">
<el-option v-for="dict in dict.type.ssgnq" :key="dict.value" :label="dict.label"
:value="parseInt(dict.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工许可证发放时间">
<el-input v-model="form.issuingTime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="建设起止时间">
<el-date-picker v-model="form.begainTime" type="daterange" range-separator=""
start-placeholder="开始日期" end-placeholder="结束日期" style="width: 22.5rem;"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="竣工验收时间">
<el-input v-model="form.acceptanceTime"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="现状分类">
<el-select v-model="form.xzfl" placeholder="请选择" style="width: 22.5rem;">
<el-option label="已建" value="已建"></el-option>
<el-option label="在建" value="在建"></el-option>
</el-select >
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设进度">
<el-input v-model="form.constructionProgress"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="项目法人单位简介">
<el-input v-model="form.unitIntroduction" type="textarea" rows="4"></el-input>
</el-form-item>
<el-form-item label="项目简介">
<el-input v-model="form.introduction" type="textarea" rows="4"></el-input>
</el-form-item>
<el-form-item label="项目代表性照片">
<ImageUpload />
<el-dialog :visible.sync="dialogVisibletwo">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="saveForm"> </el-button>
</span>
</el-dialog>
</div>
</template>
@ -183,6 +190,9 @@
import { getBasicInformationById, updateBasicInformation } from '@/api/ManageApi/index';
export default {
dicts: [
'ssgnq'
],
props: {
size: {
type: String,
@ -196,28 +206,35 @@ export default {
data() {
return {
descriptions: [],
dialogImageUrl: '',
dialogVisibletwo: false,
dialogVisible: false,
title: '编辑项目',
title: '编辑基本信息',
form: {
name: '',
xmfrdwxz: '',
nature: '',
nature: 0,
sgdw: '',
sjdw: '',
ztze: '',
ztze: 0,
ssgnq: '',
begainTime: '',
xzfl: '',
xzfl: 0,
jsdd: '',
prioritize: '',
jsms: '',
jsms: 0,
label: '',
projectLeader: '',
phone: '',
issuingTime: '',
acceptanceTime: '',
unitIntroduction: '',
introduction: ''
introduction: '',
fj: ''
},
rules: {
name: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
jsdd: [{ required: true, message: '建设地点不能为空', trigger: 'blur' }],
}
};
},
@ -225,58 +242,83 @@ export default {
this.fetchData();
},
methods: {
handleRemove(file, fileList) {
console.log(file, fileList);
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
fetchData() {
getBasicInformationById(this.id)
.then(response => {
const data = response.data;
//
data.nature = String(data.nature);
data.jsms = String(data.jsms);
data.ssgnq = String(data.ssgnq);
data.xzfl = String(data.xzfl);
this.descriptions = [
{ label: '项目名称', value: data.name },
{ label: '项目法人单位', value: data.xmfrdwxz },
{ label: '项目法人单位性质', value: data.nature },
{ label: '施工单位', value: data.sgdw },
{ label: '设计单位', value: data.sjdw },
{ label: '总投资额(万元)', value: data.ztze },
{ label: '所属功能区', value: data.ssgnq },
{ label: '建设起止时间', value: data.begainTime },
{ label: '现状分类', value: data.xzfl },
{ label: '建设地点', value: data.jsdd },
{ label: '重点发展产业', value: data.prioritize },
{ label: '建设模式', value: data.jsms },
{ label: '项目标签', value: data.label },
{ label: '项目负责人', value: data.projectLeader },
{ label: '联系方式', value: data.phone },
{ label: '施工许可证发放时间', value: data.issuingTime },
{ label: '竣工验收时间', value: data.acceptanceTime },
{ label: '建设进度', value: data.acceptanceTime },
{ label: '项目法人单位简介', value: data.unitIntroduction },
{ label: '项目简介', value: data.introduction }
];
//
this.descriptions = this.formatDescriptions(data);
this.form = { ...data };
})
.catch(error => {
console.error('There was an error fetching the data!', error);
console.error('数据获取失败:', error);
});
},
/** 导出按钮操作 */
//
formatDescriptions(data) {
return [
{ label: '项目名称', value: data.name },
{ label: '项目法人单位', value: data.xmfrdwxz },
{ label: '项目法人单位性质', value: data.nature },
{ label: '施工单位', value: data.sgdw },
{ label: '设计单位', value: data.sjdw },
{ label: '总投资额(万元)', value: data.ztze },
{ label: '所属功能区', value: data.ssgnq },
{ label: '建设起止时间', value: data.begainTime },
{ label: '现状分类', value: data.xzfl },
{ label: '建设地点', value: data.jsdd },
{ label: '重点发展产业', value: data.prioritize },
{ label: '建设模式', value: data.jsms },
{ label: '项目标签', value: data.label },
{ label: '项目负责人', value: data.projectLeader },
{ label: '联系方式', value: data.phone },
{ label: '施工许可证发放时间', value: data.issuingTime },
{ label: '竣工验收时间', value: data.acceptanceTime },
{ label: '建设进度', value: data.acceptanceTime },
{ label: '项目法人单位简介', value: data.unitIntroduction },
{ label: '项目简介', value: data.introduction }
];
},
//
handleExport() {
this.download('system/post/export', {
...this.queryParams
}, `post_${new Date().getTime()}.xlsx`);
},
//
edit() {
this.dialogVisible = true;
},
//
saveForm() {
const formData = {
this.$refs.form.validate(valid => {
if (valid) {
const formData = this.prepareFormData();
updateBasicInformation(formData) //
.then(response => {
this.$message.success('数据保存成功!');
this.dialogVisible = false;
this.fetchData(); //
})
.catch(error => {
console.error('数据保存失败:', error);
this.$message.error('数据保存失败,请重试!');
});
} else {
this.$message.warning('请填写完整信息!');
}
});
},
//
prepareFormData() {
return {
id: this.id,
name: this.form.name,
xmfrdwxz: this.form.xmfrdwxz,
@ -284,8 +326,8 @@ export default {
sgdw: this.form.sgdw,
sjdw: this.form.sjdw,
ztze: parseFloat(this.form.ztze),
ssgnq: parseInt(this.form.ssgnq),
begainTime: this.form.begainTime ? this.formatDateRange(this.form.begainTime) : '',
ssgnq: '',
begainTime: this.formatDateRange(this.form.begainTime),
xzfl: parseInt(this.form.xzfl),
jsdd: this.form.jsdd,
prioritize: this.form.prioritize,
@ -297,41 +339,43 @@ export default {
acceptanceTime: this.form.acceptanceTime,
unitIntroduction: this.form.unitIntroduction,
introduction: this.form.introduction,
createBy: '',
createId: 0,
createTime: '',
fj: '',
updateBy: '',
updateId: 0,
updateTime: ''
fj: this.form.fj,
createBy: '',
createId: 0,
createTime: '',
updateBy: '',
updateId: 0,
updateTime: ''
};
console.log('Sending form data:', formData);
updateBasicInformation(formData)
.then(response => {
console.log('Data saved successfully:', response.data);
this.$message.success('数据保存成功!');
this.dialogVisible = false;
//
this.fetchData();
})
.catch(error => {
console.error('There was an error saving the data!', error);
this.$message.error('数据保存失败,请重试!');
});
},
//
formatDateRange(dateRange) {
if (!dateRange || dateRange.length !== 2) return '';
const startDate = dateRange[0].toISOString().split('T')[0];
const endDate = dateRange[1].toISOString().split('T')[0];
return `${startDate}${endDate}`;
},
//
handleAttachmentSuccess(response, file) {
this.form.fj = response.url;
},
//
beforeAttachmentUpload(file) {
const isImage = file.type.startsWith('image/');
const isLt2M = file.size / 1024 / 1024 < 2;
if (!isImage) this.$message.error('只能上传图片文件!');
if (!isLt2M) this.$message.error('上传图片大小不能超过 2MB!');
return isImage && isLt2M;
},
//
removeAttachment() {
this.form.fj = '';
}
}
};
</script>
<style scoped>
.container {
display: flex;
@ -384,11 +428,11 @@ export default {
.picturediv {
width: 18.31rem;
height: 25rem;
background-color: lightblue;
/* background-color: lightblue; */
}
.descriptionsdiv {
width: 79rem;
width: calc(100% - 18.31rem);
margin-left: 1rem;
height: auto;
}
@ -396,4 +440,10 @@ export default {
.two-row-item {
height: auto;
}
.tanchuang {
width: 70rem;
height: auto;
padding: 2rem;
}
</style>

@ -1,176 +1,308 @@
<template>
<div class="container">
<!-- 顶部信息 -->
<div class="containertop">
<div class="topleft">
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>规划信息</span>
</div>
<div class="topright">
<el-button type="primary" size="medium" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
编辑
</el-button>
<el-button type="primary" size="medium" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
导出
</el-button>
</div>
<!-- 顶部信息 -->
<div class="containertop">
<div class="topleft">
<img src="../../../assets/images/detailsicon/1.png" alt="">
<span>规划信息</span>
</div>
<!-- 内容区 -->
<div class="content">
<div class="descriptionsdiv">
<el-descriptions class="margin-top" :column="4" border>
<el-descriptions-item>
<template slot="label">
总用地面积(平方米)
</template>
THi SIP高端装备工业港
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
容积率
</template>
泰凌医药中国有限公司
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
总建筑面积平方米
</template>
项目法人单位性质
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
标准层建筑面积平方米
</template>
kooriookami
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
计容积率建筑面积(平方米)
</template>
18100000000
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
建筑密度(%)
</template>
苏州市
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
绿地率(%)
</template>
kooriookami
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
建筑栋数
</template>
18100000000
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
地上建筑面积(平方米)
</template>
苏州市
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
地下建筑面积(平方米)
</template>
kooriookami
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最高建筑层数
</template>
18100000000
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最高建筑高度()
</template>
苏州市
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
机动车停车位()
</template>
kooriookami
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
非机动车停车位()
</template>
18100000000
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
防火等级
</template>
苏州市
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
规划文件
</template>
kooriookami
</el-descriptions-item>
</el-descriptions>
</div>
<div class="topright">
<el-button v-if="!isEditing" type="primary" size="medium" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="edit">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
编辑
</el-button>
<el-button v-else type="primary" size="medium" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="save">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="保存" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
保存
</el-button>
<el-button type="primary" size="medium" plain style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;" @click="handleExport">
<img src="../../../assets/images/detailsicon/icon-dc@2x.png" alt="编辑" style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
导出
</el-button>
</div>
</div>
<!-- 内容区 -->
<div class="content">
<div class="descriptionsdiv">
<el-descriptions class="margin-top" :column="4" border>
<el-descriptions-item>
<template slot="label">
总用地面积(平方米)
</template>
<el-input v-if="isEditing" v-model.number="form.zydmj" style="width: 100%;"></el-input>
<span v-else>{{ form.zydmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
容积率
</template>
<el-input v-if="isEditing" v-model.number="form.rjl" style="width: 100%;"></el-input>
<span v-else>{{ form.rjl }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
总建筑面积平方米
</template>
<el-input v-if="isEditing" v-model.number="form.zjzmj" style="width: 100%;"></el-input>
<span v-else>{{ form.zjzmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
标准层建筑面积平方米
</template>
<el-input v-if="isEditing" v-model.number="form.bzcjzmj" style="width: 100%;"></el-input>
<span v-else>{{ form.bzcjzmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
计容积率建筑面积(平方米)
</template>
<el-input v-if="isEditing" v-model.number="form.jrjljzmj" style="width: 100%;"></el-input>
<span v-else>{{ form.jrjljzmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
建筑密度(%)
</template>
<el-input v-if="isEditing" v-model.number="form.jzmd" style="width: 100%;"></el-input>
<span v-else>{{ form.jzmd }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
绿地率(%)
</template>
<el-input v-if="isEditing" v-model.number="form.ldl" style="width: 100%;"></el-input>
<span v-else>{{ form.ldl }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
建筑栋数
</template>
<el-input v-if="isEditing" v-model.number="form.jzds" style="width: 100%;"></el-input>
<span v-else>{{ form.jzds }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
地上建筑面积(平方米)
</template>
<el-input v-if="isEditing" v-model.number="form.dsjzmj" style="width: 100%;"></el-input>
<span v-else>{{ form.dsjzmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
地下建筑面积(平方米)
</template>
<el-input v-if="isEditing" v-model.number="form.dxjzmj" style="width: 100%;"></el-input>
<span v-else>{{ form.dxjzmj }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最高建筑层数
</template>
<el-input v-if="isEditing" v-model.number="form.zgjzcs" style="width: 100%;"></el-input>
<span v-else>{{ form.zgjzcs }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最高建筑高度()
</template>
<el-input v-if="isEditing" v-model.number="form.zgjzgd" style="width: 100%;"></el-input>
<span v-else>{{ form.zgjzgd }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
机动车停车位()
</template>
<el-input v-if="isEditing" v-model.number="form.jdctcw" style="width: 100%;"></el-input>
<span v-else>{{ form.jdctcw }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
非机动车停车位()
</template>
<el-input v-if="isEditing" v-model.number="form.fjdctcw" style="width: 100%;"></el-input>
<span v-else>{{ form.fjdctcw }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
防火等级
</template>
<el-input v-if="isEditing" v-model="form.fhjd" style="width: 100%;"></el-input>
<span v-else>{{ form.fhjd }}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
规划文件
</template>
<el-input v-if="isEditing" v-model="form.ghwj" style="width: 100%;"></el-input>
<span v-else>{{ form.ghwj }}</span>
</el-descriptions-item>
</el-descriptions>
</div>
</div>
</div>
</template>
<script>
export default {
</template>
<script>
import { getProgrammeInformationById, updateProgrammeInformation } from '@/api/ManageApi/index';
export default {
props: {
size: {
type: String,
default: ''
default: ''
},
id: {
type: [Number, String],
required: true
}
},
data() {
return {
isEditing: false,
form: {
bzcjzmj: 0,
createBy: '',
createId: 0,
createTime: '',
dsjzmj: 0,
dxjzmj: 0,
fjdctcw: 0,
ghwj: '',
id: 0,
jdctcw: 0,
jrjljzmj: 0,
jzds: 0,
jzmd: 0,
ldl: 0,
rjl: 0,
updateBy: '',
updateId: 0,
updateTime: '',
xmId: 0,
zgjzcs: 0,
zgjzgd: 0,
zjzmj: 0,
zydmj: 0
},
rules: {
zydmj: [{ required: true, message: '总用地面积不能为空', trigger: 'blur' }],
rjl: [{ required: true, message: '容积率不能为空', trigger: 'blur' }],
zjzmj: [{ required: true, message: '总建筑面积不能为空', trigger: 'blur' }],
bzcjzmj: [{ required: true, message: '标准层建筑面积不能为空', trigger: 'blur' }],
jrjljzmj: [{ required: true, message: '计容积率建筑面积不能为空', trigger: 'blur' }],
jzmd: [{ required: true, message: '建筑密度不能为空', trigger: 'blur' }],
ldl: [{ required: true, message: '绿地率不能为空', trigger: 'blur' }],
jzds: [{ required: true, message: '建筑栋数不能为空', trigger: 'blur' }],
dsjzmj: [{ required: true, message: '地上建筑面积不能为空', trigger: 'blur' }],
dxjzmj: [{ required: true, message: '地下建筑面积不能为空', trigger: 'blur' }],
zgjzcs: [{ required: true, message: '最高建筑层数不能为空', trigger: 'blur' }],
zgjzgd: [{ required: true, message: '最高建筑高度不能为空', trigger: 'blur' }],
jdctcw: [{ required: true, message: '机动车停车位不能为空', trigger: 'blur' }],
fjdctcw: [{ required: true, message: '非机动车停车位不能为空', trigger: 'blur' }],
fhjd: [{ required: true, message: '防火等级不能为空', trigger: 'blur' }],
ghwj: [{ required: true, message: '规划文件不能为空', trigger: 'blur' }]
}
};
},
created() {
this.fetchData();
},
methods: {
//
fetchData() {
getProgrammeInformationById(this.id)
.then(response => {
const data = response.data;
this.form = { ...data };
})
.catch(error => {
console.error('数据获取失败:', error);
});
},
//
handleExport() {
this.download('system/post/export', {
...this.queryParams
}, `post_${new Date().getTime()}.xlsx`);
},
//
edit() {
this.isEditing = true;
},
//
save() {
this.$refs.form.validate(valid => {
if (valid) {
const formData = this.prepareFormData(this.form);
updateProgrammeInformation(formData)
.then(response => {
this.$message.success('数据保存成功!');
this.isEditing = false;
this.fetchData(); //
})
.catch(error => {
console.error('数据保存失败:', error);
this.$message.error('数据保存失败,请重试!');
});
} else {
this.$message.warning('请填写完整信息!');
}
});
},
//
prepareFormData(formData) {
return {
...formData,
createBy: '',
createId: 0,
createTime: '',
updateBy: '',
updateId: 0,
updateTime: ''
};
}
}
}
</script>
<style scoped>
.container {
};
</script>
<style scoped>
.container {
display: flex;
flex-direction: column;
width: 100%;
background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
}
.content {
}
.content {
padding: 1rem;
display: flex;
}
.containertop {
}
.containertop {
height: auto;
display: flex;
justify-content: space-between;
padding: .7rem 0;
padding: .5rem;
border-bottom: 1px solid #E5E5E5;
}
.topleft {
}
.topleft {
width: 8rem;
display: flex;
gap: 0.4rem;
align-items: center;
}
.topleft img {
}
.topleft img {
width: 0.81rem;
height: 0.81rem;
}
.topleft span {
}
.topleft span {
width: auto;
height: 0.88rem;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
@ -181,19 +313,21 @@ export default {
text-align: right;
font-style: normal;
text-transform: none;
}
.picturediv {
}
.picturediv {
width: 18.31rem;
height: 25.31rem;
background-color: lightblue;
}
.descriptionsdiv{
}
.descriptionsdiv {
width: 100%;
margin-left: 1rem;
height: auto;
}
.two-row-item{
}
.two-row-item {
height: 20rem;
}
</style>
}
</style>

@ -7,9 +7,9 @@
<span>项目画像</span>
</div>
<div class="topright">
<el-button type="primary" size="medium" plain
<el-button type="primary" size="medium" plain
style="border: none;background-color: rgba(43,98,241,0.1);color: #2B62F1;">
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
<img src="../../../assets/images/detailsicon/icon-bj@2x.png" alt="编辑"
style="width: 0.6rem; height: 0.6rem; margin-right: 4px;">
编辑
</el-button>
@ -18,30 +18,58 @@
<!-- 内容区 -->
<div class="content">
<div class="picturediv">
<div ref="chart" style="width: 30rem; height: 25rem; margin-left: 2rem;"></div>
<div ref="chart" style="width: 30rem; height: 28rem; margin-left: 2rem;"></div>
</div>
<div class="descriptionsdiv">
<div>评价等级</div>
<div class="tablehead">
<img src="@/assets/images/icon-pjdj@2x.png" alt="">
<span>评价等级</span>
<span style="margin-top: .3rem;">12/60</span>
</div>
<div class="tablebody">
<el-descriptions direction="vertical" :column="4" border>
<el-descriptions-item label="评价要素">kooriookami</el-descriptions-item>
<el-descriptions-item label="评价排名">18100000000</el-descriptions-item>
</el-descriptions>
<div class="table-container">
<div class="table-column">
<div class="table-header">评价要素</div>
<div v-for="(evaluation, index) in evaluations" :key="index" class="table-row">
{{ evaluation.element }}
</div>
</div>
<div class="table-column">
<div class="table-header">评价排名</div>
<div v-for="(evaluation, index) in evaluations" :key="index" class="table-row">
{{ evaluation.ranking }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<script>
import * as echarts from 'echarts';
export default {
props: {
size: {
type: String,
default: ''
}
size: {
type: String,
default: ''
}
},
data() {
return {
size: '',
evaluations: [
{ element: '总投资额', ranking: '100' },
{ element: '层数', ranking: '20' },
{ element: '首层层高', ranking: '5' },
{ element: '二层及以上层高', ranking: '6' },
{ element: '首层地面荷载', ranking: '7' },
{ element: '二层及以上露面荷载', ranking: '8' }
]
};
},
mounted() {
this.initChart();
@ -52,16 +80,12 @@ export default {
const myChart = echarts.init(chartDom);
const option = {
title: {
text: '',
left: 'center'
},
tooltip: {},
legend: {
data: ['本项目', '中位数'],
top: '0%',
},
radar: {
// shape: 'circle',
center: ['50%', '55%'],
indicator: [
{ name: '总投资额', max: 6500 },
{ name: '首层层高', max: 16000 },
@ -78,11 +102,45 @@ export default {
data: [
{
value: [4200, 3000, 20000, 35000, 50000, 18000],
name: '本项目'
name: '本项目',
itemStyle: {
color: '#2B62F1' // 线
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(43, 98, 241, 0.3)' //
}, {
offset: 1, color: 'rgba(43, 98, 241, 0)' //
}]
}
}
},
{
value: [5000, 14000, 28000, 26000, 42000, 21000],
name: '中位数'
name: '中位数',
itemStyle: {
color: '#FF9900' // 线
},
areaStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'rgba(255, 153, 0, 0.3)' //
}, {
offset: 1, color: 'rgba(255, 153, 0, 0)' //
}]
}
}
}
]
}
@ -94,6 +152,7 @@ export default {
}
};
</script>
<style scoped>
.container {
display: flex;
@ -157,7 +216,57 @@ export default {
.two-row-item {
height: 20rem;
}
.tablebody {
margin-top: 2rem;
}
</style>
.table-container {
display: flex;
width: 100%;
}
.table-column {
flex: 1;
}
.table-header {
font-weight: bold;
text-align: center;
background-color: #F2F4F7;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 600;
font-size: 0.88rem;
color: #3D3D3D;
line-height: 2.19rem;
text-align: center;
font-style: normal;
text-transform: none;
padding: .3rem 0;
}
.table-row {
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 400;
font-size: 0.88rem;
color: #3D424C;
line-height: 2.56rem;
text-align: center;
font-style: normal;
text-transform: none;
padding: .3rem 0;
}
.tablehead {
width: auto;
height: 2.38rem;
display: flex;
align-items: center;
gap: .3rem;
}
.tablehead img {
width: 1.13rem;
height: 1.13rem;
}
</style>

@ -56,7 +56,7 @@
</div>
<!-- 右侧地图缩略图 -->
<div class="map-thumbnail" >
<!-- <div class="map-thumbnail" >
<div>
<div class="mapbox">
<MapComponent></MapComponent>
@ -65,7 +65,7 @@
内部
</div>
</div>
</div>
</div> -->
</div>
<!-- 编辑/新增对话框 -->

@ -0,0 +1,350 @@
<template>
<div class="L-assets-info">
<div class="assets-info-top">
<el-row style="margin: 10px 0;">
<span class="top-title-box">基本信息</span>
</el-row>
<div class="assets-info-box">
<el-form :model="form" :rules="rules" ref="form" label-width="170px" class="demo-ruleForm" label-position="right" :disabled="disabled">
<el-row>
<el-col :span="12">
<el-form-item label="项目名称" prop="name">
<el-input v-model="form.name" placeholder="请输入项目名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设地点" prop="jsdd">
<el-input v-model="form.jsdd" placeholder="请输入建设地点"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位" prop="xmfrdwxz">
<el-input v-model="form.xmfrdwxz" placeholder="请输入项目法人单位"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="重点发展产业" prop="prioritize">
<el-input v-model="form.prioritize" placeholder="请输入重点发展产业"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="项目法人单位性质" prop="nature">
<el-select v-model="form.nature" placeholder="请选择项目法人单位性质" style="width: 22.5rem;">
<el-option label="国企" value="国企"></el-option>
<el-option label="民企" value="民企"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设模式" prop="jsms">
<el-select v-model="form.jsms" placeholder="请选择建设模式" style="width: 22.5rem;">
<el-option label="新供地实施" value="新供地实施"></el-option>
<el-option label="其他模式" value="其他模式"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="施工单位" prop="sgdw">
<el-input v-model="form.sgdw" placeholder="请输入施工单位"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目标签" prop="label">
<el-input v-model="form.label" placeholder="请输入项目标签"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设计单位" prop="sjdw">
<el-input v-model="form.sjdw" placeholder="请输入设计单位"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="项目负责人" prop="projectLeader">
<el-input v-model="form.projectLeader" placeholder="请输入项目负责人"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="总投资额(万元)" prop="ztze">
<el-input v-model.number="form.ztze" placeholder="请输入总投资额"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系方式" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属功能区" prop="ssgnq">
<el-select v-model="form.ssgnq" placeholder="请选择所属功能区" value-key="value" style="width: 22.5rem;">
<el-option v-for="dict in dict.type.ssgnq" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="施工许可证发放时间" prop="issuingTime">
<el-input v-model="form.issuingTime" placeholder="请输入施工许可证发放时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="建设起止时间" prop="begainTime">
<el-date-picker v-model="form.begainTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 22.5rem;"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="竣工验收时间" prop="acceptanceTime">
<el-input v-model="form.acceptanceTime" placeholder="请输入竣工验收时间"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="现状分类" prop="xzfl">
<el-select v-model="form.xzfl" placeholder="请选择现状分类" style="width: 22.5rem;">
<el-option label="已建" value="已建"></el-option>
<el-option label="在建" value="在建"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="建设进度" prop="constructionProgress">
<el-input v-model="form.constructionProgress" placeholder="请输入建设进度"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="项目法人单位简介" prop="unitIntroduction">
<el-input v-model="form.unitIntroduction" type="textarea" resize="none" placeholder="请输入项目法人单位简介" :rows="5"></el-input>
</el-form-item>
<el-form-item label="项目简介" prop="introduction">
<el-input v-model="form.introduction" type="textarea" resize="none" placeholder="请输入项目简介" :rows="5"></el-input>
</el-form-item>
<el-form-item label="项目代表性照片">
<ImageUpload @update-fj="updateFj" />
<el-dialog :visible.sync="dialogVisibletwo">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-row style="margin: 10px 0 ;padding-bottom: 50px; text-align: center;" v-if="pageType !== 'look'">
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading">保存</el-button>
</el-row>
</el-form>
<el-row style="margin: 10px 0 ;padding-bottom: 50px; text-align: center;" v-if="pageType == 'look'">
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import { getBasicInformationById, updateBasicInformation, createBasicInformation } from '@/api/ManageApi/index';
import ImageUpload from '@/components/ImageUpload';
export default {
dicts: ['ssgnq'],
props: ['pageType', 'id', 'queryData'],
data() {
return {
form: {
name: '',
xmfrdwxz: '',
nature: '',
sgdw: '',
sjdw: '',
ztze: 0,
ssgnq: '',
begainTime: '',
xzfl: '',
jsdd: '',
prioritize: '',
jsms: '',
label: '',
projectLeader: '',
phone: '',
issuingTime: '',
acceptanceTime: '',
unitIntroduction: '',
introduction: '',
fj: ''
},
rules: {
name: [{ required: true, message: '项目名称不能为空', trigger: 'blur' }],
jsdd: [{ required: true, message: '建设地点不能为空', trigger: 'blur' }],
xmfrdwxz: [{ required: true, message: '项目法人单位不能为空', trigger: 'blur' }],
prioritize: [{ required: true, message: '重点发展产业不能为空', trigger: 'blur' }],
nature: [{ required: true, message: '项目法人单位性质不能为空', trigger: 'change' }],
jsms: [{ required: true, message: '建设模式不能为空', trigger: 'change' }],
sgdw: [{ required: true, message: '施工单位不能为空', trigger: 'blur' }],
label: [{ required: true, message: '项目标签不能为空', trigger: 'blur' }],
sjdw: [{ required: true, message: '设计单位不能为空', trigger: 'blur' }],
projectLeader: [{ required: true, message: '项目负责人不能为空', trigger: 'blur' }],
ztze: [{ required: true, message: '总投资额不能为空', trigger: 'blur' }],
ssgnq: [{ required: true, message: '所属功能区不能为空', trigger: 'change' }],
begainTime: [{ required: true, message: '建设起止时间不能为空', trigger: 'change' }],
xzfl: [{ required: true, message: '现状分类不能为空', trigger: 'change' }],
constructionProgress: [{ required: true, message: '建设进度不能为空', trigger: 'blur' }],
unitIntroduction: [{ required: true, message: '项目法人单位简介不能为空', trigger: 'blur' }],
introduction: [{ required: true, message: '项目简介不能为空', trigger: 'blur' }]
},
loading: false,
disabled: false,
dialogImageUrl: '',
dialogVisibletwo: false
};
},
mounted() {
if (this.pageType === 'look') {
this.getInfo(this.id);
this.disabled = true;
} else if (this.pageType === 'change') {
this.getInfo(this.id);
this.disabled = false;
}
},
methods: {
getInfo(id) {
getBasicInformationById(id)
.then(response => {
this.form = response.data;
})
.catch(error => {
console.error('数据获取失败:', error);
});
},
//
newAssets() {
this.$refs['form'].validate((valid) => {
if (valid) {
this.loading = true;
const formData = this.prepareFormData();
if (this.pageType === 'change') {
updateBasicInformation(formData)
.then(response => {
this.loading = false;
this.$message.success('修改成功');
this.$router.push({ name: 'ProjectDetails', params: this.queryData });
})
.catch(error => {
console.error('修改失败:', error);
this.$message.error('修改失败,请重试!');
this.loading = false;
});
} else {
createBasicInformation(formData)
.then(response => {
this.loading = false;
this.$message.success('新增成功');
this.$router.push({ name: 'ProjectDetails', params: this.queryData });
})
.catch(error => {
console.error('新增失败:', error);
this.$message.error('新增失败,请重试!');
this.loading = false;
});
}
} else {
this.$message.warning('请填写完整信息!');
}
});
},
sendBack() {
this.$router.push({ name: 'ProjectDetails', params: this.queryData });
},
prepareFormData() {
return {
id: this.id,
name: this.form.name,
xmfrdwxz: this.form.xmfrdwxz,
nature: this.form.nature,
sgdw: this.form.sgdw,
sjdw: this.form.sjdw,
ztze: parseFloat(this.form.ztze),
ssgnq: parseInt(this.form.ssgnq),
begainTime: this.formatDateRange(this.form.begainTime),
xzfl: this.form.xzfl,
jsdd: this.form.jsdd,
prioritize: this.form.prioritize,
jsms: this.form.jsms,
label: this.form.label,
projectLeader: this.form.projectLeader,
phone: this.form.phone,
issuingTime: this.form.issuingTime,
acceptanceTime: this.form.acceptanceTime,
unitIntroduction: this.form.unitIntroduction,
introduction: this.form.introduction,
fj: this.form.fj,
createBy: '',
createId: 0,
createTime: '',
updateBy: '',
updateId: 0,
updateTime: ''
};
},
formatDateRange(dateRange) {
if (!dateRange || dateRange.length !== 2) return '';
const startDate = dateRange[0].toISOString().split('T')[0];
const endDate = dateRange[1].toISOString().split('T')[0];
return `${startDate}${endDate}`;
},
updateFj(url) {
this.form.fj = url;
}
}
};
</script>
<style scoped>
.L-assets-info {
display: flex;
flex-direction: column;
width: 100%;
background-color: #FFFFFF;
box-shadow: 0rem 0.13rem 0.63rem 0rem rgba(177, 177, 177, 0.1);
border-radius: 0.5rem 0.5rem 0.5rem 0.5rem;
}
.assets-info-top {
height: auto;
display: flex;
justify-content: space-between;
padding: .7rem 0;
padding: .5rem;
border-bottom: 1px solid #E5E5E5;
}
.top-title-box {
width: auto;
height: 0.88rem;
font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
font-weight: 500;
font-size: 0.88rem;
color: #3D424C;
line-height: 0.88rem;
text-align: right;
font-style: normal;
text-transform: none;
}
.assets-info-box {
padding: 1rem;
}
.demo-ruleForm {
width: 100%;
}
</style>
Loading…
Cancel
Save