Tea.context(function () {
this.STEP_TEMPLATE = "template"
this.STEP_UPLOAD = "upload"
this.STEP_COUNTRY = "country"
this.STEP_PROVINCE = "province"
this.STEP_CITY = "city"
this.STEP_TOWN = "town"
this.STEP_PROVIDER = "provider"
this.STEP_FINISH = "finish"
this.step = this.STEP_TEMPLATE
this.goStep = function (step) {
this.step = step
switch (step) {
case this.STEP_UPLOAD:
if (this.libraryFileId > 0) {
this.goStep(this.STEP_COUNTRY)
}
break
case this.STEP_COUNTRY:
this.reloadCountries()
break
case this.STEP_PROVINCE:
this.reloadProvinces()
break
case this.STEP_CITY:
this.reloadCities()
break
case this.STEP_TOWN:
this.reloadTowns()
break
case this.STEP_PROVIDER:
this.reloadProviders()
break
}
}
this.$delay(function () {
switch (this.step) {
case this.STEP_TEMPLATE:
this.$refs.libraryName.focus()
break
case this.STEP_COUNTRY:
this.reloadCountries()
break
case this.STEP_PROVINCE:
this.reloadProvinces()
break
case this.STEP_CITY:
this.reloadCities()
break
case this.STEP_TOWN:
this.reloadTowns()
break
case this.STEP_PROVIDER:
this.reloadProviders()
break
}
})
/**
* 数据格式
*/
this.rowTemplate = ""
this.formatTestText = ""
this.formatTestResult = ""
this.password = ""
this.libraryName = ""
this.emptyValues = []
this.libraryFileId = 0
if (this.updatingLibraryFile != null) {
this.libraryFileId = this.updatingLibraryFile.id
this.rowTemplate = this.updatingLibraryFile.template
this.libraryName = this.updatingLibraryFile.name
if (this.updatingLibraryFile.emptyValues != null) {
this.emptyValues = this.updatingLibraryFile.emptyValues
}
}
this.formatIP2Region = function () {
this.rowTemplate = "${ipFrom}|${ipTo}|${country}|${any}|${province}|${city}|${provider}"
}
this.formatIP138 = function () {
this.rowTemplate = "${any},${any},${ipFrom},${ipTo},${country},${province},${city},${town},${provider},${any},${any},${any}"
}
this.testFormat = function () {
this.$post("/settings/ip-library/creating/testFormat")
.params({
template: this.rowTemplate,
text: this.formatTestText
})
.success(function (resp) {
let values = resp.data.values
let pieces = []
if (values["country"] != null && values["country"].length > 0) {
pieces.push("国家/地区:" + values["country"])
}
if (values["province"] != null && values["province"].length > 0) {
pieces.push("省份/州:" + values["province"])
}
if (values["city"] != null && values["city"].length > 0) {
pieces.push("城市/市:" + values["city"])
}
if (values["town"] != null && values["town"].length > 0) {
pieces.push("区县:" + values["town"])
}
if (values["provider"] != null && values["provider"].length > 0) {
pieces.push("ISP运营商:" + values["provider"])
}
this.formatTestResult = pieces.join(";")
})
}
this.changeFormatTestText = function () {
this.formatTestResult = ""
}
this.templateGoNext = function () {
if (this.libraryName.length == 0) {
let that = this
teaweb.warn("请输入IP库名字", function () {
that.$refs.libraryName.focus()
})
return
}
if (this.rowTemplate.length == 0) {
let that = this
teaweb.warn("请先输入数据格式模板", function () {
that.$refs.rowTemplate.focus()
})
return
}
this.goStep(this.STEP_UPLOAD)
}
/**
* 上传
*/
this.isUploading = false
this.upload = function () {
let dataFile = this.$refs.dataFile
if (dataFile.files.length == 0) {
teaweb.warn("请先上传文件")
return
}
this.isUploading = true
let emptyValues = this.$refs.emptyValues.allValues()
this.$post("/settings/ip-library/creating/upload")
.timeout(300)
.params({
name: this.libraryName,
template: this.rowTemplate,
file: dataFile.files[0],
emptyValues: emptyValues,
password: this.password
})
.success(function (resp) {
this.libraryFileId = resp.data.libraryFileId
let that = this
teaweb.success("上传成功", function () {
that.step = that.STEP_COUNTRY
that.reloadCountries()
})
})
.error(function () {
teaweb.warn("操作超时,可能是网络太慢")
})
.done(function () {
this.isUploading = false
})
}
/**
* 国家
*/
this.missingCountries = []
this.missingCountriesLoaded = false
this.reloadCountries = function () {
this.missingCountriesLoaded = false
this.$post("/settings/ip-library/creating/countries")
.params({
"libraryFileId": this.libraryFileId
})
.success(function (resp) {
this.missingCountries = resp.data.missingCountries
})
.done(function () {
this.missingCountriesLoaded = true
})
}
this.addCountryCustomCode = function (country, code) {
let that = this
teaweb.confirm("html:确定要将 \"" + teaweb.encodeHTML(code) + "\" 加入到 \"" + teaweb.encodeHTML(country.displayName) + "\" 别名中吗?
请再三确认无误后,才进行确定操作!", function () {
that.$post("/settings/ip-library/creating/addCountryCustomCode")
.params({
countryId: country.id,
code: code
})
.success(function () {
teaweb.success("操作成功", function () {
that.reloadCountries()
})
})
})
}
/**
* 省
*/
this.missingProvinces = []
this.missingProvincesLoaded = false
this.reloadProvinces = function () {
this.missingProvincesLoaded = false
this.$post("/settings/ip-library/creating/provinces")
.params({
"libraryFileId": this.libraryFileId
})
.success(function (resp) {
this.missingProvinces = resp.data.missingProvinces
})
.done(function () {
this.missingProvincesLoaded = true
})
}
this.addProvinceCustomCode = function (province, code) {
let that = this
teaweb.confirm("html:确定要将 \"" + teaweb.encodeHTML(code) + "\" 加入到 \"" + teaweb.encodeHTML(province.displayName) + "\" 别名中吗?
请再三确认无误后,才进行确定操作!", function () {
that.$post("/settings/ip-library/creating/addProvinceCustomCode")
.params({
provinceId: province.id,
code: code
})
.success(function () {
teaweb.success("操作成功", function () {
that.reloadProvinces()
})
})
})
}
/**
* 市
*/
this.missingCities = []
this.missingCitiesLoaded = false
this.sizePerPage = 100
this.reloadCities = function () {
this.missingCitiesLoaded = false
this.$post("/settings/ip-library/creating/cities")
.params({
libraryFileId: this.libraryFileId,
size: this.sizePerPage
})
.success(function (resp) {
this.missingCities = resp.data.missingCities
})
.done(function () {
this.missingCitiesLoaded = true
})
}
this.addCityCustomCode = function (city, code) {
let that = this
teaweb.confirm("html:确定要将 \"" + teaweb.encodeHTML(code) + "\" 加入到 \"" + teaweb.encodeHTML(city.displayName) + "\" 别名中吗?
请再三确认无误后,才进行确定操作!", function () {
that.$post("/settings/ip-library/creating/addCityCustomCode")
.params({
cityId: city.id,
code: code
})
.success(function () {
teaweb.success("操作成功", function () {
that.reloadCities()
})
})
})
}
/**
* 县
*/
this.missingTowns = []
this.missingTownsLoaded = false
this.reloadTowns = function () {
this.missingTownsLoaded = false
this.$post("/settings/ip-library/creating/towns")
.params({
"libraryFileId": this.libraryFileId
})
.success(function (resp) {
this.missingTowns = resp.data.missingTowns
})
.done(function () {
this.missingTownsLoaded = true
})
}
this.addTownCustomCode = function (town, code) {
let that = this
teaweb.confirm("html:确定要将 \"" + teaweb.encodeHTML(code) + "\" 加入到 \"" + teaweb.encodeHTML(town.displayName) + "\" 别名中吗?
请再三确认无误后,才进行确定操作!", function () {
that.$post("/settings/ip-library/creating/addTownCustomCode")
.params({
townId: town.id,
code: code
})
.success(function () {
teaweb.success("操作成功", function () {
that.reloadTowns()
})
})
})
}
/**
* ISP
*/
this.missingProviders = []
this.missingProvidersLoaded = false
this.reloadProviders = function () {
this.missingProvidersLoaded = false
this.$post("/settings/ip-library/creating/providers")
.params({
"libraryFileId": this.libraryFileId
})
.success(function (resp) {
this.missingProviders = resp.data.missingProviders
})
.done(function () {
this.missingProvidersLoaded = true
})
}
this.addProviderCustomCode = function (provider, code) {
let that = this
teaweb.confirm("html:确定要将 \"" + teaweb.encodeHTML(code) + "\" 加入到 \"" + teaweb.encodeHTML(provider.displayName) + "\" 别名中吗?
请再三确认无误后,才进行确定操作!", function () {
that.$post("/settings/ip-library/creating/addProviderCustomCode")
.params({
providerId: provider.id,
code: code
})
.success(function () {
teaweb.success("操作成功", function () {
that.reloadProviders()
})
})
})
}
/**
* 完成
*/
this.isFinishing = false
this.finish = function () {
let that = this
teaweb.confirm("html:确定标记当前IP库已完成?
后期仍然可以修改国家/地区、省份/州、城市/市、区/县、ISP运营商等信息。", function () {
that.isFinishing = true
that.$post("/settings/ip-library/creating/finish")
.params({
libraryFileId: this.libraryFileId
})
.timeout(300)
.success(function () {
teaweb.success("保存成功", function () {
window.location = "/settings/ip-library"
})
})
.done(function () {
that.isFinishing = false
})
})
}
})