2
3

techinfo.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. <template>
  2. <div>
  3. <el-form class="formDataInfo" label-width="137px" ref="EntityForm" :model="formData" :rules="rulesform" :disabled="disabled">
  4. <el-row>
  5. <!--<el-col :span="8">
  6. <el-form-item label="DEMO">
  7. <el-select ref="selectWellNo" v-model="formData.WellNoId" filterable placeholder="请选择" style="width: 100%">
  8. <el-option
  9. v-for="item in wellNoOptions"
  10. :key="item.Id"
  11. :label="item.Value"
  12. :value="item.Id">
  13. </el-option>
  14. </el-select>
  15. </el-form-item>
  16. </el-col>-->
  17. <el-col :span="16">
  18. <el-form-item label="供方名称" prop="SupplierName" >
  19. <!-- <el-autocomplete class="inline-input" v-model="formData.SupplierName" :readonly="companyReadonly" :fetch-suggestions="querySearch"
  20. :maxlength="255" placeholder="请输入内容" style="width: 100%" @select="handleSelect" v-if="authUser && authUser.Profile.IsCompanyUser == 1">
  21. </el-autocomplete> -->
  22. <el-input v-model="formData.SupplierName" :maxlength="255" :readonly="!canUpdateSupplier" placeholder="请输入" style="width: 100%" v-if="authUser && authUser.Profile.IsCompanyUser == 1">
  23. </el-input>
  24. <el-input v-model="formData.SupplierName" :maxlength="255" @change="inputCompanyName" :readonly="!canUpdateSupplier" placeholder="请输入" style="width: 100%" v-if="!authUser || authUser.Profile.IsCompanyUser == 0">
  25. </el-input>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :span="8" v-if="this.formData.Status == '7'||this.formData.Status == '8'||appendStatus">
  29. <el-form-item label="准入编码">
  30. <el-input v-model="formData.AccessCardNo" :readonly="this.formData.Status != '7'" placeholder="请输入" style="width: 100%">
  31. </el-input>
  32. </el-form-item>
  33. </el-col>
  34. </el-row>
  35. <el-row>
  36. <el-col :span="8">
  37. <el-form-item label="单位关系">
  38. <el-select ref="SpecType" v-model="formData.SpecTypeCode" @change="currentSel"
  39. placeholder="请选择" style="width: 100%" :disabled="this.formData.Status > '0'&&!appendStatus">
  40. <el-option v-for="item in UnitRelationOptions" :key="item.Id" :label="item.Key"
  41. :value="item.Value">
  42. </el-option>
  43. </el-select>
  44. </el-form-item>
  45. </el-col>
  46. <el-col :span="8">
  47. <el-form-item label="国家" prop="Country">
  48. <el-select v-model="formData.Country"
  49. :disabled="!canUpdateSupplier"
  50. filterable
  51. placeholder="请选择"
  52. style="width: 100%">
  53. <el-option v-for="item in countryListOptions"
  54. :key="item.key"
  55. :label="item.value"
  56. :value="item.value">
  57. <span style="float: left">{{ item.value }}</span>
  58. <span style="float: right; color: #8492a6; font-size: 13px">{{ item.label }}</span>
  59. </el-option>
  60. </el-select>
  61. </el-form-item>
  62. </el-col>
  63. <el-col :span="8">
  64. <el-form-item label="准入方式">
  65. <el-select ref="SpecType" v-model="formData.InStyle" :disabled="this.formData.Status > '0'&&!appendStatus"
  66. placeholder="请选择" style="width: 100%">
  67. <el-option v-for="item in InOptions" :key="item.Id" :label="item.Key" v-if="item.Value != '2' && item.Value != '3'"
  68. :value="item.Value">
  69. </el-option>
  70. </el-select>
  71. </el-form-item>
  72. </el-col>
  73. </el-row>
  74. <el-row>
  75. <el-col :span="8">
  76. <el-form-item label="证件合一">
  77. <el-select v-model="formData.CredentialFlag" placeholder="请选择" :disabled="!canUpdateSupplier" @change="showorhid" style="width: 100%">
  78. <el-option v-for="item in selectoptions" :key="item.value" :label="item.label" :value="item.value">
  79. </el-option>
  80. </el-select>
  81. </el-form-item>
  82. </el-col>
  83. <el-col :span="8">
  84. <el-form-item label="统一社会信用代码" prop="CommercialNo" >
  85. <el-input v-model="formData.CommercialNo" maxlength="50" :readonly="!authUser || parseInt(authUser.Profile.IsCompanyUser) === 1 || (parseInt(authUser.Profile.IsCompanyUser) === 0 && formData.Id > 0 && formData.Status > 0)" placeholder="请输入" style="width: 100%">
  86. </el-input>
  87. </el-form-item>
  88. </el-col>
  89. <el-col :span="8" v-if="this.formData.Status == '8'||appendStatus">
  90. <el-form-item label="有效期">
  91. <el-date-picker
  92. v-model="formData.ApplyTime"
  93. :disabled="this.formData.Status == '8'"
  94. type="date"
  95. format="yyyy 年 MM 月 dd 日"
  96. value-format="yyyy-MM-dd"
  97. placeholder="选择有效期"
  98. style="width: 100%">
  99. </el-date-picker>
  100. </el-form-item>
  101. </el-col>
  102. </el-row>
  103. <el-row>
  104. <el-col :span="8">
  105. <el-form-item label="税务登记证编号" prop="CountryTaxNo" v-if="showorhidflag=='show'" >
  106. <el-input v-model="formData.CountryTaxNo" maxlength="50" :readonly="!canUpdateSupplier" placeholder="请输入" style="width: 100%">
  107. </el-input>
  108. </el-form-item>
  109. </el-col>
  110. <el-col :span="8">
  111. <el-form-item label="组织机构代码" prop="OrganCode" v-if="showorhidflag=='show'" >
  112. <el-input v-model="formData.OrganCode" maxlength="50" :readonly="!canUpdateSupplier" placeholder="请输入" style="width: 100%">
  113. </el-input>
  114. </el-form-item>
  115. </el-col>
  116. </el-row>
  117. <el-row>
  118. <!--<el-col :span="8">
  119. <el-form-item label="税务登记证地税编号">
  120. <el-input v-model="formData.LocalTaxNo" placeholder="请输入" style="width: 100%"></el-input>
  121. </el-form-item>
  122. </el-col>-->
  123. <el-col :span="16">
  124. <el-form-item label="注册地址" prop="Province" >
  125. <el-row>
  126. <el-col :span="10">
  127. <el-cascader ref="cascaderAdd" :options="countryoptions" :props="countryprops" maxlength="20" placeholder="省市区"
  128. v-model="CityAry" style="width: 100%" @change="handleAreaChange" :disabled="!canUpdateSupplier" filterable>
  129. </el-cascader>
  130. </el-col>
  131. <el-col :span="14">
  132. <el-input v-model="formData.Address" maxlength="500" :readonly="!canUpdateSupplier" placeholder="详细地址" style="width: 100%">
  133. </el-input>
  134. </el-col>
  135. </el-row>
  136. </el-form-item>
  137. </el-col>
  138. <el-col :span="8">
  139. <el-form-item label="邮编" prop="ZipCode" >
  140. <el-input v-model="formData.ZipCode" :readonly="!canUpdateSupplier" maxlength="20" placeholder="请输入" style="width: 100%">
  141. </el-input>
  142. </el-form-item>
  143. </el-col>
  144. <el-col :span="16">
  145. <el-form-item label="通信地址" prop="LinkProvince" >
  146. <el-row>
  147. <el-col :span="10">
  148. <el-cascader ref="cascaderAddrLink" :options="countryoptions" :props="countryprops" placeholder="省市区" filterable
  149. v-model="LinkCityAry" :disabled="!canUpdateSupplier" maxlength="20" style="width: 100%" @change="handleLinkAreaChange">
  150. </el-cascader>
  151. </el-col>
  152. <el-col :span="14">
  153. <el-input v-model="formData.LinkAddress" :readonly="!canUpdateSupplier" maxlength="500" placeholder="详细地址" style="width: 100%">
  154. </el-input>
  155. </el-col>
  156. </el-row>
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="8">
  160. <el-form-item label="邮编" prop="LinkZipCode" >
  161. <el-input v-model="formData.LinkZipCode" :readonly="!canUpdateSupplier" maxlength="20" placeholder="请输入" style="width: 100%">
  162. </el-input>
  163. </el-form-item>
  164. </el-col>
  165. <!--<el-col :span="8">
  166. <el-form-item label="省直辖市">
  167. <el-input v-model="formData.Province" placeholder="请输入" style="width: 100%"></el-input>
  168. </el-form-item>
  169. </el-col>
  170. <el-col :span="8">
  171. <el-form-item label="地市区县">
  172. <el-input v-model="formData.City" placeholder="请输入" style="width: 100%"></el-input>
  173. </el-form-item>
  174. </el-col>
  175. <el-col :span="8">
  176. <el-form-item label="街道">
  177. <el-input v-model="formData.Street" placeholder="请输入" style="width: 100%"></el-input>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="8">
  181. <el-form-item label="门牌号">
  182. <el-input v-model="formData.HouseNo" placeholder="请输入" style="width: 100%"></el-input>
  183. </el-form-item>
  184. </el-col>-->
  185. </el-row>
  186. <el-row>
  187. <!--<el-col :span="8">
  188. <el-form-item label="产品质量认证情况及认证机构">
  189. <el-input v-model="formData.ProductQualityCert" placeholder="请输入" style="width: 100%"></el-input>
  190. </el-form-item>
  191. </el-col>
  192. <el-col :span="8">
  193. <el-form-item label="生产制造许可证获证情况及编号">
  194. <el-input v-model="formData.MaunLicense" placeholder="请输入" style="width: 100%"></el-input>
  195. </el-form-item>
  196. </el-col>-->
  197. <!--<el-col :span="8">
  198. <el-form-item label="外地企业进津备案通知书">
  199. <el-input v-model="formData.TJInNotify" placeholder="请输入" style="width: 100%"></el-input>
  200. </el-form-item>
  201. </el-col>-->
  202. <el-col :span="8">
  203. <el-form-item label="法定代表人姓名" prop="LegalPerson" >
  204. <el-input v-model="formData.LegalPerson" :readonly="!canUpdateSupplier" maxlength="50" placeholder="请输入" style="width: 100%">
  205. </el-input>
  206. </el-form-item>
  207. </el-col>
  208. <el-col :span="8">
  209. <el-form-item label="公司类型" prop="CompanyType" >
  210. <!--<el-input v-model="formData.CompanyType" placeholder="请输入" style="width: 100%"></el-input>-->
  211. <el-select v-model="formData.CompanyType" :disabled="!canUpdateSupplier" maxlength="50" filterable allow-create placeholder="请选择"
  212. style="width: 100%;">
  213. <el-option v-for="item in CompanyTypeOptions" :key="item.Id" :label="item.Key" :value="item.Value"
  214. style="width: 100%">
  215. </el-option>
  216. </el-select>
  217. </el-form-item>
  218. </el-col>
  219. <!--<el-col :span="8">
  220. <el-form-item label="行业类别">
  221. <el-input v-model="formData.CategoryCode" placeholder="请输入" style="width: 100%"></el-input>
  222. </el-form-item>
  223. </el-col>-->
  224. <!--<el-col :span="8">
  225. <el-form-item label="行业类别名称">
  226. <el-input v-model="formData.CategoryName" placeholder="请输入" style="width: 100%"></el-input>
  227. </el-form-item>
  228. </el-col>-->
  229. <el-col :span="8">
  230. <el-form-item label="成立时间" prop="SetupTime">
  231. <!--<el-date v-model="formData.SetupTime" maxlength="50" type="date" placeholder="请输入"
  232. style="width: 100%"> </el-date>-->
  233. <el-date-picker v-model="formData.SetupTime" :readonly="!canUpdateSupplier" type="date" format="yyyy 年 MM 月 dd 日"
  234. value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 100%">
  235. </el-date-picker>
  236. </el-form-item>
  237. </el-col>
  238. </el-row>
  239. <el-row>
  240. <el-col :span="8">
  241. <el-form-item label="注册资本" prop="RegCapital" >
  242. <el-input type="number" :readonly="!canUpdateSupplier" v-model="formData.RegCapital" placeholder="请输入" style="width: 100%">
  243. <template slot="append">万元</template>
  244. </el-input>
  245. </el-form-item>
  246. </el-col>
  247. <el-col :span="8">
  248. <el-form-item label="币种">
  249. <el-select v-model="formData.Currency" :disabled="!canUpdateSupplier" placeholder="请选择"
  250. style="width: 100%;">
  251. <el-option v-for="item in CurrencyOptions" :key="item.Value" :label="item.Key" :value="item.Value">
  252. </el-option>
  253. </el-select>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="8">
  257. <el-form-item label="开户银行" prop="DepositBank" >
  258. <el-input v-model="formData.DepositBank" :readonly="!canUpdateSupplier" maxlength="50" placeholder="请输入" style="width: 100%">
  259. </el-input>
  260. </el-form-item>
  261. </el-col>
  262. </el-row>
  263. <el-row>
  264. <el-col :span="8">
  265. <el-form-item label="联系人姓名" prop="ContactName">
  266. <el-input v-model="formData.ContactName" :readonly="!canUpdateSupplier" maxlength="50" placeholder="请输入" style="width: 100%">
  267. </el-input>
  268. </el-form-item>
  269. </el-col>
  270. <el-col :span="8">
  271. <el-form-item label="移动电话" prop="Mobile" >
  272. <el-input v-model="formData.Mobile" :readonly="!canUpdateSupplier" maxlength="20" placeholder="请输入" style="width: 100%"></el-input>
  273. </el-form-item>
  274. </el-col>
  275. <el-col :span="8">
  276. <el-form-item label="银行账号" prop="BankAccount" >
  277. <el-input v-model="formData.BankAccount" :readonly="!canUpdateSupplier" maxlength="50" placeholder="请输入" style="width: 100%">
  278. </el-input>
  279. </el-form-item>
  280. </el-col>
  281. </el-row>
  282. <el-row>
  283. <el-col :span="8">
  284. <el-form-item label="固定电话" prop="Telphone" >
  285. <el-input v-model="formData.Telphone" :readonly="!canUpdateSupplier" maxlength="20" placeholder="区号-0000000" style="width: 100%">
  286. </el-input>
  287. </el-form-item>
  288. </el-col>
  289. <el-col :span="8">
  290. <el-form-item label="传真" prop="Fax" >
  291. <el-input v-model="formData.Fax" :readonly="!canUpdateSupplier" maxlength="20" placeholder="区号-0000000" style="width: 100%"></el-input>
  292. </el-form-item>
  293. </el-col>
  294. <el-col :span="8">
  295. <el-form-item label="财务电话" prop="CompanyTel" >
  296. <el-input v-model="formData.CompanyTel" :readonly="!canUpdateSupplier" placeholder="请输入" maxlength="20" style="width: 100%">
  297. </el-input>
  298. </el-form-item>
  299. </el-col>
  300. <el-col :span="8">
  301. <el-form-item label="电子邮箱" prop="EMail" >
  302. <el-input v-model="formData.EMail" :readonly="!canUpdateSupplier" maxlength="50" placeholder="请输入" style="width: 100%"></el-input>
  303. </el-form-item>
  304. </el-col>
  305. <!--<el-col :span="8">
  306. <el-form-item label="QQ号码">
  307. <el-input v-model="formData.QQ" placeholder="请输入" style="width: 100%"></el-input>
  308. </el-form-item>
  309. </el-col>-->
  310. <el-col :span="8">
  311. <el-form-item label="银行信用等级">
  312. <el-input v-model="formData.BankCreditRating" :readonly="!canUpdateSupplier" maxlength="10" placeholder="请输入" style="width: 100%">
  313. </el-input>
  314. </el-form-item>
  315. </el-col>
  316. <!--<el-col :span="8">
  317. <el-form-item label="公司网址">
  318. <el-input v-model="formData.CompanyUrl" placeholder="请输入" style="width: 100%"></el-input>
  319. </el-form-item>
  320. </el-col>-->
  321. <el-col :span="8">
  322. <el-form-item label="HSE审查培训">
  323. <!--<el-input v-model="formData.HseTraining" placeholder="请输入" style="width: 100%"></el-input>-->
  324. <el-select v-model="formData.HseTraining" placeholder="请选择" style="width: 100%;" :disabled="!canUpdateSupplier || hseTrainingStatus">
  325. <el-option v-for="item in HSEOptions" :key="item.value" :label="item.label" :value="item.value"
  326. style="width: 100%">
  327. </el-option>
  328. </el-select>
  329. </el-form-item>
  330. </el-col>
  331. </el-row>
  332. </el-form>
  333. <el-form class="formDataInfo" label-position="top" ref="EntityFormCert" :rules="rulesform" :model="formData" :disabled="disabled">
  334. <el-row :gutter="60">
  335. <el-col :span="8">
  336. <el-form-item label="质量管理体系认证证书编号">
  337. <el-input v-model="formData.QualitySystemCert" maxlength="200" :readonly="this.formData.Status > '0'" placeholder="请输入" type="textarea"
  338. style="width: 100%"></el-input>
  339. </el-form-item>
  340. </el-col>
  341. <el-col :span="8">
  342. <el-form-item label="企业资质证书(编号 级别)">
  343. <el-input v-model="formData.QualifCert" placeholder="请输入" :readonly="this.formData.Status >'0'" maxlength="200" type="textarea"
  344. style="width: 100%">
  345. </el-input>
  346. </el-form-item>
  347. </el-col>
  348. <!--<el-col :span="12">
  349. <el-form-item label="企业资质证书级别">
  350. <el-input v-model="formData.QualifCertLevel" placeholder="请输入" style="width: 100%"></el-input>
  351. </el-form-item>
  352. </el-col>-->
  353. <el-col :span="8">
  354. <el-form-item label="安全生产许可证证书编号">
  355. <el-input v-model="formData.SafetyLicense" maxlength="200" :readonly="this.formData.Status > '0'" placeholder="请输入" type="textarea"
  356. style="width: 100%">
  357. </el-input>
  358. </el-form-item>
  359. </el-col>
  360. <el-col :span="8">
  361. <el-form-item label="行业特殊要求的认证证书编号">
  362. <el-input v-model="formData.SpecIndustryCert" :readonly="this.formData.Status > '0'" placeholder="请输入" maxlength="200" type="textarea"
  363. style="width: 100%">
  364. </el-input>
  365. </el-form-item>
  366. </el-col>
  367. <el-col :span="16">
  368. <el-form-item label="营业范围1" prop="BusinessScope">
  369. <el-input v-model="formData.BusinessScope" :readonly="!canUpdateSupplier" maxlength="5000" placeholder="营业执照上的信息" type="textarea"
  370. style="width: 100%"></el-input>
  371. </el-form-item>
  372. </el-col>
  373. <el-col :span="24">
  374. <el-form-item label="备注">
  375. <el-input v-model="formData.Remark" :readonly="this.formData.Status > '0'" maxlength="500" placeholder="请输入" type="textarea"
  376. style="width: 100%">
  377. </el-input>
  378. </el-form-item>
  379. </el-col>
  380. </el-row>
  381. </el-form>
  382. </div>
  383. </template>
  384. <script>
  385. export default {
  386. name: 'techinfo',
  387. props: {
  388. formData: {
  389. type: Object,
  390. default: {}
  391. },
  392. dictData: {
  393. type: Object,
  394. default: null
  395. },
  396. authUser: {
  397. type: Object,
  398. default: null
  399. },
  400. disabled: {
  401. type: Boolean,
  402. default: false
  403. },
  404. canUpdateSupplier: {
  405. type: Boolean,
  406. default: true
  407. },
  408. hseTrainingStatus: {
  409. type: Boolean,
  410. default: false
  411. },
  412. appendStatus: {
  413. type: Boolean,
  414. default: false
  415. }
  416. },
  417. data () {
  418. // 注册资金限制
  419. var checkMoney = (rule, value, callback) => {
  420. if (value < 0) {
  421. callback(new Error('注册资金不能小于0'))
  422. } else {
  423. callback()
  424. }
  425. }
  426. var checkemail = (rule, value, callback) => {
  427. if (value) {
  428. let re = /^([a-zA-Z0-9]+[_|-|.|-]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|-|.|-]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
  429. if (!re.test(value)) {
  430. callback(new Error('请输入正确的邮箱地址'))
  431. } else {
  432. callback()
  433. }
  434. } else {
  435. callback()
  436. }
  437. }
  438. var checkCommercialNo = (rule, value, callback) => {
  439. if (!value) {
  440. callback(new Error('请输入统一社会信用代码'))
  441. } else {
  442. if (this.showorhidflag == 'hid') {
  443. let re = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g
  444. if (!re.test(value)) {
  445. callback(new Error('请输入正确的统一社会信用代码'))
  446. } else {
  447. callback()
  448. }
  449. } else {
  450. callback()
  451. }
  452. }
  453. }
  454. // 查找是否有公司信息,若有则补全信息。
  455. var checkSupplierName = (rule, value, callback) => {
  456. if (!value) {
  457. callback(new Error('请输入供方名称'))
  458. } else {
  459. callback()
  460. }
  461. }
  462. // 检查邮编格式
  463. var checkZipCode = (rule, value, callback) => {
  464. if (!value) {
  465. callback(new Error('请输入邮编'))
  466. } else {
  467. let re = /^[0-9]{6}$/
  468. if (!re.test(value)) {
  469. callback(new Error('请输入正确的邮编'))
  470. } else {
  471. callback()
  472. }
  473. }
  474. }
  475. // 检查手机号
  476. var checkMobile = (rule, value, callback) => {
  477. if (!value) {
  478. callback(new Error('请输入手机号码'))
  479. } else {
  480. let re = /^1[3456789]\d{9}$/
  481. if (!re.test(value)) {
  482. callback(new Error('请输入正确的手机号码'))
  483. } else {
  484. callback()
  485. }
  486. }
  487. }
  488. // 固话检验
  489. var checkTelphone = (rule, value, callback) => {
  490. if (!value) {
  491. callback(new Error('请输入固话号码'))
  492. } else {
  493. let re = /^((0\d{2,3}-\d{7,8})|(1[35874]\d{9}))$/
  494. if (!re.test(value)) {
  495. callback(new Error('请输入正确的固话格式为:区号-0000000'))
  496. } else {
  497. callback()
  498. }
  499. }
  500. }
  501. // //注册资金限制
  502. // var checkMoney = (rule, value, callback) => {
  503. // if (!value) {
  504. // return callback(new Error('注册资金不能为空'));
  505. // } else {
  506. // if (value < 1) {
  507. // callback(new Error('注册资金至少为1'));
  508. // } else {
  509. // callback();
  510. // }
  511. // }
  512. // };
  513. // 传真检验
  514. var checkFax = (rule, value, callback) => {
  515. if (!value) {
  516. callback()
  517. } else {
  518. let re = /^((0\d{2,3}-\d{7,8})|(1[35874]\d{9}))$/
  519. if (!re.test(value)) {
  520. callback(new Error('请输入正确的传真格式为:区号-0000000'))
  521. } else {
  522. callback()
  523. }
  524. }
  525. }
  526. var checkBankAccount = (rule, value, callback) => {
  527. if (value === '') {
  528. callback(new Error('请输入银行账号'))
  529. } else {
  530. if (value.length < 9) {
  531. callback(new Error('请填写正确位数的银行账号'))
  532. } else {
  533. callback()
  534. }
  535. }
  536. }
  537. return {
  538. address: [],
  539. linkaddress: [],
  540. showorhidflag: 'hid',
  541. selectoptions: [{
  542. value: '1',
  543. label: '三证合一'
  544. }, {
  545. value: '2',
  546. label: '五证合一'
  547. }, {
  548. value: '3',
  549. label: '常规'
  550. }],
  551. companyReadonly: false,
  552. companynames: [],
  553. UnitRelationOptions: [],
  554. InOptions: [],
  555. CompanyTypeOptions: [],
  556. CurrencyOptions: [],
  557. UnitRelationAry: [],
  558. countryoptions: [],
  559. countryprops: {
  560. value: 'adcode',
  561. label: 'name',
  562. children: 'districts'
  563. },
  564. CityAry: [],
  565. LinkCityAry: [],
  566. HSEOptions: [{
  567. value: '1',
  568. label: '是'
  569. }, {
  570. value: '0',
  571. label: '否'
  572. }],
  573. countryListOptions: [],
  574. rulesform: {
  575. BusinessScope: [{
  576. required: true,
  577. message: '请输入营业范围',
  578. trigger: 'change'
  579. }],
  580. Country: [{
  581. required: true,
  582. message: '请输入国家',
  583. trigger: 'change'
  584. }],
  585. SupplierName: [{
  586. required: true,
  587. validator: checkSupplierName,
  588. trigger: 'change'
  589. } ],
  590. CommercialNo: [{
  591. required: true,
  592. validator: checkCommercialNo,
  593. trigger: 'change'
  594. } ],
  595. CountryTaxNo: [{
  596. required: true,
  597. message: '请输入税务登记证编号',
  598. trigger: 'change'
  599. } ],
  600. CompanyType: [{
  601. required: true,
  602. message: '请选择公司类型',
  603. trigger: 'change'
  604. } ],
  605. LegalPerson: [{
  606. required: true,
  607. message: '请输入法定代表人姓名',
  608. trigger: 'change'
  609. } ],
  610. Province: [{
  611. required: true,
  612. message: '请选择省市区',
  613. trigger: 'blur'
  614. } ],
  615. Address: [{
  616. required: true,
  617. message: '请输入注册地址',
  618. trigger: 'change'
  619. } ],
  620. EMail: [{
  621. required: false,
  622. validator: checkemail,
  623. trigger: 'change'
  624. }],
  625. OrganCode: [{
  626. required: true,
  627. message: '请输入组织机构代码',
  628. trigger: 'change'
  629. } ],
  630. SetupTime: [{
  631. required: true,
  632. message: '请输入成立时间',
  633. trigger: 'change'
  634. }],
  635. // RegCapital: [{
  636. // required: true,
  637. // validator: checkMoney,
  638. // trigger: 'change'
  639. // } ],
  640. RegCapital: [
  641. {required: true, validator: checkMoney, trigger: 'change'}
  642. ],
  643. DepositBank: [{
  644. required: true,
  645. message: '请输入开户银行',
  646. trigger: 'change'
  647. } ],
  648. BankAccount: [{
  649. required: true,
  650. validator: checkBankAccount,
  651. trigger: 'change'
  652. } ],
  653. ContactName: [{
  654. required: true,
  655. message: '请输入联系人姓名',
  656. trigger: 'change'
  657. } ],
  658. Mobile: [{
  659. required: true,
  660. validator: checkMobile,
  661. trigger: 'change'
  662. } ],
  663. Telphone: [{
  664. required: true,
  665. validator: checkTelphone,
  666. trigger: 'blur'
  667. }],
  668. Fax: [{
  669. required: false,
  670. validator: checkFax,
  671. trigger: 'blur'
  672. } ],
  673. CompanyTel: [{
  674. required: true,
  675. message: '请输入财务电话',
  676. trigger: 'change'
  677. } ],
  678. ZipCode: [{
  679. required: true,
  680. validator: checkZipCode,
  681. trigger: 'change'
  682. }],
  683. LinkZipCode: [{
  684. required: true,
  685. validator: checkZipCode,
  686. trigger: 'change'
  687. }],
  688. LinkProvince: [{
  689. required: true,
  690. message: '请选择省市区',
  691. trigger: 'blur'
  692. } ],
  693. LinkAddress: [{
  694. required: true,
  695. message: '请输入通信地址',
  696. trigger: 'change'
  697. } ],
  698. realname: [{
  699. required: true,
  700. message: '用户名',
  701. trigger: 'blur'
  702. }]
  703. }
  704. }
  705. },
  706. created () {
  707. // if(this.authUser && this.authUser.Profile.IsCompanyUser === 1){
  708. // this.inputCompanyName(this.authUser.Profile.Realname)
  709. // }
  710. },
  711. watch: {
  712. dictData: {
  713. handler (newName, oldName) {
  714. this.getDictOptions()
  715. },
  716. immediate: true
  717. }
  718. },
  719. methods: {
  720. getCountryList (val) {
  721. let tmpJson = JSON.parse(val)
  722. this.countryListOptions = []
  723. for (let idx in tmpJson) {
  724. this.countryListOptions.push({
  725. label: tmpJson[idx].split('-')[0],
  726. value: tmpJson[idx].split('-')[1],
  727. code: tmpJson[idx].split('-')[2],
  728. key: tmpJson[idx]
  729. })
  730. }
  731. },
  732. showorhid (val) {
  733. if (val == '1' || val == '2') {
  734. this.showorhidflag = 'hid'
  735. this.formData.OrganCode = ''
  736. this.formData.CountryTaxNo = ''
  737. } else {
  738. if (this.formData.CommercialNo != '') {
  739. this.formData.OrganCode = this.formData.CommercialNo
  740. this.formData.CountryTaxNo = this.formData.CommercialNo
  741. }
  742. this.showorhidflag = 'show'
  743. }
  744. },
  745. currentSel (event) {
  746. if (event == 2) {
  747. this.formData.InStyle = '5'
  748. // for(let item of this.$refs.inStyle.options) {
  749. // if(item.value=='5'){
  750. // console.log(item.style)
  751. // }else{
  752. // //隐藏
  753. // }
  754. // }
  755. } else {
  756. this.formData.InStyle = '1'
  757. }
  758. },
  759. // commnoChange () {
  760. // this.formData.CountryTaxNo = this.formData.CommercialNo
  761. // this.formData.OrganCode = this.formData.CommercialNo
  762. // },
  763. // 查找是否有公司信息,若有则补全信息
  764. searchSupplierName () {
  765. let _this = this
  766. _this.$axios.get('/register/getcompanyinfo/' + _this.formData.SupplierName, {})
  767. .then(res => {
  768. if (res.data.items && res.data.items.length == 1) {
  769. _this.formData.SupplierName = res.data.items[0].SupplierName
  770. _this.formData.CredentialFlag = res.data.items[0].CredentialFlag
  771. _this.formData.CommercialNo = res.data.items[0].CommercialNo
  772. _this.formData.CountryTaxNo = res.data.items[0].CountryTaxNo
  773. _this.formData.OrganCode = res.data.items[0].OrganCode
  774. _this.formData.LocalTaxNo = res.data.items[0].LocalTaxNo
  775. _this.formData.Address = res.data.items[0].Address
  776. _this.formData.Province = res.data.items[0].Province
  777. _this.formData.City = res.data.items[0].City
  778. _this.formData.Street = res.data.items[0].Street
  779. _this.CityAry = []
  780. _this.CityAry.push(_this.formData.Province)
  781. _this.CityAry.push(_this.formData.City)
  782. _this.CityAry.push(_this.formData.Street)
  783. _this.formData.ZipCode = res.data.items[0].ZipCode
  784. _this.formData.LinkAddress = res.data.items[0].LinkAddress
  785. _this.formData.LinkProvince = res.data.items[0].LinkProvince
  786. _this.formData.LinkCity = res.data.items[0].LinkCity
  787. _this.formData.LinkStreet = res.data.items[0].LinkStreet
  788. _this.LinkCityAry = []
  789. _this.LinkCityAry.push(_this.formData.LinkProvince)
  790. _this.LinkCityAry.push(_this.formData.LinkCity)
  791. _this.LinkCityAry.push(_this.formData.LinkStreet)
  792. _this.formData.LinkZipCode = res.data.items[0].LinkZipCode
  793. _this.formData.LegalPerson = res.data.items[0].LegalPerson
  794. _this.formData.CompanyType = res.data.items[0].CompanyType
  795. _this.formData.RegCapital = res.data.items[0].RegCapital
  796. _this.formData.SetupTime = res.data.items[0].SetupTime
  797. _this.formData.DepositBank = res.data.items[0].DepositBank
  798. _this.formData.BankAccount = res.data.items[0].BankAccount
  799. _this.formData.ContactName = res.data.items[0].ContactName
  800. if (res.data.items[0].Mobile != null && res.data.items[0].Mobile != '') {
  801. _this.formData.Mobile = res.data.items[0].Mobile
  802. } else {
  803. _this.formData.Mobile = res.data.items[0].UserTelephone
  804. }
  805. _this.formData.Telphone = res.data.items[0].Telphone
  806. _this.formData.Fax = res.data.items[0].Fax
  807. _this.formData.CompanyTel = res.data.items[0].CompanyTel
  808. _this.formData.EMail = res.data.items[0].EMail
  809. _this.formData.BankCreditRating = res.data.items[0].BankCreditRating
  810. _this.formData.Remark = res.data.items[0].Remark
  811. _this.formData.JFAccessCardNo = res.data.items[0].JFAccessCardNo
  812. }
  813. })
  814. .catch(err => {
  815. console.error(err)
  816. })
  817. },
  818. getDictOptions () {
  819. if (this.dictData) {
  820. this.UnitRelationOptions = this.dictData['UnitRelation']
  821. this.InOptions = this.dictData['InOptions']
  822. this.getCityList(this.dictData['GaodeMapChinaAreas'])
  823. this.CompanyTypeOptions = this.dictData['CompanyType']
  824. this.CurrencyOptions = this.dictData['CurrencyType']
  825. let suppliers = this.dictData['CompanyNames']
  826. this.getCountryList(this.dictData['CountryList'])
  827. // for (let idx in suppliers) {
  828. // suppliers[idx]['value'] = suppliers[idx].SupplierName
  829. // this.companynames.push(suppliers[idx])
  830. // }
  831. // if (this.authUser && this.authUser.Profile.IsCompanyUser === 1 && this.companynames.length > 0) {
  832. // if (!this.formData.Id) {
  833. // this.formData.SupplierName = ''
  834. // }
  835. // this.companyReadonly = true
  836. // }
  837. }
  838. },
  839. getCityList (val) {
  840. let resultData = JSON.parse(val)
  841. let countstr = JSON.stringify(resultData.districts[0].districts)
  842. countstr = countstr.replace(/\,\"districts\"\:\[\]/g, '')
  843. this.countryoptions = JSON.parse(countstr)
  844. },
  845. unitRelationChange (value) {
  846. this.formData.SpecTypeCode = value.join(',')
  847. },
  848. handleAreaChange (value) {
  849. this.formData.Province = value[0]
  850. this.formData.City = value[1]
  851. this.formData.Street = value[2]
  852. // this.formData.ZipCode = value[2]
  853. this.address = this.$refs['cascaderAdd'].currentLabels
  854. this.formData.AllAddress = this.address[0] + '/' + this.address[1] + '/' + this.address[2]
  855. },
  856. handleLinkAreaChange (value) {
  857. this.formData.LinkProvince = value[0]
  858. this.formData.LinkCity = value[1]
  859. this.formData.LinkStreet = value[2]
  860. // this.formData.LinkZipCode = value[2]
  861. this.linkaddress = this.$refs['cascaderAddrLink'].currentLabels
  862. this.formData.LinkAllAddress = this.linkaddress[0] + '/' + this.linkaddress[1] + '/' + this.linkaddress[2]
  863. },
  864. formatDateTime (date) {
  865. var y = date.getFullYear()
  866. var m = date.getMonth() + 1
  867. m = m < 10 ? ('0' + m) : m
  868. var d = date.getDate()
  869. d = d < 10 ? ('0' + d) : d
  870. var h = date.getHours()
  871. var minute = date.getMinutes()
  872. minute = minute < 10 ? ('0' + minute) : minute
  873. return y + '-' + m + '-' + d + ' ' + h + ':' + minute
  874. },
  875. /** ----------------------- */
  876. // querySearch (queryString, cb) {
  877. // var results = queryString ? this.companynames.filter(this.createFilter(queryString)) : this.companynames
  878. // // 调用 callback 返回建议列表的数据
  879. // cb(results)
  880. // },
  881. createFilter (queryString) {
  882. return (restaurant) => {
  883. return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
  884. }
  885. },
  886. // handleSelect (item) {
  887. // this.$emit('selectcompany', item)
  888. // },
  889. inputCompanyName (val) {
  890. this.$emit('inputcompany', val)
  891. }
  892. }
  893. }
  894. </script>
  895. <style>
  896. .el-cascader.is-disabled .el-cascader__label {
  897. color: #333333;
  898. }
  899. .formDataInfo .el-input__inner[readonly]{
  900. border-color:#DCDFE6;
  901. }
  902. .formDataInfo .el-input__inner[readonly]:focus{
  903. border-color:#DCDFE6;
  904. }
  905. .formDataInfo .el-textarea__inner[readonly]{
  906. border-color:#DCDFE6;
  907. }
  908. .formDataInfo .el-textarea__inner[readonly]:focus{
  909. border-color:#DCDFE6;
  910. }
  911. .formDataInfo .el-input__inner[disabled]{
  912. color:black;
  913. opacity: 1;
  914. background-color: white;
  915. }
  916. .formDataInfo .el-textarea__inner[disabled]{
  917. color:black;
  918. opacity: 1;
  919. background-color: white;
  920. }
  921. </style>